我有一个 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,如何在没有 grub 配置提示的情况下执行 apt-get -y dist-upgrade?) 建议。我想解决这个有关 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/。
答案1
如果我是你,我会完全重新安装 grub,检查磁盘的 UUID。但你应该在 Linux 实例之外执行此操作,即在 USB 密钥上运行实时发行版,然后在实时文件系统上安装分区,然后重新安装 GRUB。
答案2
我在运行 Ubuntu 20.04.1 的系统上收到了同样的错误消息。在我的情况下,/boot/efi 位于其自己的分区上。以下步骤解决了该问题:
前 apt-get update
卸载 /boot/efi。
umount /boot/efi
apt-get upgrade
mount /boot/efi