- ベストアンサー
grubx64.efiの起動可否
字数制限で質問タイトルが意味不明ですが、質問としては、 Windows Boot ManagerからGRUB(x64,EFI版)は起動できないのでしょうか? というものです。 WindowsとLinuxをSSDからデュアルブートさせようとしています。下記の2つの動作シーケンスを実現したいです。 ◯PC起動 → Windows Boot Manager → Windows起動 ◯PC起動 → Windows Boot Manager → grub起動 → Linux起動 PCはUEFIブートで、SSDはGPTフォーマットになっています。なので、x64版grubをESP(EFIパーティション)内の\EFI\ubuntu\grubx64.efiに置いています。また、bcdeditでこのgrubを起動するようにpath指定しています。ざっくり書くと、下記のような感じです。 bcdedit /create /d "~~~" bcdedit /set {uuid} path \EFI\ubuntu\grubx64.efi bcdedit /set {uuid} description "~~~~" bcdedit /set {bootmgr} displayorder {uuid} /addlast PCを起動しWindows Boot Managerが表示されたら、上記に設定したブートメニューを選ぶのですが、エラー0xC000007Bが表示されてgrubが起動しません。 SSDやLinuxのLive起動USBの中にファイルサイズの異なるgrubx64.efiが何個かあったので、ESP上のファイルと入れ替えてみたのですが、どれをやっても同じエラーなので、もしかしてWindows Boot Managerからgrubx64.efiは起動できないのではないか?と思い始めました。 「できた」という人がいるかどうかだけでも知りたいです。 関係無いかもしれませんが、できていることとしては・・・ ◯Windows Boot ManagerからWindowsを起動することはできる ◯LinuxのLiveUSBから起動してGRUBを起動し、そのGRUBコンソールから手打ちコマンドで、SSDにインストールしたLinuxを起動することはできる(あるいは、LiveUSB起動GRUBにSSD上のgrub.cfgを見つけさせて、そこに登録されている起動パラメータでLinux起動することもできる) ◯LinuxのLiveUSBで起動したGRUBから、Windows Boot Managerの方をチェーン起動させることはできる(GRUBに戻ることもできる) というわけで、私の理解としては「grubさえ起動できれば、Linuxを実行する準備はできている」と思うのですが、そのgrubを起動するにはLive USBを使わざるを得ない状況です。SSD上のWindows Boot Managerからgrubを起動させたいです。 gurbを先に起動させる方法もあるようですが、可能であればWindows Boot Managerを先に起動させたいです。 何かアドバイスをお持ちの方、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Win-efi は Linux-efi のブートを考慮しないので Windows Boot Manager → grub起動 → Linux起動は出来ないと思います。 EFI構成のPCの場合はEFIブートマネジャーを使ってWindows、LinuxをEFIブートしてはどうでしょうか。 Windows、Linuxを単独で(独立して)インストールした2台(複数台)構成のデュアル(マルチ)ブートはEFIパーティションも独立していますので問題ありません。 1台のドライブでのデュアルブートはEFIパーティションにWindowsとLinuxのブートローダーを共存させておけば、EFIブートマネジャーが認識します。 具体的には Windowsの \EFI\Microsoft\Boot\bootmgfw.efi および Linuxの \EFI\LINUX\grubx64.efi (LINUXの部分はインストールしている名前) をEFIパーティションに配置しておけばいいです。 EFIブートマネジャーは一例としてrefindがあります。 下記サイトを参照してみてください。 「rEFInd」 https://hrn25.sakura.ne.jp/win/refind/refind.html
お礼
アドバイスありがとうございます。この週末にまとまった時間が取れたので、ネットで情報収集しつつ色々と試してみました。 > Win-efi は Linux-efi のブートを考慮しないので > Windows Boot Manager → grub起動 → Linux起動は出来ないと思います。 この点について何らかの裏付けが取れないものかと思い、調べていました。私はEFIのchainload動作についてもっと簡単に考えていて、 ◯chainloadする際は、「後は任せたからな、ヨロシク」と言って、次のEFIアプリに処理が渡されるだけ と思っていました。 しかし、色々と情報を集めてみると、EFIの実行イメージといっても色々条件があるみたいで、ご指摘のようにWindows用のEFIはチェーンロードする先のEFIをかなり選ぶらしいことが書いてありました。 基本的にWindows使いなので、使い慣れたbcdeditが使えればと思ってWindows Boot Managerに少しこだわって見ましたが、やはりここからgrubやrEFInd、fwupdx64などの他のEFIを呼ぶのは無理っぽいですね。 というわけで、ご紹介いただいたrEFIndを使うことにしました。ブートできそうな環境・設定を自動的に調べてくれるので楽ちんですね。良いものを教えて下さいました。デフォルトのデザインがアレですが、適宜themeを入れ替えて遊んでみました。 ありがとうございました。