14.04 升級觸發grub-pc失敗

14.04 升級觸發grub-pc失敗

我的問題始於從 Ubuntu 12.04 LTS 升級到 14.02 LTS。作為其中的一部分,我收到了幾條關於無法刪除舊核心的錯誤訊息。

第一次啟動到 14.02 時,我透過執行檢查一切正常sudo apt-get autoremove,出現了相同的錯誤。

按照線上指南,我運行了以下命令:

sudo apt-get purge grub-common
sudo apt-get install grub-pc

第一次操作成功,從我的電腦中刪除了 grub。第二次操作失敗,原因如下:

Creating config file /etc/default/grub with new version
Installing for i386-pc platform.
Installation finished. No error reported.
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.13.0-54-generic
Found initrd image: /boot/initrd.img-3.13.0-54-generic
Found linux image: /boot/vmlinuz-3.13.0-44-generic
Found initrd image: /boot/initrd.img-3.13.0-44-generic
Found linux image: /boot/vmlinuz-3.13.0-40-generic
Found initrd image: /boot/initrd.img-3.13.0-40-generic
Adding boot menu entry for EFI firmware configuration
cat: /video.lst: No such file or directory
/usr/sbin/grub-probe: error: failed to get canonical path of `'.
No path or device is specified.
Usage: grub-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub-probe --help' or 'grub-probe --usage' for more information.
dpkg: error processing package grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 64
Errors were encountered while processing:
 grub-pc
E: Sub-process /usr/bin/dpkg returned an error code (1)

我已經嘗試了許多修復方法,其中大部分都有記錄這裡。我在刪除之前創建了一個 LiveCD grub-common,因此我可以訪問我的舊分割區並可以mount進入chroot它。

但是當運行時update-grub出現相同的錯誤時,我也無法運行dpkg --configure -a而不發生這種情況。

我曾經boot-repair得到過啟動摘要對於我的機器,它是一個 2 HDD 設備,在第一個驅動器上具有雙啟動 ( /dev/sda)。打開Windows並且/dev/sda1我的Ubuntu分區(也啟動)打開/dev/sda2

請幫我解決這個問題,我保證我不會再碰我的 Ubuntu 安裝了。 :-)

答案1

“優雅地解決了”我的問題是使用以下方法:

sudo apt-get purge grub-pc grub-common
sudo rm -r /etc/grub.d/
sudo apt-get install grub-pc grub-common
sudo grub-install /dev/sda
sudo update-grub

刪除該/etc/grub.d/目錄似乎已經刪除了12.04我潛伏的所有文件,從而可以14.04繼續安裝 grub!

儘管我當然建議您對要刪除的任何內容進行備份。

答案2

這些 grub 錯誤已經持續了很多年,甚至現在在 20.04 上......只需運行這些

sudo apt-get update
sudo apt-get --fix-broken install -y
sudo apt-get -f install -y 
sudo  apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -yq
sudo apt-get autoremove -yq
sudo apt-get autoclean -y

如果上面的輸出顯示一些耀斑,那麼只需再次重新運行以上所有內容,您就可以開始了

答案3

使用Boot-Repair 最簡單的方法是建立一個包含工具的磁碟(例如Boot-Repair-Disk,自動啟動Boot-Repair 的磁碟),並在其上啟動。

我個人比較喜歡使用啟動修復碟 ISO

相關內容