Навсегда решить "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
Другие вопросы по тегам