web-dev-qa-db-ja.com

GRUB=デュアルブート用にロードされていません

HP Spectre X360でWindows 10とUbuntu 15.10のデュアルブートを実行しています。 Ubuntuを更新し、システムの再起動を要求されるまで、すべてが正常に機能しました。再起動後GRUBは表示されなくなり、コンピューターはすぐにWindowsで起動します。

私は次を試しました:

  • ブート中にシフトを保持:何も起こりません
  • ブート順序の変更:Windowsブートマネージャーのみが表示されるため、何も変更できません
  • ブート修復の実行:実行後、このログを取得しました http://paste2.org/0Cwwt45W ですが、問題は解決しませんでした。

これまでのところ、他に何を試すべきかわかりません。

編集:esc、「Boot Device Options」、「Boot from EFI file」、「EFI」、「Ubuntu」、「grubx64.efi」の順にクリックして、Ubuntuを起動します。

/var/log/apt/history.logの興味深いエントリは次のとおりです。

Install: 
linux-headers-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-signed-image-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-image-extra-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)
linux-headers-4.2.0-23:AMD64 (4.2.0-23.28, automatic)
linux-image-4.2.0-23-generic:AMD64 (4.2.0-23.28, automatic)

Upgrade: 
linux-headers-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-AMD64-bin:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-efi-AMD64:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub-common:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
grub2-common:AMD64 (2.02~beta2-29ubuntu0.2, 2.02~beta2-29ubuntu0.3)
linux-signed-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
grub-efi-AMD64-signed:AMD64 (1.55.2+2.02~beta2-29ubuntu0.2, 1.55.3+2.02~beta2-29ubuntu0.3)
linux-signed-image-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
linux-image-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
linux-generic:AMD64 (4.2.0.22.24, 4.2.0.23.25)
1

ブート修復ログの1220-1221行目からの問題は次のとおりです。

efibootmgr: Could not set variable Boot0002: No such file or directory
efibootmgr: Could not prepare boot variable: No such file or directory

英語に翻訳すると、efibootmgrユーティリティ(LinuxからEFIブートローダーをインストールする際の重要な部分)が新しい変数(Boot0002)が、その変数をデフォルトとして設定しようとしたときに、ファームウェアのメモリから消えていました。基本的に、これはファームウェアのバグ(またはefibootmgrのバグ)、または少なくとも何らかのファームウェアのグリッチまたは設定ミスを示しています。次のようないくつかの可能な解決策と回避策があります。

  • ファームウェア(おそらく製造元が「BIOS」と呼ぶもの)をアップグレードし、再試行してください。これによりバグが修正される場合があります。
  • ファームウェアオプションを見つけて、すべてを工場出荷時のデフォルトにリセットし、そのオプションを使用してから、もう一度試してください。これにより、ファームウェアのデータストアから不要なものが取り除かれ、作業がよりスムーズになります。
  • レジスタGRUB=など、他の方法でファームウェアに:
    • この質問。 への私の答えで説明されているように、Windowsでbcdeditを使用する
    • GUIの使用 EasyUEFI Windowsでのツール。
    • the Arch Linux wiki。 で説明されているEFIシェルの使用
    • これらのオプションのすべてのポイントは、問題の少なくとも一部がefibootmgrにある可能性があるため、別のツールを使用する方が適切な場合があることです。
  • コンピューターが新品の場合は、返金のためにストアに返品し、設計上破損していないものを購入します。
  • 「詳細」ブート修復オプションを使用して、ブートローダーのバックアップと名前変更を行います。これは、Windowsブートローダーの代わりにGRUBを配置し、作業中のWindowsエントリをハイジャックし、Windowsブートローダーのコピーを他の場所に配置します。これは、ほとんどのツールはこの回避策が作成する非常に不規則な状態を知らないので、後で戻って噛みつきますが、極端な場合には唯一の解決策かもしれません。

あなたがcanあなたが好きな順序でそれらを試してみますが、私は1つが動作するまで大体その順序で解決策を試してみます。

1
Rod Smith

BIOSで起動順序を変更する必要があります。起動時に、ボタンを押して入力する必要があります。ほとんどの場合、F2またはdelです。そこから、ブートするための最優先事項としてubuntuパーティションを選択する必要があります。これはすべて、マザーボードとBIOSのバージョンに依存します。起動時にどのボタンを押すべきかわからない場合は、マザーボードを検索してください。

0
Durgolias

マシンがUEFIを使用しているようです。新しいgrubブートローダーがBIOSによって認識されていないため、Windowsが起動すると想定しています。 「レガシーブート」が選択されない限り、Linux(GRUB)へのブートを拒否するラップトップでこの動作を観察しました。

これにより、2つのオプションが提供されます。

  • F12またはEsc(他のキー など、たとえばF9 )を押して、起動時にワンタイムブートメニューを開こうとします。 legacy bootのようなものを選択します
  • F2Del(またはその他のキー)でBIOS設定を開き、startup respに移動します。ブート管理と「レガシーブートを有効にする」またはそこに匹敵するオプションを探してアクティブにする

これらの手順のいずれかが機能する場合、それがUEFIの問題であり、ブートローダーがまだ正常で動作していることがわかります。

もう1つのアプローチは、以前UEFIが機能していたにもかかわらず、Ubuntuの起動を拒否する理由を確認することです。これは次の原因で発生する可能性があります。

  • bIOSでのブート優先順位設定
  • 正当なブートローダーとして受け入れられるには、GRUBフィンガープリント/署名をUEFIに追加する必要があります
  • GRUBが破損しているため、Ubuntu Live CDからブートローダーを再インストールできます
0
MarkWatney

Windows 10は、コンピューターにインストールされている唯一のOSとして自分自身を見るのが大好きなので、他のユーザーが起動できないようにします。必要なことは、管理コマンドプロンプトまたはPowerShellを使用して、WindowsのデフォルトブートマネージャーとしてGRUBを設定することです。

次のコマンドを実行します:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

PowerShellを使用する場合、次のコマンドを実行します。

bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi

コンピューターを再起動すると、HPロゴの後にgrubが表示されます。

0
Vin

同様の問題がありました:Win 7とXubuntu 15.10-> Grubが起動しませんでした。 grubを復元しようとすると、同様のメッセージが表示されました。

Could not set variable Boot000B: No such file or directory

だから私は(Windowsとして管理者として)bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi上記のとおり。 Grubは正常に動作しますが、Windowsを選択できません。

Windowsをgrubに追加する: https://wiki.ubuntuusers.de/GRUB_2/Skripte/ (ドイツ語)->「/ etc/grub.d」に実行可能なskrip「29_windows」を作成しました

#!/bin/bash
# EFI-Partition suchen und auswerten
if [ -f /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi ]; then
    EFI_UUID=$( grub-probe -t fs_uuid /boot/efi/EFI )
    echo "Menüeintrag für Windows eingefügt" >&2

cat <<EOF
menuentry "Windows 7 Pro (UEFI)" {
    insmod fat
    insmod chain
    search --no-floppy --fs-uuid --set=root ${EFI_UUID}
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
fi

そして走る

Sudo grub-mkconfig
Sudo update-grub

Grubは、スクリプトを介して自動的にWindowsを検出しました。両方が機能しているので、余分なスクリプトは必要ないかもしれません

0
Tom Peters