EFIパーティションを台無しにしてコンピュータを起動すると、ディスクが消去されたように起動オプションなしでBIOSインターフェイスが開きます。しかし、ライブUSB(正しく認識して起動する)とgrubコマンドラインを使用してデフォルトのオペレーティングシステム(Ubuntu)を起動できました。しかし、この問題を解決する方法がわかりません。 grub-install /dev/sdaを実行してみましたが、何も変更されませんでした。
EFIパーティションは完全に大丈夫に見えます。正しいフラグ(esp、boot)があり、その中に正しいファイルがすべてあります。
tree /boot/efi/
└── EFI
├── Boot
│ └── bootx64.efi
├── Microsoft
│ ├── Boot
│ .....
└── ubuntu
├── fbx64.efi
├── fw
├── fwupx64.efi
├── grub.cfg
├── grubx64.efi
├── mmx64.efi
└── shimx64.efi
何を確認する必要がありますか?私は何を見逃していますか?
これは私のパーティションテーブルです。
parted /dev/sda print
Model: ATA Crucial_CT525MX3 (scsi)
Disk /dev/sda: 525GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1612MB 1611MB fat32 EFI System Partition boot, esp
2 1612MB 87.9GB 86.3GB ext4 Ubuntu
3 87.9GB 281GB 193GB ext4 Home
5 290GB 290GB 16.8MB Microsoft reserved partition msftres
6 290GB 405GB 115GB ntfs Basic data partition msftdata
8 405GB 500GB 94.4GB ntfs Data msftdata
9 500GB 525GB 25.3GB ext4 Backup OS
答え1
認識を開始するには、Asus UEFI BIOSの/EFI/my-custom-label/grubx64.efi
名前を変更する必要がありました。/EFI/boot/bootx64.efi
- ソース1:Arch Linux ISOでSDカードをフラッシュしましたが、ASUS UEFIはそれを認識しました。 EFIパーティションを確認しましたが、デフォルトのArchブートローダは
/EFI/boot/bootx64.efi
。 - ソース2:https://forum.manjaro.org/t/bios-does-not-recognize-efi-system-as-boot-partition/24025/19
この問題は、Asus Maximus VII Impact(Z97チップセット)で発生します。私の友人もZ87ベースのASUSマザーボードで同様の問題に直面しました。
答え2
この問題を引き起こす可能性がある別の問題がありますが、最近この問題が発生しました。
この問題を検出するには、Linuxでライブで起動し、gdisk /dev/sd[whatever-your-disk-is](通常は/dev/sda、/dev/sdb、または/dev/sdc)を実行してください。
pコマンドを実行して、正しいパーティションのリストが表示されていることを確認してください(そうしないと、そのディスクではない可能性があります)。
次に、v コマンドを入力します。次のように応答できます。
Warning: The 0xEE protective partition in the MBR is marked as active. This is
technically a violation of the GPT specification, and can cause some EFIs to
ignore the disk, but it is required to boot from a GPT disk on some BIOS-based
computers. You can clear this flag by creating a fresh protective MBR using
the 'n' option on the experts' menu.
これが応答の場合は、e、n、wコマンドを使用してください。その後、再起動するとEFIが復元される可能性があります!
答え3
私の考えでは、EFIシステム変数が正しいブートローダを指すように設定されていないようです。確認したいプログラムefibootmgr
は、NVRAMに保存されているすべての起動エントリを表示します。
理論的には、grub-install
この問題を処理する必要がありますが、正しいオプションを渡すことはできません。次のコマンド例が機能するはずです。
grub-install --target=x86_64-efi --efi-directory=ESP_MOUNT_PATH --bootloader-id=grub
ESP_MOUNT_PATH
EFIディレクトリにパスを変更します。
それでも問題が解決しない場合は、efibootmgr
自分で試してみてください。
efibootmgr --create --disk /dev/sda --part 1 --loader /EFI/ubuntu/grubx64.efi --label "GRUB"
一部のシステムでは/EFI/ubuntu/shimx64.efi
。
答え4
また、EFIを起動したときにgrubがすべてのパーティションを表示しないようにし、すべてのパーティションを表示できるようにパラメータを追加しました--modules="part_gpt part_msdos"
。grub-install
ls
ls -l