我該如何修復 grub-efi 上的此錯誤?

我該如何修復 grub-efi 上的此錯誤?

我有 Windows 10 和 Ubuntu 16.04 的雙啟動系統設置,當打開我的電腦時,grub 正確顯示,Windows 和 Ubuntu 都能被識別,沒有任何問題。每次有更新或我必須安裝某些東西時,我都會收到此錯誤:

Errors were encountered while processing:
 grub-efi-amd64-signed
 shim-signed
Setting up shim-signed (1.12+0.8-0ubuntu2) ...
Installing for x86_64-efi platform.
grub-install: errore: cannot find EFI directory.
dpkg: error processing package shim-signed (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up grub-efi-amd64-signed (1.66+2.02~beta2-36ubuntu3) ...
grub-install: errore: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
dpkg: error processing package grub-efi-amd64-signed (--configure):
 subprocess installed post-installation script returned error exit status 1

我可以忽略它還是可以做些什麼來修復它?

答案1

嘗試

sudo apt-get purge grub\*
sudo apt-get install grub-efi
sudo apt-get autoremove
sudo update-grub

修理。

答案2

如果有人正在考慮設定多重啟動 USB 磁碟來處理 mbr 和 grub:

如果您目前的系統是 EFI,那麼您將錯過以下內容:

sudo apt install grub-pc-bin

如果您目前的系統是 MBR,那麼您將缺少以下內容:

sudo apt install grub-efi-amd64-bin
# You may also need grub-efi-amd64-signed

答案3

的引用/usr/lib/grub/i386-pc/modinfo.sh指示 BIOS 模式 GRUB 安裝 — 具體而言,i386-pc該路徑的部分標識 GRUB 的 BIOS 模式版本。 (對於 AMD64/x86-64 上的 EFI 模式安裝,等效路徑為/boot/grub/x86_64-efi/modinfo.sh。)OTOH,軟體包名稱清楚地表明了 EFI 模式 GRUB 安裝。兩者不應該混為一談,但不知何故,你的情況發生了這種情況。也許您有以前 BIOS 模式安裝留下的 GRUB 配置文件,在這種情況下,跟踪它並更新它應該可以解決問題。也許啟動修復可以自動解決問題。但請注意,修復嘗試可能會導致系統無法啟動,使情況變得更糟。因此,我建議謹慎行事!

如果您無法輕鬆修復它,您可以考慮用其他東西替換 GRUB —— 有幾種替代方案可用,例如我的這個網頁。GRUB 2 是最多一旦啟動載入程式像您的那樣“脫軌”,就很難對其進行調整,這就是為什麼更換它可能是一個不錯的選擇。我自己的rEFInd 啟動管理器可能很容易安裝,但需要注意的是,Ubuntu 16.04 中存在一個錯誤,該錯誤會使在安全啟動處於活動狀態下從 PPA 進行的安裝變得複雜。 (文件中對此進行了介紹。)另請注意,僅安裝新軟體包並不能解決您的問題。你需要解除安裝GRUB 軟體包導致您難以做到這一點。我專門討論了這個主題這裡,因為它並不像你想像的那麼容易。 (如果您刪除 GRUB,Ubuntu 會一直嘗試重新安裝它。)

答案4

嘗試:

sudo apt-get -f install

第 1 步:啟動 shim 卸載

然後:此終端命令將刪除 shim 簽署的存檔

步驟2:卸載墊片

之後:成功刪除 shim 存檔

步驟 3:拆下墊片

最後:如果一切順利的話,至少 Ubuntu 軟體更新應該再次開始工作(就像我的情況一樣)

第四步:系統更新提示

相關內容