今日、プレインストールされたWindows 8実行マシンにUbuntu 16.04をUSB経由でインストールした後、コンピューターを再起動する必要がありました。
そうした後、OSを選択するように申し出られなかったので、インターネットを調べた後、インストールUSBの「Try Ubuntu」オプションを使用して実行したブート修復に遭遇しました。
ブート修復の後、次のメッセージが表示されました。
コンピューターがWindowsを直接再起動する場合は、BIOSで起動順序を変更してみてください。 BIOSで起動順序を変更できない場合は、Windowsブートローダーのデフォルトのブートエントリを変更します。たとえば、Windowsを起動し、管理コマンドプロンプトで次のように入力できます。
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
そのため、PCを再起動すると、次のエラーメッセージが約3秒間表示されます。その後、UbuntuにアクセスせずにWindowsで自動的に起動します。
だから私はcmdでそのコマンドを入力する他の解決策を試してみましたが、驚きましたが、PCをオンにするたびにOSを選択するウィンドウ(grub)が表示されますが、残念ながらまだエラーが発生するたびに、約3秒続きます。その後、OSを選択し(両方とも正常に動作しています)、正常に動作します。
PCを起動するたびにエラーメッセージを取り除くための提案はありますか?
最終的にそれを解決することができました。
残りについては、ターミナルを開きます
$ Sudo bash
$ cd /boot/efi/EFI
$ Sudo cp -p ubuntu/grubx64.efi Boot
$ Sudo touch ubuntu/grubx64.efi.gbr
その後、エラーメッセージが表示されなくなり、grubが正常に表示されました(以前にも、エラーメッセージが3秒間表示された直後に表示されました)。
ファイルをコピーするのではなく、おそらくブートローダーエントリ自体を修正する必要があります。アップストリームが何かを更新するとき、それは常に壊れます。代わりに次のようなものを試してください。
efibootmgr --create --label Ubuntu --disk /dev/sda1 --loader "\EFI\ubuntu\grubx64.efi"
ここで、/dev/sda1
は/boot/efi
に対応します。好奇心For盛な人のために、 this ガイドに詳細があります。
上記のこれらを試さないでください。これらは難しく、動作しない場合があります。私も同じ問題に遭遇したので、UbuntuのライブUSBを使用してUbuntuを試してみました。それから私はターミナルに行きました。そこで、次のコマンドを押します。ここではインターネットが必要です。
最初のコマンド:Sudo add-apt-repository ppa:yannubuntu/boot-repair && Sudo apt get update
2番目のコマンド:Sudo apt-get install -your boot-repair && boot-repair
その後、アプリが表示されます。その中で、推奨される修正を押します。その後、grubを修正して再インストールします。ここでもインターネットが必要です。その後、再起動してデュアルブートをお楽しみください。
Windowsの更新後、Ubuntuを起動できなくなりました:failed to open /EFI/ubuntu/grubx64.efi
Live Ubuntu USBを使用して起動することができました:
# find the EFI partition
Sudo fdisk -l
# mount EFI
Sudo mount /dev/<partition_name> /mnt
cp -p /cdrom/EFI/grubx64.efi /mnt/EFI/ubuntu
リブートしてセキュアブートを有効にしなければならなかったので、うまくいきました。これは、Windows 10を搭載したLenovo Thinkpad t470での18.04のデュアルブートでした。
ファイルを検索し、エラーのある場所にコピーするだけです。
更新と電源障害が発生した後、HP 8200がEFI\BOOT\grub64.efi
が起動時に見つからないという不平を言っていました。 SSDを別のコンピューター(新しいマザーボード)に入れて、これはうまく起動し、多分それは.efiファイルを検索します(?!)エラーのある場所に移動すると、問題なく起動しました。
find /boot -name grubx64.efi
/boot/efi/EFI/centos/grubx64.efi
cp /boot/efi/EFI/centos/grubx64.efi /boot/efi/EFI/BOOT/grubx64.efi
エラーは「EFI\BOOT \」と言っただけですが、完全なディレクトリは「/ boot/efi/EFI/BOOT /」でした。
コピーは、hddを別のLinuxマシンに入れることでも実行できると思います。