Salut ! Je travaille actuellement sur un système non-lfs à partir de zéro avec busybox comme star. Maintenant, mon identifiant indique :
(none) login:
Par conséquent, mon nom d'hôte est cassé. hostname
m'apporte (none)
aussi.
Le guide que je suivais m'a dit de jeter le nom d'hôte à /etc/HOSTNAME
. J'ai aussi essayé /etc/hostname
. Peu importe ce que je fais, hostname
renvoie (none)
- sauf si j'exécute hostname <thename>
ou hostname -F /etc/hostname
. Maintenant, évidemment, je ne veux pas que cela soit fait à chaque fois que quelqu'un vient d'installer la distribution - alors quel est le vrai fichier par défaut, sinon /etc/hostname
?
Merci d'avance !
Réponse acceptée :
Le hostname
Les commandes dans les ensembles d'outils courants, y compris BusyBox, ne reviennent pas aux fichiers lors de la requête du nom d'hôte. (aucun)", modifiable en reconfigurant et en reconstruisant le noyau.
(Dans la terminologie systemd, il s'agit du nom d'hôte dynamique , alias nom d'hôte transitoire; celui qui est réellement rapporté par Linux, le noyau.)
Il n'y a pas "fichier par défaut".
Il existe généralement un service unique qui s'exécute au démarrage du système, assez tôt, qui recherche dans ces différents fichiers, extrait le nom d'hôte et initialise le nom d'hôte du noyau avec.
(Dans la terminologie systemd, cette chaîne de configuration est le nom d'hôte statique .)
Par exemple :
- Dans mon ensemble d'outils, je fournis un
hostname
"précoce" service qui exécute leset-dynamic-hostname
de l'ensemble d'outils commande après le montage du système de fichiers local et avant les services de connexion de l'utilisateur. Le travail est divisé en choses qui sont faites (uniquement) quand on fait un changement de configuration, et des choses qui sont faites à (chaque) démarrage du système :- Le mécanisme d'importation de la configuration externe lit
/etc/hostname
et/etc/HOSTNAME
, parmi d'autres sources (puisque différents systèmes d'exploitation le configurent de différentes manières), et crée unrc.conf
fusionné . - Le mécanisme d'importation de configuration externe utilise le
rc.conf
fusionné pour configurer lehostname
de ce service variable d'environnement. - Lorsque le service s'exécute,
set-dynamic-hostname
n'a pas besoin de se soucier de toutes les possibilités de source de configuration et prend simplement la variable d'environnement, de l'environnement configuré pour le service, et définit le nom d'hôte dynamique à partir de celui-ci.
- Le mécanisme d'importation de la configuration externe lit
- Dans systemd, il s'agit d'une action d'initialisation qui est câblée dans le code de
systemd
lui-même, qui s'exécute avant même le démarrage de la gestion des services. Lesystemd
le programme lui-même va et lit/etc/hostname
(et aussi/proc/cmdline
, mais pas/etc/HOSTNAME
ni/etc/default/hostname
ni/etc/sysconfig/network
) et le transmet au noyau. - Dans Void Linux, il existe un script shell de démarrage qui lit le nom d'hôte statique depuis (uniquement)
/etc/hostname
, avec un retour à la variable shell lue depuisrc.conf
, et définit le nom d'hôte dynamique à partir de sa valeur.
Si vous construisez un système "à partir de zéro", vous devrez créer un service qui fait l'équivalent.
Les outils BusyBox et ToyBox pour définir le nom d'hôte à partir d'un fichier sont hostname -F "${filename}"
, vous devrez donc créer un service qui exécute cette commande sur /etc/hostname
ou un tel fichier.
BusyBox est livré avec l'ensemble d'outils de gestion de service de runit, et un service runit simple ressemblerait à :
#!/bin/sh -e exec 2>&1 exec hostname -F /etc/hostname
Autres lectures
- Lennart Poettering et al. (2016).
hostnamectl
. pages de manuel systemd. Freedesktop.org. - Jonathan de Boyne Pollard (2017). "
set-dynamic-hostname
“. Manuel des commandes utilisateur . ensemble d'outils de bouffe. Logiciels. - Jonathan de Boyne Pollard (2017). "
rc.conf
fusion". Guide bouffe . Logiciels. - Jonathan de Boyne Pollard (2015). "formats externes". Guide bouffe . Logiciels.
- Rob Landley.
hostname
. Liste des commandes du Toybox . landley.net. - https://unix.stackexchange.com/a/12832/5132