web-dev-qa-db-ja.com

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

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

私のアクションは次のとおりです。

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

Grubはブート時に私にくれます:

  1. Ubuntu(問題なく動作します)
  2. Windows Recovery Environment(多くのエラー)
  3. Windows 8(2つのエラーメッセージのすぐ下に説明)

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

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

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

GRUB bootmenuにカスタムエントリを追加します

以下のコードを/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 System Partition(ESP)のIDです。 ESPが最初のハードドライブbootの最初のパーティションでない場合、あなたのものは異なります!例えば。 2番目のドライブの2番目のパーティションのhd1,gpt2

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

GRUBに変更を適用する

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

Sudo update-grub

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


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

6
Kouros

GRUBの誤ったWindowsエントリは、次のバグが原因です。 https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/102438

解決策:run Boot-RepairRecommended RepairをliveCD(またはliveUSB)から実行します。

3
LovinBuntu

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

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からLONGメニューを取得しました。

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でもブートできます。

0
user200241

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

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

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

0
Lupe

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

0
vic

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

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

0
user184354