Постоянно решите проблему “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, Как выполнить apt-get -y dist-upgrade без запроса конфигурации grub?). Я хочу решить этот конкретный вопрос касательно обновления 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/.

Если бы я был на вашем месте, я бы полностью переустановил 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

Ответ или решение

Для решения проблемы с ошибкой GRUB "был ранее установлен на диск, который больше не присутствует" в вашей виртуальной машине Ubuntu 16.04, следует выполнить несколько шагов, которые помогут вам правильно перенастроить GRUB и устранить эту ошибку.

Шаг 1: Проверка UUID и конфигурации дисков

Прежде всего, необходимо убедиться, что UUID вашего диска совпадает с тем, что используется в конфигурации GRUB. Выполните следующие команды в терминале, чтобы просмотреть UUID вашего корневого устройства:

lsblk -o NAME,UUID

Сравните полученный UUID с тем, который указан в конфигурации GRUB. Если они не совпадают, вам нужно будет обновить конфигурацию GRUB.

Шаг 2: Переустановка GRUB

Следующим шагом будет переустановка GRUB. Для этого выполните следующие действия. Это важно делать из системы, работающей на Live USB, чтобы избежать проблем с монтированием текущих разделов.

  1. Запустите Live USB с Ubuntu и откройте терминал.

  2. Смонтируйте ваш корневой раздел:

    sudo mount /dev/sdXn /mnt

    Замените /dev/sdXn на правильный путь к вашему корневому разделу (например, /dev/sda1).

  3. Если у вас есть отдельный раздел для /boot/efi, также смонтируйте его:

    sudo mount /dev/sdXn /mnt/boot/efi
  4. Перейдите в среду вашей установленной системы:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
  5. Войдите в систему с chroot:

    sudo chroot /mnt
  6. Теперь переустановите GRUB:

    grub-install /dev/sdX
    update-grub

    Замените /dev/sdX на ваш жесткий диск, но не указывайте номер раздела (например, /dev/sda).

  7. Выйдите из chroot и размонтируйте все:

    exit
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    sudo umount /mnt
  8. Перезагрузите систему, извлеките Live USB и проверьте, исчезла ли ошибка.

Шаг 3: Проверка конфигурации пакетов GRUB

Если ошибка все еще возникает после переустановки GRUB, выполните следующие команды, чтобы перезагрузить конфигурацию debconf для вашего GRUB-пакета:

sudo dpkg-reconfigure grub-pc

В диалоговом окне убедитесь, что вы выбираете правильный диск для установки GRUB и никаких старых конфигураций не осталось.

Шаг 4: Удаление старых конфигураций

Если проблема не решена, возможно, стоит удалить и заново установить GRUB:

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

После установки выполните предыдущие шаги по установке GRUB и обновлению конфигурации.

Шаг 5: Устранение проблем с виртуальными машинами

В случае использования виртуальных машин, убедитесь, что настройки виртуальной машины (например, параметры SATA или IDE) совпадают с тем, что требуется для вашего установочного диска. Также проверьте, нет ли конфликтов с другими виртуальными дисками.

Заключение

Следуя вышеописанным шагам, вы сможете избавиться от проблемы с ошибкой GRUB "был ранее установлен на диск, который больше не присутствует" и обеспечить корректное функционирование вашего загрузчика. Эти действия гарантируют, что система будет загружаться без проблем при каждом обновлении пакетов.

Оцените материал
Добавить комментарий

Капча загружается...