Я устанавливаю Debian Wheezy (netinstall) в VirtualBox, используя preseed.cfg
.
Я пробовал и то d-i netcfg/get_hostname string somehost
и другое d-i netcfg/get_hostname string somehost
, но в обоих случаях хост устанавливается как "debian". Я пробовал и то и другое одновременно, но все же хост установлен как "debian".
Выдержка из руководства Debian о файле предварительной конфигурации :
Если вы хотите принудительно ввести имя хоста, независимо от того, что возвращает DHCP-сервер или какая обратная DNS-запись для IP-адреса, откомментируйте и настройте следующую строку
di netcfg / hostname string somehost
Это ошибка или мне просто не повезло?
d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'
. Он использует «facter» из puppetlabs для получения IP-адреса, но вы можете сделать что-то подобное, используяip addr
иsed
.Если вы загружаетесь по сети (с PXE и друзьями), имя хоста настраивается перед извлечением файла preseed, поэтому имя хоста должно быть установлено в командной строке ядра следующим образом:
С момента введения приложения B (о предварительном чтении) руководства по установке Debian:
источник
Я обнаружил, что эта проблема исчезла, когда я удалил
priority=critical
аргументы, передаваемые ядру, в командной строке net install (через записи каталога pxelinux.cfg).Я предполагаю, что это означает, что вопрос, который спрашивает имя хоста, получил приоритет, который ниже, чем «критический», и поэтому заполняется ответом по умолчанию.
Если вы действительно внесете это изменение, вы можете обнаружить, что вам нужно подготовить некоторые другие ответы ниже критических для других вопросов позже в процессе установки ...
источник
Это ограничение установки Debian. К тому времени, когда вы извлекаете свой файл конфигурации preseed из сети,
netcfg
он уже выполнил свою работу и ушел, поэтому он не будет повторно получать значения.Несколько необычный кладж - это использовать в вашей
preseed.cfg
строке:и в этом
preseed.sh
то укажите:Таким образом, когда установлена сеть и
preseed.cfg
извлекается,preseed.sh
будет также получать и бежать, так что будет перезагружен ,netcfg
который будет считывать все автоматизируемой значенияnetcfg/*
и правильно настроить их (/etc/hostsname
,/etc/hosts
,/etc/network/interfaces
если вы устанавливаете статический IP конфигурации с помощью автоматизируемой и т.д.)источник
d-i preseed/early_command string kill-all-dhcp; netcfg
в вашем предварительном файле достаточно. Протестировано с помощью Stretch в автоматическом netinstall.