私のコンピューターはSony Vaioノートブックです。デュアルブートでUbuntuとWin 8を使用しましたが、Windowsは起動時にOSを選択するメニューをどうにかして削除しました。 BIOSはUEFIだと思います。セキュアブートはすでに無効になっており、ブート修復は何らかの理由で失敗します。
どうすれば修正できますか?
ソニー、HP、および多くのラップトップベンダーは、Windowsのみを起動するようにハードコードされています。
Windows grubx64.efi
の上にgrub shimx64.efi
または/EFI/windows/bootmgfw.efi
ファイルを移動することをお勧めする回避策がいくつかあります。ただし、Windows Updateがbootmgfw.efi
を復元し、起動ウィンドウのみに戻るため、これは推奨されません。
代わりに、フォールバック/EFI/Boot/bootx64.efiの名前を変更し、ハードドライブエントリをブートするか、rEFIndを使用することをお勧めします。
変更を加える前に、必ずEFIパーティション全体をバックアップしてください。
利用可能ないくつかのオプションがあります。
I。grubファイルgrubx64.efi
またはshim64.efi
(セキュアブート用)をこのフォルダー/ファイル/EFI/BOOT/BOOTX64.EFI
/efi/boot/bootx64.efiの名前を変更し、shimまたはgrubを/ efi/bootにコピーして、bootx64.efiという名前を付けてから、ハードドライブエントリを起動します。 Boot-Repairの新しいバージョンは、詳細オプションの「標準EFIファイルを使用する」でこれを自動的に行います。また、おそらくWindows .efiブートファイルの単なるコピーである現在のbootx64.efiをバックアップします。
ライブインストーラーからハードドライブにefiパーティションをマウントします:efiパーティションをマウントします。ブートフラグでFAT32であるパーティションを確認します。多くの場合、sda1またはsda2が異なります。
Sudo mount /dev/sda1 /mnt
まだ存在しない場合のみ、
Sudo mkdir /mnt/EFI/Boot
Sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/Boot
新しいフォルダーが作成された場合、bootx64.efiは存在しません。このコマンドをスキップしてください
Sudo mv /mnt/EFI/Boot/bootx64.efi /mnt/EFI/Boot/bootx64.efi.backup
UEFIでgrubをハードドライブブートエントリにします。存在しない場合は、efibootmgrでUEFIも更新する必要があります。
Sudo mv /mnt/EFI/Boot/grubx64.efi /mnt/EFI/Boot/bootx64.efi
必要に応じて、新しいUEFIハードドライブブートエントリを追加します。
man efibootmgr
ESPがsdaまたはデフォルトのドライブとパーティションエントリの場合:
Sudo efibootmgr -c -L "UEFI Hard drive" -l "\EFI\Boot\bootx64.efi"
ESPがsda1ではない場合、sdXはドライブ、Yはefiパーティション、NVMeドライブも同様です:
Sudo efibootmgr -c -g -w -L "UEFI hard drive" -l '\EFI\Boot\bootx64.efi' -d /dev/sdX -p Y
Sudo efibootmgr -c -L "UEFI hard drive" -l "\EFI\Boot\bootx64.efi" -d /dev/nvme0n1 -p 2
(これは、Boot-RepairがIIで行っていたものと同じです。現在は推奨されません:/efi/Microsoft/Boot/bootmgfw.efiの名前を変更し、 grubまたはshimを/ efi/Microsoft/Bootにコピーし、bootmgfw.efiという名前を付けてから、Windowsエントリを起動してgrubメニューを起動します。 .efiエントリは現在grubであるため、機能しません。
Efiファイルを手動で移動したユーザーは、投稿6を参照してください。
http://ubuntuforums.org/showthread.php?t=210184
http://ubuntuforums.org/showthread.php?t=2219452
http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109
II。古いコピーで「バグのあるUEFI」のBoot-Repairの修正を実行した場合は、元に戻すことをお勧めします。そして、上記の変更を行ってbootx64.efiを使用します。ファイルを元に戻し、ファイル名を元の名前に変更するには、Boot-Repairの[Restore EFI backups]オプションをオンにするだけです。
手動またはBoot-Repairを使用した名前変更は、Windowsの更新後にWindowsファイルを復元するため、やり直す必要があります。
III。Windows BCDを編集します。Boot-Repairの名前変更に代わるものの1つで、シムにWindows名を付けます。一部のシステムは、Windowsをデフォルトとしてリセットし続けるシステムの場合、Windows内からgrub/shimを登録する方が適切に動作します。
Windows 8.1 Ubuntu 13.10デュアルブートの起動時にGRUBが表示されない
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
https://coderwall.com/p/vfyqkg
IV。DescriptionをWindowsにする必要がある場合は、UEFIの説明を変更します。これは、UbuntuだけでWindowsがまったくインストールされていない場合にのみ有効です。
Sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\ubuntu\shimx64.efi"
復元または新しいWindows UEFIエントリ-sda2の場合、デフォルトのsda1が-p 2を追加すると想定します(man efibootmgr -d drive&-p partition optionsを参照):
Sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
Sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1
V。別の回避策と思われるrEFIndをインストールし、ナイスブートアイコンがあります。
http://www.rodsbooks.com/refind/index.html
http://www.rodsbooks.com/refind/secureboot.html
Ubuntuに簡単にインストールできるPPAが利用可能
これは私のために働いた。 UEFIを搭載したToshibaラップトップを使用しました。
UEFIモードでUbuntuをインストールします。ハードドライブの/ boot、/、およびスワップスペースを必ず指定してください。
Windows 10に移動します。管理コマンドプロンプトを開き、手順3に従います。
リブート。ブートメニューが表示されます。
上記の回答 は友人のHPパビリオンでは機能しませんでしたが、適切な回避策が見つかりました。 HPのファームウェアは、ブートのたびにBootOrder
を常に上書きし、最初にWindowsを設定するようですが、BootNext
を尊重しています。そこで、ブートごとにBootNext
を設定するスタートアップスクリプトを作成しました。
走る
efibootmgr
BootCurrent
の数値コードを検索します。私の友人の場合、これは0003
でした。
/etc/systemd/system/boot-linux-next.service
:
[Unit]
Description=Boot Linux next
[Service]
Type=oneshot
# Replace '3' in the next line with the appropriate code.
ExecStart=efibootmgr --bootnext 3
[Install]
WantedBy=multi-user.target
走る
systemctl enable --now boot-linux-next.service
これは、他の何かをブートした場合、次回ブート時にLinuxを手動で選択する必要があることを意味します。
同じ問題を抱えているエイサーがいます。私の解決策は、シャットダウンではなく、ウィンドウを「再起動」することです(これは実際には休止状態です)。
再起動することで(更新がトリガーされる場合があります)、システムがシャットダウンし、BIOSからブートを選択できます。再起動する前にキャッチする必要があります。
私はめったにウィンドウを使用しないので、この方法でブートしてもまったく気になりません。もちろん、Windowsが更新されない限り。