-Nuke-
Well-Known Member
Heyho.
Ich habe mich mal damit beschäftigt FreeBSD 9.1 so zu installieren, das man ein ZFS-Only System hat. Gründe warum jetzt ZFS und nicht UFS etc. pp. seien jetzt mal nicht von belangen.
Da es recht viele Anleitungen gibt, wo eine älter als die andere ist, habe ich mal ein paar ausprobiert und bin an einem funktionierenden Stand angelangt, der mit FreeBSD 9.1 funktioniert... zumindest in VirtualBox.
Das will ich 1.) nicht für mich behalten und 2.) vllt. noch weitere Kommentare dazu hören ob es hier und da vllt. noch Probleme geben kann oder weitere Vorschläge.
Ich habe in VirtualBox also 2 virtuelle Laufwerke angelegt und von der Installations-CD gestartet (musste da noch die Controller auf die ICH6/9-Varianten umstellen und die CD an einen virtuellen SATA-Controller hängen, sonst klappte das nicht).
Dann beim Menü die Live-CD ausgewählt und mich als root eingeloggt.
Dann habe ich mit "sh" folgendes Skript ausgeführt:
editiert mit den Änderungen von unten:
Swap im ZFS:
Swap mit gmirror
Nach einem reboot funktionierte hier alles bestens. Das will ich dann beim finalen Release von 9.1 dann auch auf meinem Server machen, den ich neu aufsetzen möchte. Natürlich würde ich da die Device-Namen anpassen, wenn nötig...
Bedenken oder Anregungen, dazu?
Ich habe mich mal damit beschäftigt FreeBSD 9.1 so zu installieren, das man ein ZFS-Only System hat. Gründe warum jetzt ZFS und nicht UFS etc. pp. seien jetzt mal nicht von belangen.
Da es recht viele Anleitungen gibt, wo eine älter als die andere ist, habe ich mal ein paar ausprobiert und bin an einem funktionierenden Stand angelangt, der mit FreeBSD 9.1 funktioniert... zumindest in VirtualBox.
Das will ich 1.) nicht für mich behalten und 2.) vllt. noch weitere Kommentare dazu hören ob es hier und da vllt. noch Probleme geben kann oder weitere Vorschläge.
Ich habe in VirtualBox also 2 virtuelle Laufwerke angelegt und von der Installations-CD gestartet (musste da noch die Controller auf die ICH6/9-Varianten umstellen und die CD an einen virtuellen SATA-Controller hängen, sonst klappte das nicht).
Dann beim Menü die Live-CD ausgewählt und mich als root eingeloggt.
Dann habe ich mit "sh" folgendes Skript ausgeführt:
editiert mit den Änderungen von unten:
Swap im ZFS:
Code:
#boot from install cd and choose "Live CD"
#add devices and install bootloader
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart add -a 4k -s 128k -t freebsd-boot ada0
gpart add -a 4k -s 128k -t freebsd-boot ada1
gpart add -a 4k -t freebsd-zfs -l disk0 ada0
gpart add -a 4k -t freebsd-zfs -l disk1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
#create pool
gnop create -S 4096 /dev/gpt/disk0
gnop create -S 4096 /dev/gpt/disk1
zpool create -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot mirror /dev/gpt/disk0.nop /dev/gpt/disk1.nop
zpool export zroot
gnop destroy /dev/gpt/disk0.nop
gnop destroy /dev/gpt/disk1.nop
zpool import -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot
#setup pool
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
zfs create zroot/usr
zfs create zroot/usr/home
zfs create zroot/var
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
zfs create -o compression=gzip -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp
#create swap
zfs create -V 4G zroot/swap
zfs set org.freebsd:swap=on zroot/swap
zfs set checksum=off zroot/swap
#fix permissions
chmod 1777 /mnt/tmp
cd /mnt ; ln -s usr/home home
chmod 1777 /mnt/var/tmp
#install FreeBSD
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz kernel.txz doc.txz src.txz; #ports.txz lib32.txz
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done
#final configuration
cp /var/tmp/zpool.cache /mnt/boot/zfs/zpool.cache
echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf
echo 'LOADER_ZFS_SUPPORT=YES' > /mnt/etc/src.conf
touch /mnt/etc/fstab
zfs set readonly=on zroot/var/empty
#reboot into the new system
#passwd root
#tzsetup
#cd /etc/mail ; make aliases
#echo WITH_PKGNG=yes >> /etc/make.conf
#echo 'WRKDIRPREFIX=/usr/obj' >> /mnt/etc/make.conf
#...edit rc.conf
Swap mit gmirror
Code:
#boot from install cd and choose "Live CD"
#add devices and install bootloader
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart add -a 4k -s 512k -t freebsd-boot ada0
gpart add -a 4k -s 512k -t freebsd-boot ada1
##gmirror-swap##
gpart add -a 4k -s 4G -t freebsd-swap -l swap0 ada0
gpart add -a 4k -s 4G -t freebsd-swap -l swap1 ada1
##gmirror-swap##
gpart add -a 4k -t freebsd-zfs -l disk0 ada0
gpart add -a 4k -t freebsd-zfs -l disk1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
#create pool
gnop create -S 4096 /dev/gpt/disk0
gnop create -S 4096 /dev/gpt/disk1
zpool create -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot mirror /dev/gpt/disk0.nop /dev/gpt/disk1.nop
zpool export zroot
gnop destroy /dev/gpt/disk0.nop
gnop destroy /dev/gpt/disk1.nop
zpool import -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot
#setup pool
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
zfs create zroot/usr
zfs create zroot/usr/home
zfs create zroot/var
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
zfs create -o compression=gzip-9 -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=gzip-9 -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp
#create swap
#zfs create -V 4G zroot/swap
#zfs set org.freebsd:swap=on zroot/swap
#zfs set checksum=off zroot/swap
##gmirror-swap##
gmirror label -b prefer swap gpt/swap0 gpt/swap1
##gmirror-swap##
#fix permissions
chmod 1777 /mnt/tmp
cd /mnt ; ln -s usr/home home
chmod 1777 /mnt/var/tmp
#install FreeBSD
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz kernel.txz doc.txz src.txz; #ports.txz lib32.txz
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done
#final configuration
cp /var/tmp/zpool.cache /mnt/boot/zfs/zpool.cache
echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf
echo 'LOADER_ZFS_SUPPORT=YES' > /mnt/etc/src.conf
echo 'WRKDIRPREFIX=/usr/obj' >> /mnt/etc/make.conf
touch /mnt/etc/fstab
##gmirror-swap##
echo '/dev/mirror/swap none swap sw 0 0' >> /mnt/etc/fstab
echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
##gmirror-swap##
zfs set readonly=on zroot/var/empty
#reboot into the new system
#passwd root
#tzsetup
#cd /etc/mail ; make aliases
#echo 'WITH_PKGNG=yes' >> /etc/make.conf
#...edit rc.conf
#in login.conf eintragen:
##:charset=UTF-8:\
##:lang=de_DE.UTF-8:\
#cap_mkdb /etc/login.conf
Bedenken oder Anregungen, dazu?
Zuletzt bearbeitet: