Edited at
UEFIDay 4

FreeBSDのWindows8.1マシンでのデュアルブートのやりかた

More than 1 year has passed since last update.


はじめに

FreeBSD-users-jp MLに投下したものに加筆したものです。

GPT+UEFI環境では既存のboot0(F1 FreeBSD, F2 Winって出て来るアレ)が使えません。また、GPTパーティションへのクリーンインストールは対応しているようですが、デュアルブートの設定はどうも良くわからなかったので色々調べながら設定してみた記録です。

手動で、ブートローダの設定を行いました。


手順

用意するものはどこのご家庭にもあるPXEブート環境(←)とソースツリー

あらかじめ、make buildworldして、PXEブート用のディレクトリに

インストールしておきます

PCでファームウェアセットアップ画面を出して、SecureBoot(これはFreeBSDがSecure Bootに対応していないため)を無効 LegacyBoot(これはレガシーPXEのためです)を有効にしておきます。

Windowsでパーティションを縮小して、FreeBSDをインストールする場所を

作ります。

そして、PXEブートしたら、/usr/srcと/usr/objをNFSマウントして

installworld, installkernelします。

そして、EFIパーティションをmountして

/usr/obj/usr/src/sys/boot/amd64/boot1.efi/boot1.efiを

${EFIMOUNT}/EFI/FreeBSD/Boot/bootx64.efi

にコピーします

そして、Windowsでbcdedit /copy "{bootmgr}" /d "FreeBSD"

として、得られたUUIDをメモして

bcdedit /set "{得られたUUID}" path \EFI\FreeBSD\Boot\bootx64.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:\にマウントすることが出来ます