Linux

UEFI 無法在沒有 nvram 條目的情況下在外部 USB 上引導 Debian 安裝

  • September 22, 2018

我已將 Debian Stretch 安裝到一個外部 USB 驅動器上,我計劃將其用作可在多台電腦上使用的攜帶式安裝,因此我需要能夠直接從 USB 引導它,而無需在 UEFI 中創建 nvram 條目。問題是,UEFI 沒有將驅動器視為可引導驅動器(它沒有出現在引導菜單或引導設置中)。

我以專家模式執行 Debian 安裝程序並選擇將 grub 安裝到備用位置,我已通過 nvram 啟動系統並嘗試使用手動安裝 grub

grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable /dev/sde 

我已經安裝了 refind 並使用--usedefault. 我已經確認它/boot/efi/EFI/BOOT/BOOTX64.efi存在,但 UEFI 仍然沒有將 USB 驅動器列為我嘗試過的兩台不同機器上的引導選項。

通過引導nvram工作正常,但我需要能夠直接從 USB 引導而不依賴nvram主機板上的條目。

有誰知道可能出了什麼問題?這是輸出fdisk -l

Disk /dev/sde: 59.8 GiB, 64160400896 bytes, 125313283 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 831C76FD-DE61-4D79-93F5-0DA1C5EE5978

Device       Start       End   Sectors  Size Type
/dev/sde1     2048   1050623   1048576  512M EFI System
/dev/sde2  1050624   1550335    499712  244M Linux filesystem
/dev/sde3  1550336 125313023 123762688   59G Linux filesystem

並分開:

(parted) print                                                            
Model: Samsung Flash Drive (scsi)
Disk /dev/sde: 64.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
1      1049kB  538MB   537MB   fat32              boot, esp
2      538MB   794MB   256MB   ext2
3      794MB   64.2GB  63.4GB

/dev/sde1是 ESP,fat32 並/boot/efi使用esp, boot標誌安裝在。/dev/sde2isext2並安裝在/boot, 和/dev/sde3是一個帶有rootswapLV 的 luks 分區。

我能夠解決這個問題,但我真的不明白為什麼我所做的工作。我最終grub-install再次執行而沒有通過--efi-directoryand --boot-directory(所以命令最終是grub-install --removable --verbose)。然後我刪除了 nvram 條目並重新啟動了一次,並且沒有檢測到驅動器,但是在再次重新啟動後,它出現在啟動列表中並且可以啟動。

我在另一台電腦上經歷了相同的過程(刪除了現有的 nvram 條目並重新啟動),並且在以前沒有檢測到驅動器時也在那裡檢測到驅動器。看起來可能需要清除 nvram 條目才能讓 UEFI 掃描更多,但老實說我不確定。

nvram 條目包括 grubs 系統文件的根分區所在的位置。如果您直接啟動設備,那麼 UEFI 會告訴 grub 根目錄與 EFI 系統相同,通常這是 Linux 系統分區 /boot 目錄。這裡最簡單的解決方案是將 grub 安裝到 efi 系統分區。

grub-install –efi-directory=/boot/efi –boot-directory=/boot/efi –removable /dev/sde

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