Top > FreeBSD > Install FreeBSD 9.0-Release on UFS + ZFS
FreeBSD 8.2インストール以降作業が進展していません
FreeBSD 9.0-RELEASEがでましたので、あらためて仕切りなおしです
また、USB Flashメモリでのpure ZFSだと起動が遅いため、"/"のみ UFS 、他をZFSにインストールします
pure ZFSなら"FreeBSD/Install FreeBSD 8.2-RC2 on pure ZFS"も参考にしてください
ZFSについては"ZFSTuningGuide"を参考にしています
The FreeBSD Projectから必要なイメージをダウンロードします
atom 330は64bitCPUなので、amd64のものを探します
USB Flashメモリからインストールする場合は、FreeBSD-9.0-RELEASE-amd64-memstick.imgをダウンロードし、
次のコマンドでインストールします
# dd if=FreeBSD-9.0-RELEASE-amd64-memstick.img of=/dev/da0 bs=10240 conv=sync
of=/dev/da0 は適切に設定してください
Windowsの場合は DD for windowsを使用してください
USB Flashメモリから起動するとインストール画面になりますので環境に合わせて設定します
non-default key mapping か 聞かれているので、 Yes と選択した後 Japanese 106 を選択
Host 名を入力します 後で変更できるのでいったん適当に入力してもかまいません
何も選択せずに OK で抜けます
Shell を選択
# dmesg | grep "[ad][ad][0-9]" ada0: <WDC WD15EARS-00MVWB0 50.0AB50> ATA-8 SATA 2.x device ... ada1: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device ... ada2: <WDC WD20 EARS-00MVWB0 0009> Fixed Direct Access SCSI-0 device ... ada3: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device ... da0: <WDC WD15 EARS-00MVWB0 0009> Fixed Direct Access SCSI-0 device ... da1: <BUFFALO USB Flash Disk 3.10> Removable Direct Accesss SCSI-0 device ... da2: <WDC WD20 EARS-00MVWB0 0009> Fixed Direct Access SCSI-0 device ... da3: < Patriot Memory PMAP> Removable Direct Access SCSI-0 device ...
# gpart destroy -F da3
# gpart create -s gpt /dev/da3
# gpart add -s 64k -t freebsd-boot da3
# gpart add -s 450m -t freebsd-ufs -l flash0ufs da3 # newfs -i 4096 -j /dev/gpt/flash0ufs
# gpart add -s 7g -t freebsd-zfs -l flash0zfs da3
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da3 bootcode written to da3
# gpart show da3 => 34 15646653 da3 GPT (7.5G) 34 128 1 freebsd-boot (64k) 162 921600 2 freebsd-ufs (450M) 921762 14680064 3 freebsd-zfs (7.0G) 15601826 44861 - free - (21M)
# mdmfs -s 1m md2 /boot/zfs
# zpool create tank0 gpt/flash0zfs
# zfs set checksum=fletcher4 tank0
# zfs set atime=off tank0
# zfs set mountpoint=legacy tank0
# zfs create tank0/system/ # 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/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 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 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
# mount -t ufs /dev/gpt/flash0ufs /mnt # mkdir /mnt/tmp # chmod 1777 /mnt/tmp # mkdir /mnt/usr # mount -t zfs tank0/system/usr /mnt/usr # mkdir /mnt/usr/home # mount -t zfs tank0/home /mnt/usr/home # ln -s /usr/home /mnt/home # mkdir /mnt/usr/src # mount -t zfs tank0/src /mnt/usr/src # mkdir /mnt/var # mount -t zfs tank0/system/var /mnt/var # mkdir /mnt/var/crash # mount -t zfs tank0/system/var/crash /mnt/var/crash # mkdir /mnt/var/db # mount -t zfs tank0/system/var/db /mnt/var/db # mkdir /mnt/var/db/pkg # mount -t zfs tank0/system/var/db/pkg /mnt/var/db/pkg # mkdir /mnt/var/empty # mount -t zfs tank0/system/var/empty /mnt/var/empty # mkdir /mnt/var/log # mount -t zfs tank0/system/var/log /mnt/var/log # mkdir /mnt/var/mail # mount -t zfs tank0/system/var/mail /mnt/var/mail # mkdir /mnt/var/run # mount -t zfs tank0/system/var/run /mnt/var/run # mkdir /mnt/var/tmp # mount -t zfs tank0/system/var/tmp /mnt/var/tmp # chmod 1777 /mnt/var/tmp
構成は最小設定がいいので base + src + kernel のみにします
portsはJail fulltree FreeBSD 9.0-Releaseで導入しますので、ここでは見送ります
# cd /usr/freebsd-dist # export DESTDIR=/mnt
# for file in base.txz src.txz kernel.txz; # do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done # cd /mnt/boot; mkdir GENERIC; cp -Rlp kernel/* GENERIC/
# zfs set readonly=on tank0/system/var/empty
# chroot /mnt
# ee /etc/fstab # Device Mountpoint FStype Options Dump Pass# /gpt/flash0ufs / ufs rw,noatime 0 0 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 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 AHCIの場合 echo 'ahci_load="YES"' >> /boot/loader.conf ZFS の設定 echo 'vfs.zfs.prefetch_disable=1' >> /boot/loader.conf echo 'vfs.zfs.txg.timeout="5"' >> /boot/loader.conf
# tzsetup Asiaを選択 Japanを選択
# cd /etc/mail # make aliases
# exit
再作成 # cd / # mdmfs -s 1m md2 /boot/zfs; zpool export tank0; zpool import tank0 コピー # cp /boot/zfs/zpool.cache /mnt/boot/zfs/zpool.cache
# reboot
# zfs set mountpoint=/usr/home tank0/home