gpt + zfsboot
土日ほぼ全部つぶして、GPTのfreebsd-zfsをmirrorしたpure ZFS環境が完成。結局、何が悪くてブートしなかったのか、何をしたら解決したのか謎だけど。
nanobsdがあちこちはまるので、結局pxebootにひよってしまった。
あらかじめ、make.confにLOADER_ZFS_SUPPORT=YESとしてlivefsを作っとく。
pxebootで起動したら、あとはほとんど、http://blog.ninth-nine.com/diary/20090301.txt の内容でOK。
GPTでパーティションを切る
gpart create -s GPT ad4 gpart create -s GPT ad6 gpart add -b 34 -s 128 -t freebsd-boot ad4 gpart add -b 34 -s 128 -t freebsd-boot ad6 gpart add -b 162 -s 1953524973 -t freebsd-zfs ad4 gpart add -b 162 -s 1953524973 -t freebsd-zfs ad4 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad4 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad6
ZFSでFSを切る
zpool create pool1 mirror /dev/ad4p2 /dev/ad6p2 zfs create pool1/usr zfs create pool1/home zfs create pool1/share zfs create pool1/space zfs create pool1/var zfs create -V 2g pool1/swap zpool set bootfs=pool1 pool1 zfs set org.freebsd:swap=on pool1/swap
ファイルをコピー
zfs set mountpoint=/mnt pool1 zfs mount -a cd / find -x . | cpio -pmd /mnt
設定ファイル
echo 'pool1 / zfs rw 0 0' > /mnt/etc/fstab echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf vi /mnt/boot/loader.conf
-
-
- -
-
-
-
- -
-
import/exportして、zpool.cacheを作成(もとがpxerootなので、mfsに作らせる)
mdconfig -a -t malloc -s 1m newfs /dev/md2 mount /dev/md2 /boot/zfs zpool export pool1 zpool import pool1 cp /boot/zfs/zpool.cache /mnt/boot/zfs
リブートして、シングルユーザモードで起動し、どこからともなくinstallworld
zfs set mountpoint=legacy pool1 reboot boot -s zfs set mountpoint=/usr pool1/usr zfs set mountpoint=/home pool1/home zfs set mountpoint=/share pool1/share zfs set mountpoint=/space pool1/space zfs set mountpoint=/var pool1/var /etc/netstart mount SERVER:/usr/src /usr/src mount SERVER:/usr/obj /usr/obj cd /usr/src make installworld installkernel mergemaster