修正在 UEFI 上安裝 Debian 後出現的「找不到可啟動裝置」錯誤

如果在 Debian 安裝完成後電腦立即顯示“未找到可啟動設備”,則檔案可能仍然完好無損。韌體可能以錯誤的模式啟動,EFI 系統分割區 (ESP) 可能未掛載到 GRUB 預期的位置,或者韌體可能遺失或降低了 Debian UEFI 啟動項目的優先權。在變更分割區之前,請依序檢查這些步驟。

本指南以典型的 64 位元 x86 PC 為例,使用 UEFI 和 Debian 系統,並搭載 GRUB 引導開機。文中提及的磁碟或分割區名稱僅為範例,請使用您自己的裝置進行識別lsblk -f。請勿先格式化 ESP 分割區或重新安裝 Debian 系統。

1. 確認計算機正在嘗試以 UEFI 模式啟動

UEFI 韌體從 FAT 格式的 ESP 分割區讀取 EFI 程序,並可使用已儲存的 NVRAM 啟動項目來尋找該程序。傳統 BIOS/CSM 啟動則遵循不同的路徑。因此,以傳統模式啟動的安裝程式 USB 可能會設定與已安裝機器的 UEFI 設定不符的啟動路徑。

一個通用的 UEFI 啟動選單,其中 Debian 已在 UEFI USB 安裝程式和內部磁碟上選取。
使用一次性啟動選單測試 Debian 項目,並在啟動救援媒體時選擇明確標記為 UEFI 的安裝程式項目。

啟動時打開一次性啟動選單或韌體設定。首先選擇名為Debian 的啟動項目(如果存在)。如果啟動成功,請開啟韌體設置,並將 Debian 的啟動順序調整到內部磁碟或其他作業系統之上。選單名稱因製造商而異,因此請查閱電腦製造商的說明書,以取得正確的啟動鍵和選單標籤。

如果需要恢復介質,請選擇以「UEFI」開頭的 USB 選項。 Debian Live 或安裝程式恢復 shell 啟動後,檢查其模式:

test -d /sys/firmware/efi && echo "Booted in UEFI mode" || echo "Booted in Legacy mode"

如果結果顯示「Legacy」(傳統模式),請重新啟動並選擇 UEFI USB 啟動項目。某些工具efibootmgr無法在傳統啟動環境下管理韌體變數。如果沒有出現 UEFI USB 選項,請檢查韌體中是否已啟用 UEFI 啟動;除非您了解變更安全啟動或儲存控制器設定對現有系統的影響,否則請勿變更這些設定。

2. 識別已安裝的系統及其 EFI 系統分割區

在透過 UEFI 啟動的即時環境中,檢查設備和檔案系統:

lsblk -f

尋找 Debian 根檔案系統(通常為 `/etc/desi/`ext4或`/etc/desi/`),btrfs以及一個 GPT 類型為「EFI System」的小型 FAT32 分割區。 ESP 分割區可能與 Windows 共用,這是正常現象。以下範例標籤/dev/sda1僅為/dev/sda2佔位符,並非預設值。 NVMe 磁碟機通常使用類似 `/etc/desi/` 的名稱/dev/nvme0n1p1。

Debian 即時桌面,終端機旁顯示分割區列表,其中包含一個 FAT32 EFI 系統分割區和獨立的 Linux 分割區。
使用 lsblk 提供的檔案系統和分割資訊來識別現有的 ESP 和 Debian 根目錄;不要依賴範例中的裝置名稱。

如果只需要檢查根分割區,請先以唯讀方式掛載;如果需要修復,請在找到正確的分割區後正常掛載。如果您的系統使用了單獨的/boot分割區,請在掛載 ESP 分割區之前先掛載該分割區/mnt/boot。不要因為清單中沒有明確說明就建立或格式化替換的 ESP 分割區。

/dev/sda2對於啟用了 root 權限和 ESP 權限的常見佈局/dev/sda1,修正掛載如下所示:

mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
cat /mnt/etc/fstab

將報告的 ESP UUID與中的lsblk -f條目進行比較。如果不同,請停止操作並確認哪個分割區屬於此 Debian 安裝。某些系統將 ESP 掛載到或使用不同的配置;請重現已安裝系統的佈局,而不是盲目使用範例掛載點。/boot/efi/mnt/etc/fstab/boot

3. 從 UEFI 救援環境修復 GRUB

