Grub2

為什麼 grub 不能通過 UUID 找到磁碟?

  • August 30, 2020

我正在嘗試解決我無法啟動到 Windows 的原因。

相關條目grub.cfg是:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda3)' --class windows --class os $menuentry_id_option 'osprober-efi-BC6E-0415' {
       insmod part_gpt
       insmod fat
       set root='hd0,gpt3'
       if [ x$feature_platform_search_hint = xy ]; then
         search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  BC6E-0415
       else
         search --no-floppy --fs-uuid --set=root BC6E-0415
       fi
       chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

盡我所能,這裡的一切都是正確的: /dev/disk/by-uuid/BC6E-0415確實是 Windows 啟動管理器分區。

但是,我對引用感到有些困惑,(hd0,gpt3)因為這是完全不同的物理磁碟上的完全不同的分區。hd0是安裝 grub 的磁碟,以防萬一。

我嘗試啟動 Windows 時遇到的實際錯誤是:

error: no such device: BC6E-0415
error: file `/efi/Microsoft/Boot/bootmgfw.efi' not found

我確實注意到在 grub 中,如果我進入 grub 命令提示符並執行ls,我看到列出的唯一硬碟是hd0我的系統實際上有 4 個硬碟。正如我上面提到的,hd0是安裝了 grub 和我的 Linux 的硬碟。

所以我想我的問題可能是:為什麼當我啟動到 grub 時,除了一個 grub 處於打開狀態之外,grub 看不到任何硬碟?

如果我啟動到 Linux(Ubuntu 20.04.1),我可以看到我所有的硬碟都很好。

Update1:​​引導修復輸出

正如@oldfred 建議的那樣,輸出在boot-repair這裡:

https://paste.ubuntu.com/p/MVKQGf76ZT/

這裡的贈品是:

我確實注意到在 grub 中,如果我進入 grub 命令提示符並執行 ls,我看到列出的唯一硬碟是 hd0,而我的系統實際上有 4 個硬碟。正如我上面提到的,hd0 是安裝了 grub 和我的 Linux 的硬碟。

奇妙的是。過去的@oldfred 幫我解決了這個問題 :)

正如該執行緒中所討論的,問題在於我的 UEFI BIOS 中的“快速啟動”設置被設置為僅初始化啟動設備。因此,grub 無法使用其他設備(例如 /dev/sda3)。

通過將 Fast Boot 設置更改為“僅硬碟驅動器”,所有硬碟驅動器都可用於 grub。

ls我可以通過在 grub 中執行來查看所有硬碟驅動器,現在可以啟動到 Windows。

引用自:https://unix.stackexchange.com/questions/606959