まずブートコードを書き込みます。
# gpart show ada1 ada2-i 2 ada2でディスクada2の2番目のパーティション、freebsd-bootにブートコードを書き込みます。
=> 40 7814037088 ada1 GPT (3.6T)
40 1600 1 efi (800K)
1640 1024 2 freebsd-boot (512K)
2664 1432 - free - (716K)
4096 7814031360 3 freebsd-zfs (3.6T)
7814035456 1672 - free - (836K)
=> 40 3907029088 ada2 GPT (1.8T)
40 1600 1 efi (800K)
1640 1024 2 freebsd-boot (512K)
2664 1432 - free - (716K)
4096 3907025024 3 freebsd-zfs (1.8T)
3907029120 8 - free - (4.0K)
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 ada2
partcode written to ada2p2
bootcode written to ada2
#
次にEFIブートコードです。
# dd if=/boot/boot1.efifat of=/dev/ada2p1ada2の1番目のパーティションに書き込みました。中身を確かめてみましょう。
1600+0 records in
1600+0 records out
819200 bytes transferred in 0.991747 secs (826017 bytes/sec)
#
# mount -t msdosfs /dev/ada2p1 /mntそれらしいものが入っています。
[root@kona /usr/home/ss]# ls /mnt
efi
# ls -R /mnt
efi
/mnt/efi:
boot
/mnt/efi/boot:
bootx64.efi startup.nsh
#
実際、EFIからada2を指定して起動してみると、正しく起動します。他のブートコードをインストールしていないディスクada3〜ada5を指定すると起動しません。なので、ブートコードの冗長化の役には立つかもしれません