如何在安装过程中预先将 grub 安装到设备上而无需提示?

如何在安装过程中预先将 grub 安装到设备上而无需提示?

我正在尝试进行完全自动化的 ubuntu 预置安装。我陷入困境,因为我无法在 /dev/sda 以外的设备上预置安装 grub 的答案,而无需手动按“enter”继续安装。

它说:

[!] 在硬盘上安装 Grub 引导加载程序

并正确选择了我尝试安装引导加载程序的设备,但仍需要我手动按回车键。

您可以在此处看到它的图像:

https://i.stack.imgur.com/paqyU.png

我已经在预置中尝试了以下值的各种组合,它们都具有相同的最终结果:

# Option 1 (works when installing to /dev/sda. Prompts with sdm)
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

# Option 2
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev  string /dev/sdm

# Option 3
d-i grub-installer/only_debian boolean false
d-i grub-installer/with_other_os boolean false
d-i grub-installer/bootdev  string /dev/sdm

# Option 2
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev  string /dev/sdm

I've also tried adding the following:
d-i grub-pc/install_devices multiselect /dev/sdm

无论这些设置如何,我都会收到提示。

我在安装过程中将日志设置为详细模式。当我停止并出现以下提示时,日志会显示以下内容:

Dec  9 07:30:35 debconf: --> SET grub-installer/bootdev /dev/sdm
Dec  9 07:30:35 debconf: <-- 0 value set
Dec  9 07:30:35 debconf: --> PROGRESS STEP 1
Dec  9 07:30:35 debconf: <-- 0 OK
Dec  9 07:30:35 debconf: --> PROGRESS INFO grub-installer/progress/step_bootdev
Dec  9 07:30:35 debconf: <-- 0 OK
Dec  9 07:30:35 debconf: --> INPUT critical grub-installer/bootdev
Dec  9 07:30:35 debconf: <-- 0 question will be asked
Dec  9 07:30:35 debconf: --> GO

如果我按下回车键并且安装继续,它将继续进行:

Dec  9 07:30:35 debconf: --> SET grub-installer/bootdev /dev/sdm
Dec  9 07:30:35 debconf: <-- 0 value set
Dec  9 07:30:35 debconf: --> PROGRESS STEP 1
Dec  9 07:30:35 debconf: <-- 0 OK
Dec  9 07:30:35 debconf: --> PROGRESS INFO grub-installer/progress/step_bootdev
Dec  9 07:30:35 debconf: <-- 0 OK
Dec  9 07:30:35 debconf: --> INPUT critical grub-installer/bootdev
Dec  9 07:30:35 debconf: <-- 0 question will be asked
Dec  9 07:30:35 debconf: --> GO
Dec  9 07:37:20 debconf: <-- 0 ok
Dec  9 07:37:20 debconf: --> GET grub-installer/bootdev
Dec  9 07:37:20 debconf: <-- 0 /dev/sdm
Dec  9 07:37:20 debconf: --> PROGRESS STEP 1
Dec  9 07:37:20 debconf: <-- 0 OK
Dec  9 07:37:20 debconf: --> SUBST grub-installer/progress/step_install_loader BOOTDEV /dev/sdm
Dec  9 07:37:20 debconf: Adding [BOOTDEV] -> [/dev/sdm]
Dec  9 07:37:20 debconf: <-- 0
Dec  9 07:37:20 debconf: --> PROGRESS INFO grub-installer/progress/step_install_loader
Dec  9 07:37:20 debconf: <-- 0 OK
Dec  9 07:37:20 grub-installer: info: Installing grub on '/dev/sdm'
Dec  9 07:37:20 grub-installer: info: grub-install supports --no-floppy
Dec  9 07:37:20 grub-installer: info: Running chroot /target grub-install  --no-floppy --force "/dev/sdm"
Dec  9 07:37:22 grub-installer: Installation finished. No error reported.
Dec  9 07:37:22 grub-installer: info: grub-install ran successfully
...

我不太清楚提示到底是什么。是这个吗?

Dec  9 07:37:20 debconf: <-- 0 ok

如果这样,我该如何输入“ok”?

任何帮助是极大的赞赏。

答案1

在你的预置文件的更高位置,应该出现这一行:

d-i debconf/priority string critical

这应该确保只提出“关键”问题

仅此一行似乎就足以为引导加载程序提供足够的信息/dev/sda

根据您的需要进行修改

d-i grub-installer/bootdev string /dev/sda

至于您的另一个问题,行 <- 0 ok 仅仅是一个返回值(成功);您可以忽略它。

希望这可以帮助。

答案2

如果我能找到如何自动回答“是”这个问题,我也会很高兴,这意味着我对它的任何建议都感到满意。通常它与您用来分区和安装操作系统的方法相同(partman 使用的设备)。

对于 Stephen 的问题。如果您可以硬编码安装 grub 的位置。如果这不起作用:

d-i grub-installer/bootdev string /dev/sdb

尝试:

grub-pc grub-pc/install_devices string /dev/sdb

我希望找到如何自动回答 grub 问题为“是”,而无需输入 grub 安装位置的静态名称。只需自动按回车键即可。

相关内容