从头安装时以非交互式方式安装 grub2

从头安装时以非交互式方式安装 grub2

这里有一个非常相似的问题“如何在没有 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

您的问题可能已经存在近两年了,但我相信我有一个更好的答案值得分享。

不要安装grub2grub-pc. 安装grub-pc-bingrub2-common.

grub-installupdate-grub由 提供grub2-common,但所有debconfucf东西均由 提供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

希望这可以帮助!!

相关内容