Невозможно изменить сопоставление диска при автоматической установке Debian - PullRequest
0 голосов
/ 20 июня 2019

У меня есть 2 типа промышленных компьютеров, и я хочу установить Debian автоматически: - 1 ПК с подключенным ssd на sda - 1 ПК с подключенным ssd на sdb У меня есть предустановленный Debian iso на USB-диске для установки.

Итак, проблема в том, что когда я настраиваю свой preseed-файл, мне нужно указать целевой диск (sda или sdb), чтобы он не работал на обоих, и я не нашел никакого решения для установкисамый большой диск будет целевым "(мой ssd - 64 ГБ, мой usb-накопитель - 4 ГБ) или что-то вроде этого.

Я попытался включить правила udev в образ iso, чтобы всегда отображать 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"

Мой файл conf preseed:

#### 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-накопителе ...)

1 Ответ

0 голосов
/ 21 июня 2019

Прежде всего, я хочу сказать вам, что «udev был создан для ответа на события типа hotplug», например, если вы хотите запускать определенный сценарий, когда определенное устройство подключено, вы можете использовать этот демон.

еще один пример использования этого демона - когда вы хотите отказать конкретному устройству в подключении к вашей целевой машине.

с другой стороны, самая большая проблема при использовании этого подхода для решения вашей проблемы -this:

Время, когда udevd активен:

1: при запуске он анализирует все файлы конфигурации и файлы правил и создает базу данных правил в памяти.

2: Когда событие происходит, оно проверяет свою базу данных правил и выполняет соответствующие действия.

пожалуйста, посмотрите эту ссылку Инициализация системы

таким образом, когда debien-installer выполняет коды для разделения вашего устройства, ваша корневая файловая система уже смонтирована.поэтому вы не можете размонтировать уже установленное корневое устройство и просто смонтировать его на другое устройство.

если вы хотите найти самое большое устройство, я предлагаю вам взглянуть на «debian-installer», который может выполнять пакеты udeb (этотипы пакетов могут выполняться только в debian-installer).если вы можете создать пакет udeb, который может выполнить скрипт, в котором он может определить, какой диск должен быть подключен в корневой системе, то перед монтированием корневой системы с помощью пакета partman вы можете решить вашу проблему.

посмотрите на эту ссылку ниже, в которой вы можете увидеть порядок установки пакета udeb в установщике Debian.

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

...