Í 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