LinuxのGRUB起動メニューにUEFI環境のwindowsを追加する
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

LinuxのGRUB起動メニューにUEFI環境のwindowsを追加する

2014-04-06 09:10
    あんまり生放送とは関係無いネタですが、覚書で書いておきます。
    タイトルの本題は文章中程から説明します。

    Windows8ProとUbuntu 12.04 64bitをデュアルブートで使っていましたが、先日原因不明の起動不可に陥りました。
    POST時にファンクションキーを押し、BIOS(UEFI)の起動メニューを表示させると「Windows Boot Manager」と「Ubuntu」という項目が消えていたのです!
    UEFIでインストールすると、BIOSにはブートローダーのエントリーが登録されます。
    ところがそのエントリーが消えていたのです! これでは起動できない!
    Ubuntuの方はLiveCDからcasperを利用して起動させ復旧せました。
    Ubuntuが起動しなくて困っている方の強い見方casperの使い方を分かりやすく説明しておきます。主は何度か起動不可に陥ったことがありますが、この方法で毎回起動させることに成功しています。

    起動前のPCにUbuntuのイメージが焼かれたCD/DVD(LiveCD)もしくはUSBメモリなどのメディアをセットします。

    ②起動時にブートメニューを表示させます。ASUSはF8、GIGABYTEはF12など、製品によって異なるので事前にマニュアルで調べておきましょう。

    ③ブートメニューからUbuntuの起動メディアを選択します。

    ④[e]キーを押し、オプション入力画面に切り替えます

    ⑤文字列を見ていくと「boot=casper」という記述があるのでそこを「root=/dev/sda2」などに書き換える。(※青文字の部分は環境によって異なります。事前に調べてください)

    ⑥入力が終わったらF10を押し確定させます

    ⑦入力が間違っていなければ起動するはずです。

    ※Ubuntu12.04の本家LiveCDでの操作方法です。他のバージョン、ディストリビューションでは異なる異なることがありますが、⑤だけは共通な筈です。

    Windowsの方はインストールディスクから「自動修復」「コマンドプロンプトからbcdedit」などを試してみましたが直る気配がありません。再インストールは嫌なのでUbuntuのGRUBからWindowsのブートローダーに移るように、GRUBの設定を弄ることにしました。

    ここからが本題です

    /etc/grub.d/40_custom というファイルを編集します。端末(ターミナル)で
    sudo gedit /etc/grub.d/40_custom
    青文字の部分はテキストエディタの指定です、各自インストールされているエディタを指定してください。設定ファイルを開いたら、以下のような記述を追記します
    menuentry "Microsoft Windows 8" {
    search --fs-uuid --no-floppy --set=root 1234-ABCD
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
    }
    青文字の部分はGRUBのブートリストに表示される任意の文字列です。分かりやすい名前を自由につけましょう。
    赤文字の部分はWindowsのEFIパーティションのUUIDです。UUIDはGpartedや端末を使って調べることができます。Windows本体がインストールされているパーティションではなく、領域の小さなEFIパーティションを指定するのがポイントです。

    記述が終わったら保存して、端末で以下のコマンドを実行してgrub情報の更新を行います。
    sudo update-grub
    これで追加完了です。再起動して確認しましょう。



    これで追加されました。Windowsも無事起動するようになりました!
    これでWindowsとLinux環境から配信できる日常が戻りました。一安心一安心。

    参考
    grubでUEFIのWindowsをブートするメニューを作る

    ※2016/5/16 一部内容を修正。私の雑魚いブロマガでこの記事がダントツでアクセス数が多いです。
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。