Instaluję Debian Wheezy (netinstall) w VirtualBox przy użyciu preseed.cfg
.
Próbowałem zarówno d-i netcfg/get_hostname string somehost
i d-i netcfg/get_hostname string somehost
, ale w obu przypadkach host zostanie ustawiony jako „Debian”. Próbowałem obu jednocześnie, ale host jest ustawiony jako „debian”.
Fragment przewodnika Debiana na temat pliku konfiguracji wstępnej :
Jeśli chcesz wymusić nazwę hosta, bez względu na to, co zwróci serwer DHCP lub jaki jest odwrotny wpis DNS dla adresu IP, odkomentuj i dostosuj następujący wiersz
di netcfg / hostname string somehost
Czy to błąd, czy po prostu mam pecha?
d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'
. Korzysta z „facter” z puppetlabs, aby uzyskać adres IP, ale możesz zrobić coś podobnego, używającip addr
ised
.Jeśli wykonujesz rozruch sieciowy (z PXE i przyjaciółmi), nazwa hosta jest konfigurowana przed pobraniem wstępnie zapisanego pliku, więc nazwa hosta powinna być ustawiona w wierszu komend jądra w następujący sposób:
Od wprowadzenia dodatku B (dotyczącego wstępnego siewu) podręcznika instalatora Debiana:
źródło
Odkryłem, że ten problem zniknął, gdy usunąłem
priority=critical
argumenty, które przekazywałem do jądra w wierszu polecenia instalacji sieciowej (poprzez wpisy katalogu pxelinux.cfg).Zakładam, że oznacza to, że pytanie, które pyta o nazwę hosta, ma priorytet niższy niż „krytyczny”, a zatem zostaje wypełniona domyślną odpowiedzią.
Jeśli dokonasz tej zmiany, może się okazać, że będziesz musiał przygotować inne mniej krytyczne odpowiedzi na inne pytania w dalszej części procesu instalacji ...
źródło
Jest to ograniczenie instalatora Debiana. Do czasu pobrania wstępnie skonfigurowanego pliku konfiguracji z sieci
netcfg
już wykonał on swoją pracę i nie ma go, więc nie będzie mógł ponownie pobrać wartości.nieco oficjalnym kludge jest użycie w twojej
preseed.cfg
linii:a
preseed.sh
następnie określ:W ten sposób, gdy sieć jest założona i
preseed.cfg
jest naciągane,preseed.sh
będzie również pobrać i uruchomić, więc będzie restartnetcfg
które następnie odczytać wszystkie wartości preseed dlanetcfg/*
i skonfigurować je prawidłowo (/etc/hostsname
,/etc/hosts
,/etc/network/interfaces
jeśli jesteś ustawienie statycznego IP konfiguracja poprzez preseed etc)źródło
d-i preseed/early_command string kill-all-dhcp; netcfg
w przygotowanym pliku wystarczy. Testowane za pomocą Stretch w automatycznej instalacji sieciowej.