[Problème] Changement de hostname sur Ubuntu

Bonjour,

Pour un projet scolaire je dois mettre en place un Ubuntu 9.10 persistent sur ~80 disques USB. Le problème est que je dois avoir des hostname différents sur chaque machine pour le DHCP. Voilà comment doivent être les hostname :
DISK$(date '+%y%m%d')$RANDOM

Ce qui me laisse 1 chance sur 32768 d'avoir le même hostname par jour.

Après avoir bien fouillé divers forum ce que j'ai pu voir et essayer ne marche pas dans mon cas :

- modifier les fichiers /etc/hosts et /etc/hostname --> au reboot mon hostname redevient l'ancien

- valider le changement en démarrant le script /etc/init.d/hostname.sh --> ce script n'existe tout simplement pas chez moi, j'en ai un par contre dans /var/lib/update-rc.d/ et qui contient cette ligne :
update-rc.d -f hostname.sh remove

- utiliser le commande hostname nouveau_nom --> change l'hostname pour la session actuelle, donc initéressant

Voilà je suis ouvert à toutes idées, n'en ayant plus moi même =/

Bonne journée.

1 réponse

  1. Le problème de la disparition de la configuration inscrite dans /etc/hostname vient sans doute de l'existence en parallèle sur les install USB d'un volume en lecture seule et d'un en lecture/écriture.
    Seule une partie des informations du disque en lecture/écriture sont conservées ( les documents utilisateurs principalement) il faut modifier le fichier dans le disque en lecture seule pour que la modification persiste.

    Jette un oeil à cet article pour plus d'info : https://fr.wikipedia.org/wiki/Ubuntu_casper
    1. La persistence décrite sur Wikipédia n'est pas totalement juste =)

      # Recherche sur les disques d'une partition ou d'un fichier image de partition à utiliser pour la partie cow de l'empilement donnant /.
      # Recherche sur les disques d'une partition ou d'un fichier image de partition à utiliser comme partition /home R/W.


      Ce qui sous-entend que seule la partie montée sur /home est en lecture/écriture, hors la mienne est en lecture/écriture partout, y compris sur le /.

      De plus j'ai fouillé le filesystem.squashfs monté sur la cow, mais rien de concluant : toujours pas de script hostname.sh, pas de fichier /etc/hosts, rothera comme hostname dans /etc/hostname.
    2. Le système de fichier est en lecture/écriture mais les changements ne sont pas sauvegardés (ils ne sont pas extrait du tmpfs qui est détruit au redémarrage) , tu doit pouvoir modifier ce comportement mais ce n'est pas recommandé car alors la totalité du système de fichier se retrouverait en double : dans l'image "fixe" squashfs et dans l'image enregistrant les modifications.
      Il faut donc que tu modifie le fichier /etc/hostname du squashfs

      Le script /etc/init.d/hostname.sh sert à lire le contenu de /etc/hostname il a peut être un autre nom sur les LiveUSB ??
      C'est aussi possible qu'une autre méthode soit utilisée pour définir le hostname, si la modification de /etc/hostname ne suffit pas tu pourras toujours rajouter le script de démarrage...
    3. Je viens de trouver une autre piste : le hostname et le nom d'utilisateur peuvent être passés comme paramètre de boot, il faudrait alors voir dans la config du grub.
    4. J'ai fait en sorte de garder les changements comme ceci :
      - une partition boot comprenant une squashfs basique
      - une partition casper montée à la racine qui est en R/W
      - des partitions de données
      Et ça marche impec =)

      Sinon vu que la persistance avec grub était pas top, j'ai utilisé syslinux comme chargeur.
    5. Hmmm, quel est l'intérêt d'utiliser un squashfs si tu y superposes une partition en r/w ?