我的問題始於從 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