Debian Intaller Preseed : installer des packages depuis USB

Bonjour,

J’essaye actuellement de finaliser une installation Debian (6.0.3 amd64) depuis une clé USB avec preseed. Je me suis inspiré de ce tutorial : wallix.org/2011/11/02/automa … ash-drive/

Dans celui-ci l’auteur (qui n’a pas répondu à ma question :unamused: ) créé un dépôt local directement sur la clé usb (qui me sert à l’installation) afin d’installer des packages supplémentaires. Cette partie m’intéresse beaucoup (mon serveur n’est pas connecté à internet…). Je voudrais faire la même chose mais cette partie ne passe pas :

d-i preseed/late_command string \ mkdir /target/tmp/repo;\ mount -o bind /hd-media/repo /target/tmp/repo;\ echo "deb file:///tmp/ repo/" >> /target/etc/apt/sources.list;\ in-target aptitude update;\ in-target aptitude install mytool;\ echo "deb http://ftp.debian.org/debian squeeze main" > /target/etc/apt/sources.list;

Etant donné que je n’ai trouvé nul part ce genre de chose, es-ce qu’il n’y aurait pas une autre méthode ? Ou alors celle-là ne peut pas marche ?!

Merci d’avance pour vos éclairages :slightly_smiling:

L’exemple de ce tuto installe “mytool”.

Si tu veux installer autre chose que “mytool”, il faudrait le préciser.

De même, l’exemple porte sur un seul paquet deb “mytool*.deb” copié sur la clé. On peut penser que tu y stockes plusieurs autres deb.

En adaptant la procédure de ce tuto pour plusieurs deb, il faudrait
1-stocker les deb
2-créer l’index

[code]

dpkg-scanpackages repo/ /dev/null | gzip > repo/Packages.gz[/code]

3-préciser ce que tu veux installer.

Bonjour,

J’ai bien compris l’exemple. J’ai en effet plusieurs packages dans ce répertoire /repo et j’ai bien effectué la commande nécessaire pour générer le fichier Packages.gz.

Ensuite j’ai également identifié les packages que je souhaite installer. Cependant l’étape “Preseed Run…” bloque toujours à 26%…

Je remarque aussi que la commande suivante ne marche pas (je change le répertoire tmp en etc pour voir le résultat au reboot de mon serveur):

Par contre celle-là marche :

l’étape “Preseed Run…” bloque toujours à 26%…
On peut émettre l’hypothèse que l’installeur attend une réponse pour poursuivre ou qu’un point essentiel coince. À la vue de l’échec de mkdir dans /target, on peut se poser des questions sur le partitionnement et les montages.
Où est monté le support usb à l’installation ?
/usr séparé ?
Un partitionnement “atomic” où tout est sous / ou un partitionnement “multi” où /usr est séparé ?
Le partitionnement s’opère-t-il ? Le disque est-il partitionné malgré l’échec ?

J’ai une partition pour / et une autre pour /opt

En passant dans le shell, j’ai le contenu de ma clé dans /hd-media

Oui (quand l’étape preseed se passe bien)

Sinon, j’avance un peu plus :

Cette commande passe bien :

d-i preseed/late_command string \ in-target mkdir /etc/repo;

Cette commande ne passe pas (Echec de la commande…):

d-i preseed/late_command string \ in-target mkdir /etc/repo;\ in-target echo "deb file:///etc/ repo/" > /etc/apt/sources.list;

Un peu plus d’avancement. La séquence suivante passe bien :

d-i preseed/late_command string \ in-target mkdir /etc/repo;\ cp -r /hd-media/repo/* /target/etc/repo;\ echo "deb file:///tmp/ repo/" >> /target/etc/apt/sources.list;

J’ai ensuite la commande suivante qui reste bloquée à 26% (xxxx = mes packages):

d-i preseed/late_command string \ in-target aptitude update;\ in-target aptitude install xxxx;

Je pencherais donc pour un problème d’exécution d’aptitude.

Edit : Confirmé quand je bascule en shell dans le syslog, je vois des demandes de confirmation propre à l’installation d’un des package que je veux installer.

Bonjour,

J’ai finalement contourné mon problème en copiant les packages en local et en les installant (automatiquement) au premier boot de la machine.

Même si je pense que cette solution devrait marcher :

au lieu de

J’ai quand même une question supplémentaire :

Est-il possible d’ajouter une question “custom” au preseed ? (genre : “quel est ton prénom ?” ) et de stocker la réponse ? (dans mon cas, ce serait de copier celle-ci en local sur la /target ?