將根目錄、任何單獨的分割區/boot以及 ESP 分割區掛載到其預定位置後/mnt,綁定運行系統目錄並進入安裝程序:

for i in /dev /dev/pts /proc /sys /run; do mount --bind "$i" "/mnt$i"; done
chroot /mnt

在 chroot 環境中,確認/boot/efiESP 分割區是否正確,以及已安裝的系統是否是您要修復的系統。對於停用安全啟動的標準 Debian amd64 GRUB 安裝,請重新安裝 EFI 載入程式並重建選單:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian
update-grub
Debian 救援終端機顯示範例掛載和 GRUB EFI 修復指令,但沒有顯示成功訊息。
只有在掛載正確的 Debian 根分割區和 ESP 分割區後才能執行修復指令;顯示的分割區名稱是範例,並非經過測試的機器。

上述數值--target適用於 amd64 PC。 Debian ARM64 系統使用不同的目標。 GRUB 的官方手冊頁將--efi-directoryESP 根目錄定義為 ESP,並記錄了 UEFI 安全啟動選項。如果啟用了安全啟動,請繼續使用 Debian 的簽章啟動鏈:不要強制將未簽署的載入程式安裝到 ESP 上。 Debian 的簽章 GRUB 和 shim 軟體包提供了相應的路徑;請遵循適用於您的版本和架構的 Debian 安全啟動文件。

如果grub-install報告指出 EFI 變數不可用,請再次檢查 Live USB 是否以 UEFI 模式啟動,以及該模式/sys/firmware/efi是否存在。如果韌體變數仍然不可用,您可能可以將載入程式放置在 ESP 分割區上,但無法從目前工作階段註冊其 NVRAM 條目;請使用韌體的「從 EFI 檔案啟動」選項,或從正確啟動的 UEFI 環境重複修復操作。請勿將警告視為韌體條目已建立的確認訊息。

4. 檢查 Debian 韌體條目和啟動順序

退出 chroot 環境,然後檢查 UEFI 啟動變數:

exit
efibootmgr -v

尋找 Debian 啟動項目並做好記錄BootOrder。如果 Debian 已列出,但其他裝置排在前面,請使用韌體設定將 Debian 設定為第一啟動項目。這通常比在命令中重寫完整的啟動順序更簡單、更安全。手冊efibootmgr頁詳細說明了啟動項目的命名方式以及韌體如何BootOrder確定哪個啟動項目會優先啟動。

通用韌體啟動順序螢幕,其中 Debian 系統高亮顯示在 USB、內部磁碟和網路啟動選項之上。
修復後,檢查 Debian 條目是否存在,以及是否出現在韌體啟動順序中的其他啟動選項之前。

如果 Debian 條目缺失但 ESP 包含EFI/debian,請使用韌體的檔案瀏覽器(如有)選擇 Debian 的 EFI 載入程式。啟用安全啟動後,通常是已簽署的 shim 檔案(例如EFI/debian/shimx64.efiamd64 架構上的檔案);停用安全啟動後,GRUB EFI 檔案可能可用。特定檔案名稱因架構和軟體包狀態而異。如果韌體不提供檔案瀏覽器,請在允許 NVRAM 存取權限的情況下重新執行 GRUB 修復。

某些韌體更新或設定重設會刪除 Linux 條目,而某些韌體實作無法保留新建立的條目。 Debian 的 UEFI 文件也描述了一個備用的可移動媒體路徑,但這應該是一種有意為之的兼容性變通方案,而不是在未檢查的情況下將 EFI 文件複製到現有文件上的理由。

5. 將症狀與可能的解決方法相匹配

  • Debian 從一次性選單開始:修復韌體中的啟動順序。
  • UEFI USB 可以運作,但 Debian 系統缺失:請檢查 ESP 掛載情況並重新安裝正確的 EFI 載入程式。
  • efibootmgr無法存取變數:在 UEFI 模式下重新啟動救援媒體。
  • Debian 出現但返回韌體:檢查安全啟動相容性、載入程式路徑以及 ESP 是否屬於此安裝。
  • 存在多個 Linux 安裝:在運行之前,請確定哪個 root 和 ESP 對屬於同一組grub-install。

Debian 13 (Trixie) 引入了一個可選的 systemd-boot,並提供了 Debian 官方文件中記錄的 shim 設定。如果您刻意安裝了該引導管理器而不是 GRUB,請使用對應的 systemd-boot 復原指南;執行 GRUB 修復指令無法修復 systemd-boot 的條目。對於典型的安裝程式選擇的 Debian GRUB 系統,上述檢查仍然適用。

