Моя проблема началась с обновления с 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