ja, das tut schon immer ohne Probleme.
in meinem postsync steht:
# hostname in /etc/hosts patchen
sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts
und in der durch den postsync direkt vorher auf die Clientpartition gesyncten /etc/hosts steht:
127.0.0.1 HOSTNAME.bzpf.lan HOSTNAME
#SERVERIP server.bzpf.lan server
… man beachte, dass einmal HOSTNAME ersetzt wird und das andere mal #SERVERIP … das ist natürlich ungeschickt und verwirrend: ich nenne es mal „tradition“
Aber gut: Thomas sagt, debian verwendet sowiso die /etc/hostname und die wird durch linbo gepatched: damit ist mein Patchen obsolet…
Werde ich mal testen.
die Datei /etc/hosts ist Teil der statischen DNS-Auflösung, falls man keinen DNS-Server zur Hand hat bzw. wird sie auch bei Nutzung eines DNS-Servers mit verwendet. Sie hat mit dem konfigurierten Hostnamen nicht unmittelbar zu tun. Sie enthält nur häufig (bei den meisten Distributionen) den eigenen Hostnamen für den Fall, das man keinen DNS-Server nutzen kann, denn dann ist es sinnvoll wenigstens den eigenen Hostnamen auflösen zu können, um nicht bei sämtlichen Programmen, die was mit Netzwerk machen, auf Timeouts der Namensauflösung zu warten. Ihr könnt auch 127.0.0.1 gugelhupf in /etc/hosts stehen haben und der Rechner heißt anders, aber er wird auf diesen Namen antworten.
Das erklärt auch Probleme mit meinem Kiosk-Client, wo ein lokaler root Autostart-Skripte ausführt. Wenn Netzwerk/DNS-Server noch nicht verfügbar ist und der LINBO-geklonte Client in /etc/hosts falschen Eintrag hat, dann scheitern sudo-Befehle.
Beste Wünsche
Stefan
PS: ChatGPT5 schrieb dazu:
Unterschied zwischen /etc/hostname und /etc/hosts
Datei
Zweck
/etc/hostname
Enthält nur den lokalen Hostnamen als Text (z. B. kio-pc00-image). Wird vom Kernel beim Booten gelesen und setzt den Hostnamen des Systems (uname -n oder hostname).
/etc/hosts
Dient der Namensauflösung (Hostname → IP-Adresse). Wird von glibc / NSS verwendet, wenn Programme versuchen, einen Hostnamen in eine IP-Adresse aufzulösen.
Was macht sudo?
Wenn du sudo startest, ruft es (intern über getaddrinfo()) eine DNS-/Hosts-Auflösung des lokalen Hostnamens auf — das passiert aus zwei Gründen:
Für Logging (z. B. /var/log/auth.log)
Für PAM- oder Sicherheitsprüfungen, wo der Hostname als FQDN geloggt wird
Das heißt: sudo fragt: „Wie lautet die IP-Adresse dieses Hosts?“ Dafür wird nicht/etc/hostname gelesen,
sondern die Namensauflösung über getaddrinfo() verwendet.
Und diese schaut in /etc/nsswitch.conf:
hosts: files dns
Das bedeutet:
Zuerst /etc/hosts prüfen
Wenn nichts gefunden → DNS
Warum also der Fehler?
Wenn /etc/hostskeinen Eintrag für $(hostname) enthält
und DNS (z. B. wegen Bootphase oder linbo-Netz) noch nicht verfügbar ist,
dann kann sudo den Hostnamen nicht auflösen.
Ergebnis:
sudo: unable to resolve host kio-pc00-image: Temporary failure in name resolution