🍣

Linuxに後からWindowsをマルチブートで入れる

2023/01/23に公開

ネットで探すと/etc/grub.d/40-customeをいじる必要があるとか、色々出ますが
Linux側はos-proberが有効になっていたら、grub-mkconfig時に
grubはWindowsのESPを見つけてくれます。

よくあるhd0ホニャララみたいに具体的に書くのは不具合の原因や管理コストの増大に繋がるので、
特に理由がない限りos-proberに任せてください。

前提条件

LinuxのディスクにwindowsのESPのパーティションとWindowsがインストールされているNTFSパーティションがあり、
windowsのESPからWindowsを起動できるようにbcdbootですでに設定されている。

つまり、grubからwindowsのESPにチェインロードされたらwindowsが起動できるようになっていること。

Windowsが使うパーティションとESPだけ別のWindowsPCで作るとできます。

WindowsOS自体のインストールの詳しいやり方はwindowsが起動するディスクの作成を見てください。

os-proberを有効にする

/etc/default/grubに下記の項目を追加してください。
これでos-proberが有効になります。

/etc/default/grub
GRUB_DISABLE_OS_PROBER=false

grubのメニューに追加する

# /boot/grub/grub.cfgにgrub.cfgがある場合。
grub-mkconfig -o /boot/grub/grub.cfg

ちゃんとwindowsを見つけてブートエントリに入れることができたら下記のように出力されます。

Found Windows Boot Manager on /dev/sdb12@/efi/Microsoft/Boot/bootmgfw.efi

grubのメニューからwindowsをちゃんと起動できるようになるので、

まとめ

grub賢いですね...
特に考えなくてもwindowsとのマルチブート組めるとは...

linuxでwindowsのimageの展開操作ができなかったり、ESP領域作れない所が
困る点ですね...
このあたりはMSが対応するとは思えないので、我慢しましょう。

Discussion