web-dev-qa-db-ja.com

最初からインストールする場合のgrub2の非対話型インストール

ここには非常によく似た質問があります。 " grub configプロンプトなしでapt-get -y dist-upgradeを実行するにはどうすればよいですか " apt-getを使用してプロンプトなしでgrubを更新することについてです。

ただし、まったく新しいイメージにapt-getを使用してgrub2をインストールする方法を知りたいのですが。私は、debootstrapで始まり、そこから行く仮想マシンディスクイメージを準備しています。

イメージにgrub2ソフトウェアをインストールしたいのですが、構成したり、ブートセクターにインストールしたりしません;後のスクリプトが適切な構成とインストールを行います。

これどうやってするの?

1
nwaltham

私自身の質問に答える-私はこのようにできることがわかりました:

echo "grub-pc grub-pc/install_devices_empty   boolean true" | debconf-set-selections
DEBIAN_FRONTEND=text apt-get -y install grub2
2
nwaltham

あなたの質問はほぼ2年前のものかもしれませんが、私が共有すべきもっと良い答えがあると思います。

grub2またはgrub-pcをインストールしないでください。 grub-pc-binおよびgrub2-commonをインストールします。

grub-installupdate-grubgrub2-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

お役に立てれば!!

0
Jared Brandt

私の場合は少し異なるかもしれませんが、新しく作成したVMをアップグレードするときにインストーラーからインタラクティブな質問がありました。これは自動化を台無しにし、それを取り除く方法を見つけるのは非常に困難でした。

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

それは私のアップグレードの時だけ対話性を削除します。その場合、それはcfではなくdebconfによって生成されます。
ちなみに、必要に応じてファイルを手動で編集することもできますが、私はすべてをコピー/貼り付け可能に変換する傾向があります。

私はUbuntu 16.04を使用しています

0
Balmipour