GPTZFSBoot/RAIDZ2 on VirtualBox
環境:
- FreeBSD 8.2-RELEASE amd64
- VirtualBox 4.0.6
VirtualBox上で http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/RAIDZ2 に書いてある方法で構築してブートすると
ZFS: i/o error - all block copies unavailable ZFS: can't read MOS ZFS: unexpected object set type lld ZFS: unexpected object set type lld FreeBSD/i386 boot Default: z:/boot/kernel/kernel boot:
というエラーが出てブートできない。調べたところVirtualBoxのBIOSがディスクを1つしかレポートしないためRAIDZ/RAIDZ2ではブートしないらしい。
で、解決方法。http://lists.freebsd.org/pipermail/freebsd-emulation/2010-September/007991.html で示されてるパッチを当てたブートコードを使う。
手順としては、http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/RAIDZ2 の手順のうち "chroot /zroot" したあとで
Fixit# cd /usr/src Fixit# fetch http://people.freebsd.org/~pjd/patches/bios_numdrives.patch Fixit# patch -p0 < bios_numdrives.patch Fixit# cd sys/boot Fixit# make obj && make depend && make && make install
ここまでできたら新しいブートコードを書き込む。
Fixit# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad0
上記ブートコードの書き込みをRAIDZ/RAIDZ2で使うディスク全てに行い、あとはwikiに書いてある残りの手順を行えばVirtualBox上でRAIDZ/RAIDZ2のZFSBootができます。