2016年12月9日金曜日

FreeBSD 11のインストール(zfs root/mirrorの場合) - 6

追加したディスクのパーティションも、起動ディスクと同じようなパーティション構成にしてみたので、ブートコードの書き込みの練習をしてみます。

まずブートコードを書き込みます。
# gpart show ada1 ada2
=>        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
#
-i 2 ada2でディスクada2の2番目のパーティション、freebsd-bootにブートコードを書き込みます。

次にEFIブートコードです。
# dd if=/boot/boot1.efifat of=/dev/ada2p1
1600+0 records in
1600+0 records out
819200 bytes transferred in 0.991747 secs (826017 bytes/sec)
 ada2の1番目のパーティションに書き込みました。中身を確かめてみましょう。
# 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を指定すると起動しません。なので、ブートコードの冗長化の役には立つかもしれません