
雖然我已經弄清楚了如何一次性執行此操作,問題又出現了。所以問題仍然存在 - 為什麼每當我從 AAEON EMB-BT1 itx 板上的 SATA 連接埠拔下 SSD 時,它會拒絕啟動並給出此錯誤?我的作業系統是 Debian Linux,每次更換 SSD 時都無法重新安裝 grub-efi。
這些是我的分割區,EFI 系統從 2048 而不是 0 開始可能與此有關嗎?但這就是 Debian 分割區管理器配置它的方式。
顯然,Boot0001* 選項不起作用,當我從主機板上拔下 SSD 時,Boot0000* debian 條目會被擦除。我只是不明白為什麼或如何。
編輯:當我啟動時,還有一個 ACPI 總線錯誤
答案1
顯然,您的系統韌體會自動刪除任何引用不再可存取的磁碟的 UEFI NVRAM 開機條目。這有助於避免 UEFI NVRAM 變滿的可能性,但如果您經常交換啟動磁碟,這可能會很痛苦。不幸的是,您可能無法變更此韌體行為。
相反,您可以將 UEFI GRUB 引導程式的第二個副本安裝到可移動媒體/後備路徑在 EFI 系統分割區上。這應該有助於韌體自動檢測磁碟為可引導磁碟。
您可以透過以下方式執行此操作:
sudo grub-install --force-extra-removable /dev/sda
這將在 處產生引導程式的第二個副本/boot/efi/EFI/BOOT/BOOTx64.efi
,這是韌體在可移動媒體(在 x64 硬體架構上)上引導時或在已安裝作業系統的適用 UEFI NVRAM 引導條目遺失時查找的路徑。
如果您對所有系統 SSD 執行此操作,則可以最大限度地減少交換 SSD 所需的工作量。預設情況下,Windows 10 和 11 會自動將其 UEFI 啟動管理員的副本設定到此路徑,因此,如果您的啟動 SSD 之一包含 Windows,則無需為其執行任何特殊操作。
事實上,您的 EFI 系統分割區從區塊 #2048 開始是正常的 - 與大小僅為 64 位元組的舊 MBR 分割表不同,GPT 分割區表將佔用至少 33 512 位元組磁區,現代標準是設定出於資料對齊原因,將分割限制提高到1 MiB 的精確倍數- 這可以避免SSD 和一些內部使用更大磁碟區塊的SAN 的效能下降。
答案2
拔出正在使用的磁碟設備很可能會損壞磁碟上的資料。為了獲得最佳效果,請在拔下插頭之前卸載磁碟。
此外,SATA 僅部分支援熱拔插設備。如果設備位於具有實體導軌的熱插拔插槽中,則可能是安全的。但如果它只是連接了一條電纜而沒有任何導向,那麼每次在通電時拔出或插入驅動器時,都有可能損壞驅動器電子設備。
此外,如果您在 BIOS 初始化後插入驅動器,它可能不會偵測到該驅動器可啟動,並且不會將其包含在啟動清單中;重新啟動或重新啟動電源可能會解決此問題。另外,如果您使用 EFI 模式,安裝開機載入程式時,BIOS EFI 開機清單中會新增一個項目,如果 BIOS 初始化時磁碟機不在線,則可能會刪除與磁碟機關聯的開機條目。
如果磁碟機未啟動,則可能有以下選項可用:
- 某些 BIOS 允許手動新增 EFI 條目
- 某些 BIOS 可讓您透過產生的開機選單為不在清單中的磁碟機手動選擇偵測到的 efi 項目
- 從作業系統中,efibootmgr 工具可以向 BIOS 新增條目
- 像 rEFInd 這樣的工具可以掃描所有磁碟以查找可啟動的 EFI 執行檔