我在 EC2 上运行 ubuntu 14.04。
运行后apt-get upgrade
,屏幕提示我重新安装 GRUB 引导加载程序
GRUB 引导加载程序之前安装在不再存在的磁盘上,或者由于某种原因其唯一标识符已更改。确保安装的 GRUB 核心映像与 GRUB 模块和 grub.cfg 保持同步非常重要。请再次检查以确保 GRUB 已写入适当的引导设备。
我怎么知道我应该选择哪个设备?
如果我的机器上安装了一些额外的 EBS,我也应该选择它们吗?
我可以在升级过程中避免这个提示,或者为命令提供一些默认值吗?
以下提示是
/boot/grub/menu.lst 有新版本可用,但当前安装的版本已被本地修改。
- 安装软件包维护者的版本
- 保留当前安装的本地版本
- 显示版本之间的差异
- 并排显示版本之间的差异
- 显示可用版本之间的三种差异
- 在可用版本之间进行三向合并(实验性)
- 启动一个新的 shell 来检查情况
这里有同样的问题:
我怎么知道我应该选择哪一个?
我可以在升级过程中避免这个提示,或者为命令提供一些默认值吗?
答案1
目前有一个针对此问题的错误位于此处并且它也存在于 12.02 LTS 中看到这里。Anders Hall 在错误报告底部列出的步骤适用于 14.04 LTS 64 位 (HVM) AMI(US-EAST-1 中的 ami-d05e75b8):
$ sudo apt-get update
$ sudo rm /boot/grub/menu.lst
$ sudo update-grub-legacy-ec2 -y
$ sudo apt-get dist-upgrade -qq --force-yes
$ sudo reboot
重启后,14.04.2 LTS 升级到 14.04.3 LTS 并sudo apt-get update && sudo apt-get upgrade
返回 0 个新软件包。
答案2
尽管我从未对 menu.lst 文件进行任何自定义更改,但我自己也遇到过几次这种情况。我不知道为什么会发生这种情况,但我选择比较该文件,发现更改的主要是注释和对新版本内核的引用。有一个未决问题在 apt 错误跟踪器中了解此问题。
只要您没有对旧版本进行任何手动更改,就可以使用新版本覆盖旧版本(选项 1)。为了安全起见,我建议您在更新之前创建实例的备份 AMI。