#はじめに
FreeBSD-users-jp MLに投下したものに加筆したものです。
GPT+UEFI環境では既存のboot0(F1 FreeBSD, F2 Winって出て来るアレ)が使えません。また、GPTパーティションへのクリーンインストールは対応しているようですが、デュアルブートの設定はどうも良くわからなかったので色々調べながら設定してみた記録です。
手動で、ブートローダの設定を行いました。
#手順
用意するものはどこのご家庭にもあるPXEブート環境(←)とソースツリー
あらかじめ、make buildworldして、PXEブート用のディレクトリに
インストールしておきます
PCでファームウェアセットアップ画面を出して、SecureBoot(これはFreeBSDがSecure Bootに対応していないため)を無効にしておきます。この時、BitLockerはあらかじめ解除する必要があります。
また、PXE環境の整備の時、PXEでロードするファイルはUEFI PXE経由の時はloader.efiを指定するようにDHCPの設定を行います。
Windowsでパーティションを縮小して、FreeBSDをインストールする場所を
作ります。
そして、PXEブートしたら、/usr/srcと/usr/objをNFSマウントして
installworld, installkernelします。
そして、EFIパーティションをmountして
loader.efiを
${EFIMOUNT}/EFI/FreeBSD/Boot/loader.efi
にコピーします
そして、Windowsでbcdedit /copy "{bootmgr}" /d "FreeBSD"
として、得られたUUIDをメモして
bcdedit /set "{得られたUUID}" path \EFI\FreeBSD\Boot\loader.efi
とします。
そのあと
bcdedit /set "{fwbootmgr}" displayorder "{得られたUUID}" /addlast
とします。
それで、リブートしてF12を押すとブートメニューにFreeBSDという
アイテムが出てきます。
これを選ぶとHDDのEFI上のboot1からFreeBSDがあがるはずです。
同様に、ここでFreeBSDのboot1の代わりにUEFIシェルをコピーすると
UEFIシェルが無いUEFIマシンでUEFIシェルをブートメニューから上げることが出来ます。
なお、mountvol.exe /S e:とすることで、Windows上でEFIパーティションを
e:\にマウントすることが出来ます