Utilisation d'un preseed.cfg

Bonjour,

je souhaite faire des install de VM virtualbox en utilisant une image netinstall et un fichier preseed sur une image floppy.
Virtualbox boot bien sur la netinstall, je passe en mode installation automatique et indique que le fichier pressed est sur floppy://preseed.cfg
L’installeur tente ensuite de chercher un fichier floppy://preseed.cfg/d-i/stretch/./preseed.cfg qu’il ne trouve pas et renvoi une erreur.
Avez-vous une idée pour me sortir de ce mauvais pas ?

Mon objectif est d’avoir une iso de ref (netinstall) et de disposer de n fichier preseed en fonction du type de VM que je souhaite monter. Lorsque l’image netinstall évoluera j’aurai juste à la télécharger sans avoir à refaire mes fichiers preseed. J’aimerai éviter de déposer le preseed sur un serveur http, car pour monter certains environnements je serai amené à démarrer sans serveur http.

Merci

j’ai également tenté de passer des arguments au boot en appuyant sur tab et en ajoutant preseed/file=/hd-media/preseed.cfg ou preseed/file=/floppy/preseed.cfg mais rien n’y fait.
En revanche le fait de passer une valeur pour debian-installer/country fonctionne bien

Quelqu’un arrive-t-il a utiliser un preseed file sur stretch ??

Bonjour tikipoof

Non : le fichier preseed.cfg n’est pas sur lui même
car lui même n’est pas une disquette mais bien un fichier


Ce qu’il te faut indiquer pour floppy c’est un fichier image qui aura été formatté comme une disquette
et c’est dans le système de fichiers de ce fichier image (puisque tu l’aura formaté)
que tu pourra copier le fichier pressed.cfg et qu’il pourra être lu par la machine virtuelle.


Créer le fichier image de la disquette :

michel@debg53sw:~$ dd bs=512 count=2880 if=/dev/zero of=monfloppy.img
2880+0 enregistrements lus
2880+0 enregistrements écrits
1474560 octets (1,5 MB) copiés, 0,0149111 s, 98,9 MB/s
michel@debg53sw:~$  

Créer un système de fichiers sur (formater) cette “disquette” :

michel@debg53sw:~$ /sbin/mkfs.fat -F12 monfloppy.img
mkfs.fat 3.0.27 (2014-11-12)
michel@debg53sw:~$  

Créer le fichier de périphérique qui va permettre de mounter le système de fichiers :

michel@debg53sw:~$ udisksctl loop-setup -f monfloppy.img
Mapped file monfloppy.img as /dev/loop0.
michel@debg53sw:~$  

Mounter le système de fichiers pour pouvoir y accéder :
Le nom du fichier de périphérique créé ne sera pas forcement le même,
ce pourrait être : loop1 ou loop2 etc.
=> il te faudra le récupérer dans le retour de la commande précédente.

michel@debg53sw:~$ udisksctl mount -b /dev/loop0
Mounted /dev/loop0 at /media/michel/FE25-6D95.
michel@debg53sw:~$  

Copier le fichier preseed.cfg dans le système de fichiers de la “diskette” :
Le chemin et l’UUID (FE25-6D95) du système de fichiers de ta “disquette” sera sans doute différent
=> il te faudra le récupérer dans le retour de la commande précédente.

michel@debg53sw:~$ cp preseed.cfg /media/michel/FE25-6D95
michel@debg53sw:~$  

Vérifier que le fichier a bien été copié :

michel@debg53sw:~$ ls -l /media/michel/FE25-6D95
total 2
-rw-r--r-- 1 michel michel 1191 oct.  25 00:36 preseed.cfg
michel@debg53sw:~$  

Démounter le système de fichiers :

michel@debg53sw:~$ udisksctl unmount -b /dev/loop0
Unmounted /dev/loop0.
michel@debg53sw:~$  

Libérer le fichier de périphérique qui avait été créé :

michel@debg53sw:~$ udisksctl loop-delete -b /dev/loop0
michel@debg53sw:~$  

Voilà. Tu peux maintenant utiliser le fichier monfloppy.img comme si c’était une disquette
sur laquelle ta machine va pouvoir trouver le fichier preseed.cfg

