Top > FreeBSD > Install FreeBSD 8.2-RC2 on pure ZFS
FreeBSD 8.1 Release amd64 pure ZFS install
FreeBSD/ZFS/ZFSboot
以上のサイトを参考にさせていただいた上での自分なりのまとめです
The FreeBSD Projectから必要なイメージをダウンロードします
atom 330は64bitCPUなので、amd64を選択
USBからインストールする場合は、FreeBSD-8.2-RC2-amd64-memstick.imgを"dd"や"DDforWindows"を使って書き込みます
DVDからインストールする場合は、FreeBSD-8.2-RC2-amd64-dvd1.iso.xzを解凍し".iso"をファイルを取り出してからDVDに書き込みます
"Fixit"を使用しますので、bootonlyやdisk1は使えません
手持ちに空きUSBがなかったのでDVDを使ってインストールします
稼動しているPCがWindowsのみの為、7z 9.20をインストールし、".xz"で圧縮されているISOファイルを解凍後、DVDに書き込みました
DVDかUSBから起動すると通常のインストール画面になりますので環境に合わせて設定します
110 Japan を選択
Japanese 106 を選択
Fixit を選択
起動したメディアに合わせて、CDROM/DVDかUSBを選択
# dmesg | grep "[ad][ad][0-9]" ad4: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device ad6: <WDC WD15EARS-00MVWB0 50.0AB50> ATA-8 SATA 2.x device ad8: <SAMSUNG HD501LJ CR100-10> ATA-8 SATA 2.x device ad10: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device da0: < Patriot Memory PMAP> Removable Direct Access SCSI-0 device da1: <WDC WD15 EARS-00MVWB0 0009> Fixed Direct Access SCSI-0 device da2: < Patriot Memory PMAP> Removable Direct Access SCSI-0 device da3: <WDC WD20 EARS-00MVWB0 0009> Fixed Direct Access SCSI-0 device da4: <JetFlash Transcend 8GB 8.07> Removable Direct Access SCSI-2 device da5: <Hitachi HDP725050GLA360 > Fixed Direct Access SCSI-2 device da6: <WDC WD50 00AAKS-00YGA0 > Fixed Direct Access SCSI-2 device
# dd if=/dev/zero of=/dev/da0 count=1 bs=1m
# gpart create -s gpt /dev/da0
# gpart add -s 64k -t freebsd-boot da0
# gpart add -t freebsd-zfs -l usb0 da0
# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 da0
# gpart show da0 => 34 15646708 da0 GPT (7.5G) 34 128 1 freebsd-boot (64K) 162 15646580 2 freebsd-zfs (7.5G)
# kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko
# mkdir /boot/zfs
# zpool create tank0 gpt/usb0 # zpool create tank0 mirror gpt/usb0 gpt/usb1 # zpool create tank0 raidz gpt/usb0 gpt/usb1 gpt/usb2 ... # zpool create tank0 raidz2 gpt/usb0 gpt/usb1 gpt/usb2 ...
# 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=gzip tank0/system/var/crash # zfs set compression=gzip tank0/system/var/db/pkg # zfs set compression=gzip tank0/system/var/log # zfs set compression=gzip tank0/system/var/mail # zfs set compression=gzip tank0/system/var/tmp # zfs set compression=gzip tank0/src # zfs set compression=gzip 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_nfe0="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
# tzsetup Asiaを選択 Japanを選択
# 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