Debian 的预安装如何工作?

Debian 的预安装如何工作?

我正在尝试为我的 debian 服务器创建一个自动安装程序,这样如果硬件出现故障,我的员工就可以重新安装它,而无需选择语言、添加用户,最重要的是,无需致电 IT 部门。我阅读了 debian 网站上与预置文件相关的所有文档,但无法让它工作。我已经创建了 preseed.cfg 文件,它应该可以工作,但安装程序始终无法识别它。我甚至尝试了第三方脚本,将我的预置文件嵌入到 ISO 中,但它也不起作用(无法从 USB 启动)。有人可以提供一个简单的分步指南,说明我应该将 preseed.cfg 放在哪里以及如何以实际使用该文件的方式启动安装程序吗?

[更新]

这是我目前所做的:

1)我根据 debian 网站上的示例文件创建了一个 pressed.cfg 文件。

2) 我制作了一个 USB debian 安装程序(尝试了 dd 命令和 rufus)均可以在没有预置文件的情况下工作。

3) 我将 preseed.cfg 复制到 USB 根目录以及名为“preseed”的文件夹(我在某处读到过它,它可能会有帮助)。

4)启动PC,从USB启动。

5)选择自动安装选项,按TAB键打开参数编辑器并添加“preseed/file=/hd-media/preseed.cfg”。

此时,我要么收到一条错误消息,指出未找到预置文件,要么我的启动参数被完全忽略,然后开始正常安装。

这是我收到的错误消息:

Failed to retrieve the preconfiguration file

The file needed for preconfiguration could not be retrieved from /hd-media/preseed.cfg.
The installation will proceed in non-automated mode.

我确实想避免在我的网站上托管预置文件,因为我不想暴露我的服务器设置。

答案1

预置文件有多种工作方式。具体细节可能非常复杂,并且会因硬件而异。

假设您的安装程序支持您的网络硬件,一种方法是将一个 URL 传递给安装程序预置文件。

另一种方法是修改 initrd.gz 并将文件嵌入其中。

您可以通过 DHCP 服务器提供预置种子。

您可以将其放在 CD 映像上的文件中。

在几乎所有情况下,您都必须在启动命令行中传递附加参数,因此除了放置文件之外,您还需要更新安装媒体引导加载程序。

安装指南确实提供了您需要的大部分一般信息。

既然您提到使用 USB 介质启动,您可能需要查看 B.2.1 节,其中提到了文件所在的位置以及所需的启动选项。

- if you're installing from USB media (put the preconfiguration file in the
  toplevel directory of the USB stick):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

答案2

将您的 更改preseed/file=/hd-media/preseed.cfgpreseed/file=/cdrom/preseed.cfg

指定预置路径时必须考虑安装程序的文件系统布局。虽然 initramfs 被挂载为根文件系统,但默认安装介质将其源挂载在/cdrom/

  • 如果你的 preseed.cfg 位于 initramfs 的根目录,它将位于/preseed.cfg
  • 如果你的 preseed.cfg 位于 cdrom/usb 的根目录,它将位于/cdrom/preseed.cfg

据我所知,目前所有官方 Debian 和 Ubuntu 安装介质均如此。如果此情况发生变化,或者您在构建安装介质时更改了某些内容,您可以随时通过输入以下代码来验证路径是否正确:专家安装程序中的模式,使用从那里启动 shell 并检查文件系统位置的选项。

答案3

我所做的:1)准备一个装有 Debian 10 的可启动 USB;2)将我的 preseed.cfg 作为“preseed.txt”复制到 U 盘的主目录中;3)在安装菜单中选择“高级 > 自动安装”;4)告知:file:///cdrom/preseed.txt 作为 Preseed 文件;

PS:名称为“preseed.cfg”的它不起作用。

相关内容