Windows 8に沿ったUEFI上のデュアルブートUbuntu 12.10(GRUB-エラー:コマンドdrivemapが見つかりません)


8

こんにちはUbuntu 12.10 amd64のインストールに成功した後、Windows 8を起動できなくなりました。

これが私の行動です:

  1. Windows 8コンピューター管理からUbuntu用にスペース(15 GB)を確保
  2. EFIおよびセキュアブートを有効にしてUbuntu 12.10 amd64 LiveUSBを起動します。
  3. 最後に2つの新しいパーティションを作成しました(13 GBのExt4ルートと2 GBのスワップ)
  4. ブートローダーをインストールするために選択されたWindows 8 EFIシステムパーティション

グラブは起動時に私にくれます:

  1. Ubuntu(問題なく動作します)
  2. Windows回復環境(多くのエラー)
  3. Windows 8(2つのエラーメッセージはすぐ下に表示されます)

2つのエラーメッセージは次のとおりです。

  • error: can't find command drivemap.
  • error: invalid EFI file path

修正「新しく作成されたEFIシステムパーティション」を選択してブートローダーをインストールしましたが、実際にはWindows 8 EFSにブートローダーをインストールしました...
Kouros

事前にバックアップをしましたか?つまり、Windows 8の起動/システムパーティションは150〜350 MBのように小さいので、多分あなたはそうしましたdd if=/dev/sda1 of=/media/some_usb_pendrive/backupfileか そのようなバックアップが存在する場合、「破損」している可能性があるWindowsシステム/起動部分を復元します。
humanityANDpeace

バックアップは申し訳ありませんが、回復環境を使用してWindows 8を元に戻すことができました(電源ボタンの代わりにアシストボタンを押した)
Kouros

自分の質問を真剣に複製しましたか?Windows 8に沿ってUEFIにUbuntu 12.10をインストールします
duxk.gh

注:13.04にアップグレードすると、この変更がインストールから削除されました。
gcb 2013年

回答:


6

一時的な解決策を見つけました。

GRUBブートメニューにカスタムエントリを追加する

以下のコードをに追加します/etc/grub.d/40_custom

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Ctrl+ Alt+ Tを使用してターミナルを開いて実行しsudo nano /etc/grub.d/40_custom、コードをコピーして貼り付けることができます。最後にCtrl+ Oを押して保存し、Ctrl+ Xを押して終了します。

さあ hd0,gpt1、これが私のEFIシステムパーティション(ESP)のIDです。ESPが起動時の最初のハードドライブの最初のパーティションでない場合、それは異なります!たとえばhd1,gpt2、2番目のドライブの2番目のパーティション。

ドライブがMBRとレガシーパーティションを使用part_gptしているpart_msdos場合はに置き換え、それぞれに変更hd0,gpt1hd0,msdos1ます。

GRUBに変更を適用する

次のコマンドを実行するだけで、新しいカスタムエントリを含む新しいGRUB構成が生成されます。

sudo update-grub

再起動すると、Windows 8を起動できるようになります。そうでない場合、WindowsはBCD構成の破損について不平を言ってから、スーパーユーザーで続行します。Windows8 EFIブートローダーを修復するにはどうすればよいですか?


警告:場合によっては、Windows 8を起動すると、GRUBがデフォルトの起動マネージャーとしてWindows起動マネージャーに置き換えられます。


私は何を「狙う」べきですか?私はそれがWindowsデータパーティション(ここではgpt4)だと思っていましたが、私が持っている唯一のEFIパーティションであるgpt1で動作しました。しかし、ubuntuをインストールすると、grubがMBRに対して行うように、EFIパーティションのWindowsコンテンツが上書きされます...
gcb

1
この解決策は私にはうまくいきません。`登場set root='(hd0,gpt1)'予定のキャラクターです。その文字がなくても、エラーが発生します(私はgpt3で試します)。エラーが(hd0,gpt1)見つからないようです。
iammilind 2013

3

GRUBの間違ったWindowsエントリは、このバグが原因です:https : //bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

解決策:実行するブート・修理Recommended RepairLiveCDの(またはliveUSB)から。


1
これが機能する前に、BIOSで「セキュアブート」を無効にする必要がありました。
Robin Winslow

はい@RobinWinslow、ブート・修理も私のために(レノボのThinkPad S540)を働いていたが、私は無効になっている場合にのみSecureBoot、BIOSで、それ以外のWindows 8はまだ文句を言う...これはSecureBootを維持しながら動作させることができればいいだろう
fpghost

0

Windows 8をシャットダウンする方法を見つけました。/superuser/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581を参照して ください

W8の管理者特権のコマンドウィンドウで、powercfg / h offを実行します。この時点で、W8はすでにEFIパーティションを上書きしている可能性があります。bootmgfw.efiを変更し、スタックするまでリセットするのを数回繰り返しましたが、今は満足しています。

W8を起動するだけで十分か、ログインしてから再起動する必要があるかはわかりません。おそらく、もっと忍耐力のある人(私はこれに半日以上取り組んでいた)がわかるでしょう。


0

Asus-x202ラップトップ(W8およびUbuntu 13.04を実行)でも同じ問題が発生します。

少し面倒な作業は今のところ私には十分です:ブートメニューでシステムに移動します(または、おそらくf2を使用して最初からBIOSを開始します)。オーバーライドを使用して起動すると、Windowsは通常どおり起動します。


1
「ブートのオーバーライド」とは、正確には何を指しているのですか。私はあなたの答えのその部分を理解していません。
gertvdijk 2013

0

「オーバーライドする起動」は、マザーボード構成メニューの「起動」タブのメニューです。リグにまだインストールされているブートローダーを即座に選択して起動できます。


1
@edwinこの回答では展開を使用できますが、質問された質問に回答しようとする試みのようです。vic:Ask Ubuntuへようこそ!これを編集して、その機能の使用方法に関する詳細情報と、この問題を解決する理由の詳細な説明を追加することをお勧めします。ありがとう。
Eliah Kagan 2013

0

新しいHP Pavillion Sleekbook、モデル15-b142dxにも同様の問題があります。W8がプリロードされています。Windows内からWindowsパーティションのサイズを変更し、64ビットのUbuntu 13.04をサムドライブからインストールしました。ただし、再起動すると、W8は起動メニューなしで正常に起動しました。そこで、「boot-repair」を使用したため、システムが起動できなくなりました。起動時に、次のように出力されます。

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

その後、シャットダウンします。

試行錯誤の末、起動中にF10を押すとBIOSが表示され、セキュアブートを無効にできることがわかりました。次回の起動時に、grubから次のような多くのエントリを含む長いメニューを取得しました。

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

これらはすべて「/etc/grub.d/25_custom」というファイルに含まれていました。そのファイルのバックアップコピーを作成してから、WindowsブートUEFIローダー以外のすべてのエントリを削除しました。(これは、W8の起動を許可するエントリの1つです)。次に、「update-grub」を実行して、はるかに優れたブートメニューを作成し、どちらのOSもブートできるようにしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.