HP Spectre X360でWindows 10とUbuntu 15.10のデュアルブートを実行しています。 Ubuntuを更新し、システムの再起動を要求されるまで、すべてが正常に機能しました。再起動後GRUBは表示されなくなり、コンピューターはすぐにWindowsで起動します。
私は次を試しました:
これまでのところ、他に何を試すべきかわかりません。
編集: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)
ブート修復ログの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
のバグ)、または少なくとも何らかのファームウェアのグリッチまたは設定ミスを示しています。次のようないくつかの可能な解決策と回避策があります。
bcdedit
を使用するefibootmgr
にある可能性があるため、別のツールを使用する方が適切な場合があることです。あなたがcanあなたが好きな順序でそれらを試してみますが、私は1つが動作するまで大体その順序で解決策を試してみます。
BIOSで起動順序を変更する必要があります。起動時に、ボタンを押して入力する必要があります。ほとんどの場合、F2またはdelです。そこから、ブートするための最優先事項としてubuntuパーティションを選択する必要があります。これはすべて、マザーボードとBIOSのバージョンに依存します。起動時にどのボタンを押すべきかわからない場合は、マザーボードを検索してください。
マシンがUEFIを使用しているようです。新しいgrubブートローダーがBIOSによって認識されていないため、Windowsが起動すると想定しています。 「レガシーブート」が選択されない限り、Linux(GRUB)へのブートを拒否するラップトップでこの動作を観察しました。
これにより、2つのオプションが提供されます。
F12
またはEsc
(他のキー など、たとえばF9
)を押して、起動時にワンタイムブートメニューを開こうとします。 legacy boot
のようなものを選択しますF2
、Del
(またはその他のキー)でBIOS設定を開き、startup respに移動します。ブート管理と「レガシーブートを有効にする」またはそこに匹敵するオプションを探してアクティブにするこれらの手順のいずれかが機能する場合、それがUEFIの問題であり、ブートローダーがまだ正常で動作していることがわかります。
もう1つのアプローチは、以前UEFIが機能していたにもかかわらず、Ubuntuの起動を拒否する理由を確認することです。これは次の原因で発生する可能性があります。
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が表示されます。
同様の問題がありました: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を検出しました。両方が機能しているので、余分なスクリプトは必要ないかもしれません