运行apt-get upgrade后如何避免GRUB错误 – Ubuntu

我在EC2上运行ubuntu 14.04

运行apt-get升级之后

系统会提示一个屏幕,要求我重新安装GRUB引导加载程序

GRUB引导装载程序先前已安装到不再存在的磁盘,或者由于某种原因其唯一标识已更改。 确保安装的GRUB核心映像与GRUB模块和grub.cfg保持同步非常重要。 请再次检查以确保GRUB被写入适当的引导设备。

  • 我如何知道应该select哪个设备?

  • 如果我在我的机器上安装了一些额外的EBS,我应该select它们吗?

  • 我可以在升级过程中避免此提示,或者为命令提供一些默认设置吗?

以下提示是

新版本的/boot/grub/menu.lst可用,但当前安装的版本已在本地修改。

  1. 安装包维护者的版本
  2. 保持当前安装的本地版本
  3. 显示版本之间的差异
  4. 显示版本之间的并排差异
  5. 显示可用版本之间的三方差异
  6. 做可用的版本(实验)之间的3路合并
  7. 开始一个新的壳来审查情况

同样的q在这里:

  • 我怎么知道我应该select哪一个?

  • 我可以在升级过程中避免这种提示,或者为命令提供一些默认设置吗?

我有类似的问题。

1)如果你看看man apt-get ,你会发现配置选项-o 。 它有助于指定Debian数据包管理器dpkg选项。

2)在手动man dpkg您可以找到一组选项--force-confdef (强制保持默认选项而不提示)和--force-confold (强制保留旧的conf文件)

在我发现的一些资料中,人们也传递了env变量DEBIAN_FRONTEND=noninteractive ,但是我没有在手册中找到它。

所以,在.sh脚本中的最终命令,我用来升级:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade