这里有一个非常相似的问题“如何在没有 grub 配置提示的情况下执行 apt-get -y dist-upgrade?“关于使用 apt-get 不提示更新 grub。
但是我想知道如何使用 apt-get 在全新映像上安装 grub2。我正在准备虚拟机磁盘映像,从 debootstrap 开始,然后从那里开始。
我想在映像上安装 grub2 软件 - 但根本不配置它或将其安装在引导扇区上;后面的脚本会负责正确的配置和安装。
我怎样才能做到这一点?
答案1
回答我自己的问题-我发现我可以这样做:
echo "grub-pc grub-pc/install_devices_empty boolean true" | debconf-set-selections
DEBIAN_FRONTEND=text apt-get -y install grub2
答案2
我的情况可能有点不同,但在升级我新创建的虚拟机时,安装程序提出了一些交互式问题,这破坏了自动化,而且找到如何摆脱它的方法非常困难,所以这里是我在升级过程中所做的事情:
sed -i "s/#\ conf_force_conffold=YES/conf_force_conffold=YES/g" /etc/ucf.conf
apt-get -y upgrade
sed -i "s/conf_force_conffold=YES/#conf_force_conffold=YES/g" /etc/ucf.conf
它仅在我升级时删除了交互性,在这种情况下,它是由中佛罗里达大学, 并不是德布康夫。
顺便说一句,如果您愿意,您也可以手动编辑文件,但我倾向于将所有内容转换为可复制/粘贴的,因为这样可以让生活变得更加轻松。
我使用 Ubuntu 16.04
答案3
您的问题可能已经存在近两年了,但我相信我有一个更好的答案值得分享。
不要安装grub2
或grub-pc
. 安装grub-pc-bin
和grub2-common
.
grub-install
和update-grub
由 提供grub2-common
,但所有debconf
和ucf
东西均由 提供grub-pc
。
但请注意,这grub-pc
是对大多数(所有?)内核映像包的推荐包,因此您必须安装内核映像和使用该--no-install-recommends
选项的任何内核映像升级。
--assume-yes
还请注意选项的使用,因此apt-get
可以非交互地运行。
安装:
sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends linux-image-virtual grub-pc-bin grub2-common
sudo grub-install /dev/sdX
sudo update-grub
升级:
sudo apt-get update
sudo apt-get dist-upgrade --assume-yes --no-install-recommends
希望这可以帮助!!