Навсегда решить "GRUB был ранее установлен на диск, которого больше нет"
У меня есть виртуальная машина Ubuntu 16.04 (локальная, без облака), которая была создана как клон другого компьютера. Каждый раз, когда пакеты GRUB обновляются с помощью apt upgrade
, Я получаю следующее сообщение:1
Загрузчик GRUB ранее был установлен на диск, которого больше нет, или по какой-то причине уникальный идентификатор которого изменился. Важно убедиться, что установленный образ ядра GRUB синхронизирован с модулями GRUB и grub.cfg. Пожалуйста, проверьте еще раз, чтобы убедиться, что GRUB записан на соответствующие загрузочные устройства.
и затем он просит выбрать устройство для установки.
Я могу успешно завершить обновление GRUB, но сообщение появляется снова во время следующего обновления GRUB, хотя диск не изменяется между обновлениями.
Как я могу "сбросить" конфигурацию GRUB до текущей, чтобы она больше не запрашивалась?
Рассмотрены похожие вопросы
Я не пытаюсь заставить замолчать сообщения об обновлении как похожие вопросы ( https://serverfault.com/questions/662624/how-to-avoid-grub-errors-after-runing-apt-get-upgrade-ubunut, Как мне принять участие? -get -y dist-upgrade без приглашения grub config?) предложить. Я хочу преодолеть этот конкретный вопрос, касающийся обновления GRUB.
Команды из наиболее часто задаваемого ответа на аналогичный вопрос о ServerFault не могут быть применены в моем случае, у меня нет упомянутых файлов /boot/grub/menu.lst
а также update-grub-legacy-ec2
на моей машине.
Моя конфигурация
Я попытался запустить команды, предложенные oldfred:
$ sudo debconf-show grub-pc
grub-pc/install_devices_failed_upgrade: true
grub-pc/mixed_legacy_and_grub2: true
grub-pc/install_devices_failed: false
grub-pc/hidden_timeout: false
grub2/update_nvram: true
grub-pc/timeout: 5
grub-pc/install_devices_empty: false
* grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-VBOX_HARDDISK_VBd7a628c1-923a4727
grub2/kfreebsd_cmdline:
* grub2/linux_cmdline: consoleblank=0
grub2/kfreebsd_cmdline_default: quiet splash
grub-pc/disk_description:
grub-pc/postrm_purge_boot_grub: false
grub-pc/partition_description:
* grub-pc/install_devices: /dev/disk/by-id/ata-VBOX_HARDDISK_VBd7a628c1-923a4727
grub-pc/chainload_from_menu.lst: true
grub2/force_efi_extra_removable: false
grub-pc/kopt_extracted: false
* grub2/linux_cmdline_default:
grub2/device_map_regenerated:
похоже на совпадение
$ sudo lshw -C Disk | grep serial
serial: VBd7a628c1-923a4727
но grub-probe -t device /boot/grub
возвращает имя корневого устройства мастера клона. Я попробовал предложенную команду sudo dpkg-reconfigure grub-pc
но это не обновило вывод sudo grub-probe -t device /boot/grub
, Как это исправить?
1 Я получаю сообщение в локализованной версии, вставленная английская версия скопирована с https://samrueby.com/2014/09/02/updating-grub-in-ubuntu-amazon-ec2-instance/.
2 ответа
На вашем месте я бы полностью переустановил grub, проверив UUID дисков. Но вы должны сделать это ВНЕ своего экземпляра Linux, то есть запустить живой дистрибутив на USB-накопителе, а затем смонтировать ваши разделы в живой файловой системе, а ЗАТЕМ переустановить GRUB.
Посмотрите здесь: https://help.ubuntu.com/community/Grub2/Installing
Я получил такое же сообщение об ошибке в своей системе с Ubuntu 20.04.1. В моем случае /boot/efi находится в отдельном разделе. Следующая процедура решила проблему: до apt-get update
размонтировать /boot/efi.
umount /boot/efi
apt-get upgrade
mount /boot/efi