危険なResetボタン |
update-grubすれば万事OKよね、と思っていたがそうでなかったので、UbuntuのUSBメモリを使って復旧する手順を記録しておく。
復旧手順
「Rescue a broken system」でレスキューモード起動
Ubuntu 14.04 Server のUSBメモリをUEFIで起動すると、grubメニューが現れる。その中の「Rescue a broken system」を選んで起動する。Serverなのは手元にあっただけで、Desktopなら普通のliveブートできるからもうちょっと楽かもね。
rootをインストール先にしてshell起動
言語だとかを選びウィザードを進めていくと、ルートファイルシステムを選ぶ画面が現れるので、Ubuntuをインストールしたパーティション、例えば/dev/sda6を選択後、「Execute a shell in /dev/sda6」を選んで、シェルを起動する。efibootmgrでエントリが存在しないことを確認
efibootmgr あるいは efibootmgr -v(-vは詳細情報を表示)と叩くと、記録されたブートエントリの一覧が確認できる。以下は例。長いID他が出ているが本筋ではないので省略した。
# efibootmgr -v BootCurrent: 0015 Timeout: 0 seconds BootOrder: 0000,0012,0013,0014 Boot0000* Windows Boot Manager HD(2,fa800,82000,(略))File(\EFI\Microsoft\Boot\bootmgfw.efi)WIND OWS.........x...B.C.D.O.B.J.E.C.T.=.(略) Boot0010 Setup FvFile((略)) Boot0011 Boot Menu FvFile((略)) Boot0012* Built-in Storage Device VenMsg((略)) Boot0013* USB Device VenMsg((略)) Boot0014* Network VenMsg((略)) Boot0015* Onetime Boot Device VenMsg((略)) Boot0016* VaioNextBoot Device VenMsg((略))UbuntuやLinuxらしき項目は見つけられない。
/boot/efiにEFIパーティションをマウント
ブートローダが格納されているパーティションを/boot/efiにマウントする。今回は/dev/sda2なので以下の通り。# mount /dev/sda2 /boot/efiパーティションがどこなのかは、fdisk -lやparted /dev/sdX print、efibootmgr -vの出力、/etc/fstabの記述などから判断する。
grub-installによる復旧
grub-installでブートローダをインストールする。# grub-install --bootloader-id ubuntu /dev/sdaもっとローレベルにefibootmgr -cでもできると思うが、試していない。
efibootmgrによる確認
efibootmgr -vを実行し、ubuntuの行があること、その行がBootOrderの先頭にあることを確認する。# efibootmgr -v BootCurrent: 0015 Timeout: 0 seconds BootOrder: 0001,0000,0012,0013,0014 Boot0000* Windows Boot Manager HD(2,fa800,82000,(略))File(\EFI\Microsoft\Boot\bootmgfw.efi)WIND OWS.........x...B.C.D.O.B.J.E.C.T.=.(略) Boot0001* ubuntu HD(2,fa800,82000,(略))File(\EFI\ubuntu\shimx64.efi) Boot0010 Setup FvFile((略)) Boot0011 Boot Menu FvFile((略)) Boot0012* Built-in Storage Device VenMsg((略)) Boot0013* USB Device VenMsg((略)) Boot0014* Network VenMsg((略)) Boot0015* Onetime Boot Device VenMsg((略)) Boot0016* VaioNextBoot Device VenMsg((略))
これで再起動して、Grubメニューが出てきたら成功。
参考:Restore Ubuntu UEFI Boot Entries after BIOS Update
---
このブートエントリ飛ばしちゃった問題は某co-edoで起きていたのだけど、うっかり復旧しようとしてたら確実にこれで時間を使いきっていた。あきらめて正解であった。
0 件のコメント:
コメントを投稿