2020年8月7日金曜日

FreeBSD の UEFIブート

event_note8月 07, 2020 editBy sbin forumNo comments

FreeBSD の UEFI Boot

先人の説明を元に UEFI Boot してみた。

せっかくの HP DL380 G10 なので UEFI Boot でインストールしたいのだけど、インストーラーには

そんな親切なモードはなかった。

手持ちの板は FreeBSD R11.3 頃のやつ。

RAID はすでにに組んであり、 /dev/da0 としてアクセスできることを前提で書いている。

Regacy BIOS モードで起動してみる。 Install を選択して Manual で DISK を設定する。

とりあえず GPT でスライスをきる。

P No type サイズ MP ラベル dev
p1 efi 512m - - /dev/da0p1
p2 freebsd-ufs 3225GB / FreeBSD /dev/da0p2
p3 freebsd-swap 128GB none - /dev/da0p3

こんなイメージになるようにインストールしてみる。
インストーラーは efi なんてし知らないよと fail するが無視。
ここではパーティションが切れてp2 にOSが展開されれれば良い。

最後にインストールの最終設定をするか聞かれるので YES でシェルに入る。

efi の設定を行う。インストールに失敗した p1 へブートローダーを入れる。


# newfs_msdos -F 32 -S 512 -c 4 /dev/da0p1
# mkdir /esp
# mount -t msdosfs /dev/da0p1 /esp
# mkdir -p /esp/efi/boot
# cp /boot/boot1.efi /esp/efi/boot/BOOTx64.efi
# echo 'BOOTx64.efi' > /esp/efi/boot/startup.nsh
#
# umount /esp
# gpart bootcode -p /boot/boot1.efifat -i 1 da0

efibootmgr とかは使わなくてもブートできる。

  • FAT32 をマウントして efiローダーをコピーすると実行権が付いた状態でコピーされるから chmod は要らない。  
  • efi ブートシステムは /efi/boot にある startup.nsh を探すそうだ。  
  • あくまでGPTパーティションなので efiboot の bootcode を入れている。  

0 comments:

コメントを投稿