【问题标题】:Cannot change disk mapping when auto installing debian自动安装debian时无法更改磁盘映射
【发布时间】:2019-11-03 02:56:49
【问题描述】:

我有两种工控机,我想自动安装debian: - 1 台 ssd 映射到 sda 的 PC - 1 台 ssd 映射到 sdb 的 PC 我在 USB 驱动器上有一个预置的 debian iso 用于安装。

所以,问题是:当我配置我的预置文件时,我需要设置什么是目标磁盘(sda 或 sdb),所以它不能同时工作,我没有找到任何解决方案来设置“最大的磁盘将成为目标”(我的 ssd 是 64 GB,我的 USB 驱动器是 4 GB)或类似的东西。

我曾尝试在 iso 映像中包含 udev 规则以始终将 ssd 映射到 sda 上,但它没有考虑...

udev 规则包括(000-install.rules),我已经尝试了这 2 个:

KERNEL=="sda*",ENV{ID_FS_LABEL}=="CDROM",NAME="sdb%n"
KERNEL=="sdb*",ENV{ID_FS_LABEL}!="CDROM",NAME="sda%n"

和:

KERNEL=="sda",ENV{DEVTYPE}=="disk",ENV{ID_FS_LABEL}=="CDROM",NAME="sdb"
KERNEL=="sdb",ENV{DEVTYPE}=="disk",ENV{ID_FS_LABEL}!="CDROM",NAME="sda"

我的预置配置文件:

#### Contents of the preconfiguration file
### Localization
# Preseeding only locale sets language, country and locale.
# Debian 9 & 10
d-i debian-installer/locale string fr_FR

d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select multi

d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

## Controlling how partitions are mounted
# The default is to mount by UUID, but you can also choose "traditional" to
# use traditional device names, or "label" to try filesystem labels before
# falling back to UUIDs.
d-i partman/mount_style select label

结果(上面的文件在 ssd 映射为 sda 时有效,但在 sdb 时无效):安装程序告诉我 sda 上没有足够的空间(所以在 USB 驱动器上...)

【问题讨论】:

    标签: installation debian usb-drive


    【解决方案1】:

    首先我想告诉你“udev 是为了响应热插拔类型的事件而创建的” 例如,如果您想在插入特定设备时触发特定脚本,则可以使用此守护程序。

    使用此守护程序的另一个示例是当您想要拒绝将特定设备插入目标计算机时。

    另一方面,使用这种方法解决问题的最大问题是:

    udevd 处于活动状态的时间是:

    1:在启动时,它会解析所有的配置文件和规则文件,并 在内存中建立一个规则数据库。

    2:当事件发生时,它会检查其规则数据库并执行 适当的行动。

    请看这个参考 The system initialization

    因此,当 debien-installer 执行设备分区代码时,您的根文件系统已经挂载。因此,您不能卸载已安装的根设备,而只需将其安装到另一个设备。

    如果您想找到最大的设备,我建议您查看可以执行 udeb 包的“debian-installer”(这种类型的包只能在 debian-installer 中执行)。如果您可以创建一个可以执行脚本的 udeb 包,在该脚本中它可以检测必须在根系统中安装哪个磁盘,那么在通过 partman 包安装根系统之前,您可以解决您的问题。

    查看下面的参考资料,您可以在其中看到 udeb 软件包安装顺序存在于 debian 安装程序中。

    https://d-i.debian.org/doc/internals/apa.html

    【讨论】:

      猜你喜欢
      • 2018-07-17
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多