Í tilefni þess að FreeBSD 8 var að koma út setti ég saman þessar leiðbeiningar.

Ég mæli með því að þið prófið þetta fyrst í virtual umhverfi áður en þetta er reynt á t.d. vinnuvélinni :)

Þessar leiðbeiningar hjálpa þér að setja upp FreeBSD sem notast einungis við zfs sem er staðsett á gpt diski.

Ég notfærðist við http://blogs.freebsdish.org/lulf/2008/12/16/setting-up-a-zfs-only-system/ þegar ég var að setja þetta saman.

Kröfur

Tölva sem er með allavega 1gb af minni.
- Það er alveg hægt að vera með minna minni en það er ekki sniðugt þar sem zfs vill helst hafa sem mest af minni.
Sjá http://dlc.sun.com/osol/docs/content/ZFSADMIN/gbgxg.html
Einnig þá notast ég við tóman disk í þessum leiðbeiningum, ef þið ætlið að notast við disk sem er nú þegar með drifum gætuð þið lent í vandræðum þar sem það þarf að búa til örlitla diska sneið fremst á disknum til þess að hægt sé að ræsa kerfið.

Byrjið á því að sækja og brenna á disk iso skránna ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/8.0/8.0-RELEASE-amd64-livefs.iso
eða ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.0/8.0-RELEASE-i386-livefs.iso

Ræsið svo tölvuna frá disknum.

Þegar í aðalvalmyndina er komið þá þarf að velja fixit og svo cdrom/dvd


Við byrjum á því að hlaða inn reklunum eða viðbótunum fyrir zfs.

kldload /mnt2/boot/kernel/opensolaris.ko
kldload /mnt2/boot/kernel/zfs.ko


Næst gerum við diskinn tilbúinn.
- Ath að í mínu tilfelli er diskurinn sem ég nota ad0
- Ef þið eruð með marga diska getið þið fundið út hver diskurinn ykkar er með því að skrifa t.d. “atacontrol list”
- “gpart show” sýnir ykkur hvernig diskurinn er uppsettur, og getið þið notað það til þess að búa til fleiri sneiðar á disknum en ég geri hérna.

Notum allan diskinn undir gpt sniðið.
gpart create -s gpt ad0
Búum til litla sneið fremst á disknum undir boot loaderinn.
gpart add -b 34 -s 128 -t freebsd-boot ad0
Notum restina af disknum fyrir zfs
gpart add -b 162 -t freebsd-zfs ad0

Næst búum við til zfs drifin
- Það er alveg hægt að búa til fleiri drif en ég er með hérna, t.d. væri hægt að gera tank/usr/local því freebsd notast við það fyrir forrit sem eru ekki partur af grunnkerfinu.

zpool create tank ad0p2
zfs create tank/root
zfs create tank/tmp
zfs create tank/var
zfs create tank/usr
zfs create tank/home

Búum til swap drifið og virkjum það
- Almenna reglan er að það sé 1,5*ram en þið ráðið því alveg
zfs create -V 2g tank/swap
zfs set checksum=off tank/swap
swapon /dev/zvol/tank/swap


Við búum einnig til drif til þess að nota tímabundið á meðan við byggjum kerfið.
zfs create tank/tmproot

