Top > FreeBSD > Install FreeBSD 8.2-RC3 on pure ZFS
FreeBSD 8.2-RC3がリリースされたので
Install FreeBSD 8.2-RC2 on pure ZFSから変更点があるか確認します
今回はVirtual Boxを利用しました
The FreeBSD Projectから必要なイメージをダウンロードします
Virtual Boxを利用するのでi386を選択します
DVDからインストールする場合は、FreeBSD-8.2-RC3-i386-dvd1.iso.xzを解凍し".iso"をファイルを取り出してからISOファイルから起動します
"Fixit"を使用しますので、bootonlyやdisk1は使えません
DVDから起動すると通常のインストール画面になりますので環境に合わせて設定します
110 Japan を選択
Japanese 106 を選択
Fixit を選択
起動したメディアに合わせて、CDROM/DVDを選択
# dmesg | grep "[ad][ad][0-9]" acpi_acad0: <AC Adapter> on acpi0 ad4: 8192MB <VBOX HARDDISK 1.0> at ata2-master UDMA100 SATA 3Gb/s
# dd if=/dev/zero of=/dev/ad4 count=1 bs=1m
# gpart create -s gpt /dev/ad4
# gpart add -s 64k -t freebsd-boot ad4
# gpart add -t freebsd-zfs -l disk0 ad4
# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4 bootcode written to ad4
# gpart show ad4 => 34 16777149 ad4 GPT (8.0G) 34 128 1 freebsd-boot (64K) 162 16777021 2 freebsd-zfs (8.0G)
# kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko
# mkdir /boot/zfs
# zpool create tank0 gpt/disk0 # zpool create tank0 mirror gpt/disk0 gpt/disk1 # zpool create tank0 raidz gpt/disk0 gpt/disk1 gpt/disk2 ... # zpool create tank0 raidz2 gpt/disk0 gpt/disk1 gpt/disk2 ...
# zfs set checksum=fletcher4 tank0
# zfs set atime=off tank0
# zfs set mountpoint=legacy tank0
# zfs create tank0/system/ # zfs create tank0/system/sysroot # zfs create tank0/system/usr # zfs create tank0/system/var # zfs create tank0/system/var/crash # zfs create tank0/system/var/db # zfs create tank0/system/var/db/pkg # zfs create tank0/system/var/empty # zfs create tank0/system/var/log # zfs create tank0/system/var/mail # zfs create tank0/system/var/run # zfs create tank0/system/var/tmp # zfs create tank0/src # zfs create tank0/ports # zfs create tank0/ports/distfiles # zfs create tank0/ports/packages # zfs create tank0/home
# zfs set compression=lzjb tank0/system/var/crash # zfs set compression=lzjb tank0/system/var/db/pkg # zfs set compression=lzjb tank0/system/var/log # zfs set compression=lzjb tank0/system/var/mail # zfs set compression=lzjb tank0/system/var/tmp # zfs set compression=lzjb tank0/src # zfs set compression=lzjb tank0/ports
# zfs set exec=off tank0/system/var/crash # zfs set exec=off tank0/system/var/db # zfs set exec=off tank0/system/var/empty # zfs set exec=off tank0/system/var/log # zfs set exec=off tank0/system/var/mail # zfs set exec=off tank0/src # zfs set exec=off tank0/ports/distfiles # zfs set exec=off tank0/ports/packages
# zfs set setuid=off tank0/system/var/crash # zfs set setuid=off tank0/system/var/db # zfs set setuid=off tank0/system/var/db/pkg # zfs set setuid=off tank0/system/var/empty # zfs set setuid=off tank0/system/var/log # zfs set setuid=off tank0/system/var/mail # zfs set setuid=off tank0/system/var/tmp # zfs set setuid=off tank0/src # zfs set setuid=off tank0/ports # zfs set setuid=off tank0/ports/distfiles # zfs set setuid=off tank0/ports/packages
# zpool set bootfs=tank0/system/sysroot tank0
# mkdir /t # mount -t zfs tank0/system/sysroot /t # mkdir /t/tmp # chmod 1777 /tmp # mkdir /t/usr # mount -t zfs tank0/system/usr /t/usr # mkdir /t/usr/home # mount -t zfs tank0/home /t/usr/home # ln -s /usr/home /t/home # mkdir /t/usr/ports # mount -t zfs tank0/ports /t/usr/ports # mkdir /t/usr/ports/distfiles # mount -t zfs tank0/ports/distfiles /t/usr/ports/distfiles # mkdir /t/usr/ports/packages # mount -t zfs tank0/ports/packages /t/usr/ports/packages # mkdir /t/usr/src # mount -t zfs tank0/src /t/usr/src # mkdir /t/var # mount -t zfs tank0/system/var /t/var # mkdir /t/var/crash # mount -t zfs tank0/system/var/crash /t/var/crash # mkdir /t/var/db # mount -t zfs tank0/system/var/db /t/var/db # mkdir /t/var/db/pkg # mount -t zfs tank0/system/var/db/pkg /t/var/db/pkg # mkdir /t/var/empty # mount -t zfs tank0/system/var/empty /t/var/empty # mkdir /t/var/log # mount -t zfs tank0/system/var/log /t/var/log # mkdir /t/var/mail # mount -t zfs tank0/system/var/mail /t/var/mail # mkdir /t/var/run # mount -t zfs tank0/system/var/run /t/var/run # mkdir /t/var/tmp # mount -t zfs tank0/system/var/tmp /t/var/tmp # chmod 1777 /t/var/tmp
構成は "minimal" + ports + src にしています
# cd /dist/8.2-* # export DESTDIR=/t
# cd base # ./install.sh
# cd ../src # ./install.sh all
# cd ../ports # ./install.sh
# cd ../kernels # ./install.sh generic # cd /t/boot ; cp -Rlp GENERIC/* /t/boot/kernel/
# zfs set readonly=on tank0/system/var/empty
# chroot /t
# ee /etc/fstab # Device Mountpoint FStype Options Dump Pass# tank0/system/usr /usr zfs rw 0 0 tank0/system/var /var zfs rw 0 0 tank0/system/var/crash /var/crash zfs rw 0 0 tank0/system/var/db /var/db zfs rw 0 0 tank0/system/var/db/pkg /var/db/pkg zfs rw 0 0 tank0/system/var/empty /var/empty zfs ro 0 0 tank0/system/var/log /var/log zfs rw 0 0 tank0/system/var/mail /var/mail zfs rw 0 0 tank0/system/var/run /var/run zfs rw 0 0 tank0/system/var/tmp /var/tmp zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=1073741824 0 0 tmpfs /ports/tmp tmpfs rw,size=1073741824 0 0 tank0/ports /usr/ports zfs rw 0 0 tank0/ports/distfiles /usr/ports/distfiles zfs rw 0 0 tank0/ports/packages /usr/ports/packages zfs rw 0 0 tank0/src /usr/src zfs rw 0 0
echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'hostname="zfsroot.localdomain"' >> /etc/rc.conf echo 'ifconfig_em0="DHCP"' >> /etc/rc.conf echo 'keymap="jp.106"' >> /etc/rc.conf
echo 'zfs_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:tank0/system/sysroot"' >> /boot/loader.conf AHCIの場合 echo 'ahci_load="YES"' >> /boot/loader.conf
# cd /etc/mail # make aliases
# exit
再作成 # mkdir /boot/zfs; zfs export tank0; zfs import tank0 コピー # cp /boot/zfs/zpool.cache /t/boot/zfs/zpool.cache
# exit
# zfs set mountpoint=/usr/home tank0/home