preseed.cfg ignorant le paramètre de nom d'hôte

13

J'installe Debian Wheezy (netinstall) dans VirtualBox en utilisant preseed.cfg.

J'ai essayé les deux d-i netcfg/get_hostname string somehostet d-i netcfg/get_hostname string somehost, mais dans les deux cas, l'hôte est défini comme "debian". J'ai essayé les deux en même temps mais l'hôte est toujours défini comme "debian".

Extrait du guide de Debian sur le fichier de préconfiguration :

Si vous souhaitez forcer un nom d'hôte, indépendamment de ce que le serveur DHCP renvoie ou de l'entrée DNS inversée pour l'IP, décommentez et ajustez la ligne suivante

di netcfg / hostname string somehost

Est-ce un bug ou suis-je simplement malchanceux?

ToddM
la source

Réponses:

10

Pas une solution mais une solution de contournement

Moi aussi, j'ai rencontré un problème similaire et j'y ai travaillé en définissant le nom d'hôte après l'installation via les lignes suivantes ajoutées à la fin de mon pressed.cfg:

d-i pressed/late_command string\
    in-target /bin/bash -c 'echo desired_name > /etc/hostname'

Le in-targetest nécessaire pour que le se /réfère au système de fichiers cible (qui deviendra éventuellement votre système de fichiers racine) qui apparaît généralement comme /targetlors de l'installation.

Joseph R.
la source
1
Je l' ai aussi utilisé cela , mais avec une légère modification afin que le nom d' hôte est automatiquement à partir d' une recherche DNS: d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Cela utilise "facter" de puppetlabs pour obtenir l'adresse IP mais vous pouvez faire quelque chose de similaire en utilisant ip addret sed.
David Gardner
9

Si vous démarrez en réseau (avec PXE et vos amis), le nom d'hôte est configuré avant de récupérer le fichier prédéfini, donc le nom d'hôte doit être défini sur la ligne de commande du noyau comme ceci:

hostname=myhostname domain=mydomain

Depuis l' introduction de l'annexe B (sur la préconfiguration) du manuel de l'installateur Debian:

Une différence importante entre les méthodes de préconfiguration est le point auquel le fichier de préconfiguration est chargé et traité. Pour la préconfiguration initrd, c'est juste au début de l'installation, avant même que la première question ne soit posée. Pour la préconfiguration de fichiers, c'est après le chargement du CD ou de l'image du CD. Pour la préconfiguration du réseau, ce n'est qu'après la configuration du réseau.

pseudo-aléatoire
la source
4

J'ai constaté que ce problème a disparu lorsque j'ai supprimé priority=criticalles arguments que je transmettais au noyau sur la ligne de commande net install (via les entrées du répertoire pxelinux.cfg).

Je suppose que cela signifie que la question qui demande le nom d'hôte a reçu une priorité inférieure à «critique», et est donc remplie avec la réponse par défaut.

Si vous effectuez cette modification, vous constaterez peut-être que vous devez préconfigurer d'autres réponses inférieures à la critique pour d'autres questions plus tard dans le processus d'installation ...

Tim Small
la source
3

C'est la limitation de l'installateur Debian. Au moment où vous récupérez votre fichier de configuration prédéfini à partir du réseau, il netcfga déjà fait son travail et est parti, il ne récupérera donc pas les valeurs.

quelque chose d’officiel est à utiliser dans votre preseed.cfgligne:

d-i preseed/run string http://example.net/d-i/jessie/preseed.sh

et en cela preseed.shalors spécifiez:

#!/bin/sh
kill-all-dhcp; netcfg

De cette façon, lorsque le réseau est établi et preseed.cfgest tiré par les cheveux, preseed.shsera également chercher et exécuter, il redémarre netcfgqui sera ensuite lire toutes les valeurs préconfiguration pour netcfg/*et les configurer correctement ( /etc/hostsname, /etc/hosts, /etc/network/interfacessi vous réglez la configuration IP statique via préconfiguration , etc.)

Matija Nalis
la source
Vous pouvez le faire sans fichier séparé: d-i preseed/early_command string kill-all-dhcp; netcfgdans votre fichier prédéfini est suffisant. Testé avec Stretch dans une netinstall automatisée.
scy