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

时间:2014-11-10 20:38:42

标签: linux ubuntu amazon-web-services amazon-ec2 ec2-ami

我在EC2上运行ubuntu 14.04

运行apt-get upgrade后

我提示屏幕要求我重新安装GRUB引导加载程序

  

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

  • 我如何知道应该选择哪种设备?

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

  • 我可以在升级期间避免此提示或提供命令的某些默认值吗?

以下提示

  

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

     
      
  1. 安装软件包维护者的版本
  2.   
  3. 保留当前安装的本地版本
  4.   
  5. 显示版本之间的差异
  6.   
  7. 显示版本之间的并排差异
  8.   
  9. 显示可用版本之间的三向差异
  10.   
  11. 在可用版本之间进行3向合并(实验性)
  12.   
  13. 启动一个新的shell来检查情况
  14.   

这里有同样的问题:

  • 我如何知道应该选择哪一个?

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

1 个答案:

答案 0 :(得分:9)

我有类似的问题。

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

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

在某些来源中我发现,人们也传递了env变量DEBIAN_FRONTEND=noninteractive,但我没有在手册中找到它。

因此,我用于升级的.sh脚本中的最终命令:

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