Ou alors, tu adapte (ou pas)
les variables des fichiers pressed.cfg et monfloppy.img comme il te plaira,
et tu copie/colle le bloc entier des lignes de commandes ci-dessous
dans la fenêtre de terminal de ton compte utilisateur.

chmPreseed="preseed.cfg"
chmFichImg="monfloppy.img"

dd bs=512 count=2880 if=/dev/zero of="${chmFichImg}"                                          && \
/sbin/mkfs.fat -F12 "${chmFichImg}"                                                           && \
varLoop=$(udisksctl loop-setup -f "${chmFichImg}" | awk '{print substr($5,1,length($5)-1)}')  && \
flPath=$(udisksctl mount -b $varLoop              | awk '{print substr($4,1,length($4)-1)}')  && \
cp "${chmPreseed}" $flPath                                                                    && \
udisksctl unmount -b $varLoop                                                                 && \
udisksctl loop-delete -b $varLoop
echo "Le fichier ${chmPreseed} a été copié dans le fichier image ${chmFichImg} qui a été créé."

Bonjour MicP,

merci, ça me confirme que l’image doit bien être en FAT. Avec le temps je me posais des questions.

Maintenant que j’ai mon image, j’ai le comportement suivant :

  • quand je passe file=/floppy/preseed.cfg en paramètre de boot, l’installeur cherche à charger le fichier floppy:///preseed.cfg (avec 3 /).
  • quand je passe file=/floppy/./preseed.cfg en paramètre de boot, l’installeur cherche à charger le fichier floppy:///./preseed.cfg (avec 3 /).

Si je passe file=floppy/preseed.cfg en paramètre de boot je vais un peu plus loin mais l’installeur me dit que le md5 “” ne correspond pas au md5 qu’il calcul. Tapper un md5 en clavier US est une vrai galère, il n’y a pas moyen de bypasser ce check ?

Je ne sais pas du tout de quel fichier (si c’en est un) le MD5 calculé ne corresponds pas.

Ça me fait penser à un paquetage dont le téléchargement se serait mal passé
ou un lien vers un fichier obsolète ou plus récent que prévu.

Mais c’est peut-être tout autre chose : je n’ai jamais utilisé de fichier preseed.cfg

Ou alors, c’est simplement le fichier image ISO netinstall ou un des fichiers qu’il contient
qui aurait été modifié sans que sa somme MD5 n’ait été mise à jour dans le fichier md5sum.txt

Oui je te confirme qu’il parle du md5 du fichier preseed. Il l’attend en paramètre de boot d’où mon problème avec un clavier US.
Je n’ai pas l’impression que ça puise être fourni dans un fichier

Alors, il te suffirait de calculer la somme MD5 du fichier preseed.cfg que tu veux utiliser
et de la spécifier en paramètre de boot

Sur les versions Live debian, c’était dans la ligne append du fichier live.cfg
que j’ajoutais des paramètres de boot, mais sur la netinstall,
Je pense qu’il doit s’agir du fichier /boot/grub/grub.cfg

J’imagine que ça m’obligerait à toucher à l’iso d’install et justement je voudrai éviter ça, car à chaque mise à jour de l’iso et pour chaque preseed il faudra refaire le travail
C’est la raison pour laquelle je souhaite avoir un ISO d’un côté qui est utilisé avec tel ou tel fichier preseed en fonction du rôle de la machine dont je vais avoir besoin.

Eh oui, c’était justement ce que j’étais en train de réaliser en rédigeant mon message précédent.
Ça tourne en rond cette histoire.

Peut-être que quelqu’un ayant déjà été confronté à ce cas de figure proposera une solution,

On dirait que personne n’a la solution
En tout cas merci pour ton aide, grâce à toi j’ai progressé malgré tout

Essaye avec :

preseed/file=/floppy/preseed.cfg


Sinon,essaye en mettant le fichier preseed.cfg
à la racine d’un système de fichiers (ext2 ext3 ou FAT32 ?) d’une clef USB
et avec :

preseed/file=/hd-media/preseed.cfg