6. 重啟並驗證

退出 chroot 環境,以相反順序卸載檔案系統,移除救援 USB 隨身碟,然後重新啟動。如果卸載過程中報告目標正忙,請關閉使用該掛載點的 shell 並重試,而不是在檔案系統處於活動狀態時強制關機。確認韌體在未連接 USB 隨身碟的情況下可以啟動 Debian 系統。然後檢查內核和桌面是否正常加載,以及第二次重啟是否仍然有效。如果再次失敗,請記下完整的韌體錯誤訊息、`distance-config` 命令的輸出lsblk -f以及 `distance-config` 命令是否efibootmgr -v顯示 Debian 條目;這些細節有助於區分條目缺失和載入器或檔案系統問題。

來源

留下評論

修正在 UEFI 上安裝 Debian 後出現的「找不到可啟動裝置」錯誤

修正在 UEFI 上安裝 Debian 後出現的「找不到可啟動裝置」錯誤

透過檢查啟動模式、EFI 系統分割區、GRUB 檔案和韌體啟動順序來修復 Debian 的 UEFI 啟動錯誤,而無需先重新安裝 Debian。

解決 Windows 11 更新錯誤 0x800f0922

解決 Windows 11 更新錯誤 0x800f0922

遇到 Windows 11 更新錯誤 0x800f0922?了解已驗證的有效解決方法,快速解決此常見問題。逐步指南,幫助您輕鬆完成更新,告別煩惱。

如何修復 Windows 11 系統還原錯誤 0x80070005

如何修復 Windows 11 系統還原錯誤 0x80070005

遇到 Windows 11 系統還原錯誤 0x80070005 ?我們提供經過驗證的分步解決方案,幫助您輕鬆修復訪問被拒絕問題,並順利恢復系統。無需任何技術知識!

解決 Windows 11 PowerPoint 圖形驅動程式錯誤

解決 Windows 11 PowerPoint 圖形驅動程式錯誤

還在為 Windows 11 系統中 PowerPoint 圖形驅動程式錯誤而煩惱嗎?了解這些經過驗證的故障排除步驟,快速輕鬆地解決崩潰、黑屏和效能問題。立即恢復流暢的簡報體驗。

如何使用 Windows 11 字元對映表工具

如何使用 Windows 11 字元對映表工具

了解如何輕鬆使用 Windows 11 字元對應工具在文件中插入特殊字元、表情符號和符號。提供逐步指南,包含適合初學者和專業人士的技巧。

解決 Windows 11 Windows 郵件應用程式無法同步的問題

解決 Windows 11 Windows 郵件應用程式無法同步的問題

Windows 11 郵件應用程式無法同步?我們提供經過驗證的逐步修復方案,讓您輕鬆恢復郵件收發的流暢性。快速解決常見同步錯誤,告別技術難題。

如何修復 Windows 11 找不到可啟動裝置的問題

如何修復 Windows 11 找不到可啟動裝置的問題

還在為 Windows 11 系統上令人抓狂的「找不到可啟動裝置」錯誤而苦惱嗎?我們提供經過驗證的逐步修復方案,幫助您輕鬆恢復電腦的正常啟動。從 BIOS 調整到硬碟修復,我們都能幫您解決。

Windows 11 OBS Studio 黑屏故障排除

Windows 11 OBS Studio 黑屏故障排除

在 Windows 11 系統上使用 OBS Studio 時遇到黑畫面問題?了解經實踐驗證的解決方法,幫助您流暢地進行直播和錄製。逐步指南,快速輕鬆地解決黑屏問題。

如何修復 Windows 11 虛擬記憶體過低錯誤

如何修復 Windows 11 虛擬記憶體過低錯誤

遇到 Windows 11 虛擬記憶體不足錯誤?了解經過驗證的逐步修復方法,以提升您的系統效能。

解決 Windows 11 筆記型電腦電池閾值無法儲存的問題

解決 Windows 11 筆記型電腦電池閾值無法儲存的問題

還在為 Windows 11 筆記型電腦電池電量閾值無法保存而煩惱嗎?本文提供經實踐驗證的有效解決方案,幫助您輕鬆解決這個棘手問題,優化電池續航力。內含詳細步驟指南。