Mountum tímabundna drifið á /mnt og afritum nothæfa freebsd útgáfu þangað inn
zfs set mountpoint=/mnt tank/tmproot
cp -a /dist/* /mnt


Mountum svo drifin sem við ætlum að nota undir kerfið okkar á tímabundna drifinu
zfs set mountpoint=/mnt/mnt tank/root
mkdir /mnt/mnt/tmp
mkdir /mnt/mnt/var
mkdir /mnt/mnt/usr
mkdir /mnt/mnt/usr/home
zfs set mountpoint=/mnt/mnt/usr tank/usr
zfs set mountpoint=/mnt/mnt/var tank/var
zfs set mountpoint=/mnt/mnt/tmp tank/tmp
zfs set mountpoint=/mnt/mnt/usr/home tank/home


Mountum dev kerfið á tímabundna drifinu og chrootum okkur inní kerfið.
mount -t devfs devfs /mnt/dev
chroot /mnt /bin/sh


Tengjumst netinu, ég geri ráð fyrir hérna að það sé dhcp server staðsettur í netkerfinu sem tölvan tengist í.
Skrifa ifconfig til að sjá hvaða netkort eru tengd
ifconfig
dhclient em0


Ath hvort netið virkar
ping vodafone.is

Núna er hægt að kveikja á ssh server og tengjast honum, en það er þægilegt þar sem næstu skref taka frekar langan tíma

Breytum ssh server skránni svo að root geti tengst
- Ath að ef tölvan er aðgengileg frá internetinu getur hver sem er reynt að tengjast inná ssh server og mæli ég þá frekar með að sleppa þessum parti
vi /etc/ssh/sshd_config
Breytið eftirfarandi línu
#PermitRootLogin no
Í
PermitRootLogin yes

Búum til root password
passwd

Ræsum ssh
/etc/rc.d/sshd onestart

Sækjum svo source tréið svo hægt sé að compila grunnkerfinu
cd /root
cp /usr/share/examples/cvsup/standard-supfile .

Passið að eftirfarandi línur í skránni líti svona út
vi standard-supfile
*default host=cvsup.is.freebsd.org
*default release=cvs tag=RELENG_8_0

Sækja source tréið
csup stable-supfile

Þar sem við erum að compila allt source tréið þá er hægt að nýta tækifærið og setja inn tweaks, t.d. þá er ég með core2 og set því eftirfarandi inní /etc/make.conf
Þið getið skoðað hvaða hluti er hægt að setja inní make.conf með því að skoða skránna /usr/share/examples/etc/make.conf

vi /etc/make.conf
CPUTYPE?=core2

Einnig þarf að hafa eftirfarandi línu í make.conf svo að hægt sé að ræsa kerfið
LOADER_ZFS_SUPPORT=YES

Stillum kjarnann
- Hérna getið þið bætt við eða tekið út kernel fítusa, en ef þið eruð að nota freebsd í fyrsta skipti þá er best að breyta engu fyrst þar sem það er ekkert mál seinna að recompila kjarnann.
cd /usr/src/sys/amd64/conf eða cd /usr/src/sys/i386/conf
cp GENERIC FBSD8
vi FBSD8


Compilum öllu kerfinu
- Hérna notast ég við -j3 skipunina en núna á að miðast við fjölda örgjöfa eða cora í vélinni, almenna reglan er fjöldi + 1.
T.d. dual cpu vél er með -j3

cd /usr/src
make -j3 buildkernel KERNCONF=FBSD8
make -j3 buildworld
make installworld DESTDIR=/mnt
make installkernel KERNCONF=FBSD8 DESTDIR=/mnt
make distribution DESTDIR=/mnt


Núna er búið að setja upp kerfi sem hægt er að ræsa frá, en best er þó að stilla það aðeins til viðbótar.

Hérna stillum við netkortið, lyklaborðið og sjáum til þess að kerfið styðji zfs.
vi /mnt/etc/rc.conf
Setjið inn eftirfarandi línur
keymap=“icelandic.iso.acc”
ifconfig_em0=“dhcp” // þar sem em0 er nafnið á netkortinu ykkar frá því áðan
zfs_enable=“yes”
sshd_enable=“yes” // ef þið viljið geta sshað ykkur inní vélina eftir reboot


Búum til fstab skránna og setjum swap drifið þar inn
vi /mnt/etc/fstab
Setjið inn eftirfarandi línu
/dev/zvol/tank/swap none swap sw 0 0

Gerum disknum kleift að ræsa sig inní freebsd-zfs kerfi
gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ad0

Núna ætti allt að vera tilbúið en þó eru nokkur skref eftir
Byrjið á því að aftengjast ssh og fara úr chroot
exit

Til þess að hægt sé að ræsa drifið þarf skráin zpool.cache að vera til í möppunni /boot/zfs
Gerum því eftirfarandi trikk
mkdir /boot/zfs
zpool export -f tank
zpool import tank
cp /boot/zfs/zpool.cache /mnt/mnt/boot/zfs


Næst er að láta zfs mounta drifin á réttum stöðum eftir restart
Byrjum á því að unmounta öllum drifunum svo að fixit kerfið verði ekki ónothæft
- Ef þið fáið einhverja villu þá getiði notað zfs unmount -f drif
zfs unmount tank/var
zfs unmount tank/usr
zfs unmount tank/tmp
zfs unmount tank/root
zfs unmount tank/tmproot
zfs unmount tank/home


Setjum inn rétta mount staði
zfs set mountpoint=/usr tank/usr
zfs set mountpoint=/usr/home tank/home
zfs set mountpoint=/var tank/var
zfs set mountpoint=/tmp tank/tmp
zfs set mountpoint=legacy tank/root
zfs set mountpoint=none tank
zfs set mountpoint=none tank/tmproot


Látum zfs vita hvaða drifi á að boota frá
zpool set bootfs=tank/root tank

Svo er bara að endurræsa tölvuna
exit
Hættið í sysinstall forritinu og það endurræsir tölvuna fyrir ykkur

Þegar þið loggið ykkur inn í fyrsta skipti eftir reboot viljiði örugglega gera vísun frá /home yfir í /usr/home og eyða tmprótinni frá því áðan

cd /
ln -s /usr/home home
zfs destroy tank/tmproot


Svo er bara að bæta við notanda
adduser

Núna er uppsett hjá ykkur FreeBSD grunnkerfið.
Þið getið t.d. sett upp gnome eða kde á mjög snöggan hátt með eftirfarandi skipunum.

pkg_add -r xorg
pkg_add -r gnome2 eða
pkg_add -r kde4