Bonsoir,
sur la base d'une MINT (légèrement) modifiée pour le projet NIRD j'essaye de bricoler un mécanisme d'installation le plus automatique possible. Testé sur machines réelles et en machine virtuelle, ça semble commencer à tomber en marche.
principe : un script bash permet, après un minimum d'interactivité, le lancement de l'insatll par ubiquity
Reste un point sur lequel je bloque : la fenêtre de sélection du disque d'installation apparait quoi que je fasse.
Est-ce que quelqu'un sait comment la contourner ?
Le script :
#/bin/bash
# Fichier et répertoire
SCRIPT_DIR="`{mathjax} (cd "`(dirname "${BASH_SOURCE[0]}")" && pwd)"
SEED_FILE="$SCRIPT_DIR/test2.seed"
if [ ! -f "$SEED_FILE" ]; then
echo "ERREUR : fichier $SEED_FILE introuvable (doit être dans le même répertoire)."
exit 1
fi
# détection du disque interne en exluant les clés USB etc.
DISK=`{mathjax} (lsblk -d -o NAME,TYPE,RM | grep "disk" | grep " 0`" | head -1 | awk '{print "/dev/"$1}')
if [ -z "$DISK" ]; then
echo "ERREUR : aucun disque interne détecté. Abandon."
exit 1
fi
DISK_INFO=`{mathjax} (lsblk -d -o NAME,SIZE,MODEL | grep "`(basename $DISK)" | awk '{print $2, $3, $4, $5}')
# Nom unique (précaution utile ?)
ALEA=$(head -c 3 /dev/urandom | xxd -p | tr '[:lower:]' '[:upper:]')
HOSTNAME="NIRD-$ALEA"
# Avertissement avec sauve qui peut
echo "Installation automatique de linux NIRD"
echo ""
echo " Disque cible : $DISK"
echo " ($DISK_INFO)"
echo " Nom provisoire du poste : $HOSTNAME"
echo ""
echo "ATTENTION : TOUTES LES DONNÉES SERONT EFFACÉES (mode bourrin)"
for i in 10 9 8 7 6 5 4 3 2; do
echo -ne " Démarrage dans $i secondes... [Ctrl+C pour annuler] \r"
sleep 1
done
echo -ne " Démarrage dans 1 seconde... [Ctrl+C pour annuler] \r"
sleep 1
echo ""
echo " Trop tard, c'est parti..."
echo ""
# nettoyage du disque
sudo swapoff -a 2>/dev/null
sudo umount ${DISK}* 2>/dev/null || true
sudo wipefs -a $DISK
sudo sgdisk --zap-all $DISK
sudo dd if=/dev/zero of=$DISK bs=1M count=100 2>/dev/null
sudo partprobe $DISK 2>/dev/null || true
sleep 2
# copie du preseed et edition du fichier pour le disque détecté + hostname
cp "$SEED_FILE" /tmp/preseed-auto.seed
sed -i "s|/dev/DISK|$DISK|g" /tmp/preseed-auto.seed
sed -i "s|HOSTNAME|$HOSTNAME|g" /tmp/preseed-auto.seed
# Chargement et lancement
sudo debconf-set-selections /tmp/preseed-auto.seed
sudo ubiquity --automatic gtk_ui
et le fichier test2.seed :
#! L10n
d-i debian-installer/locale string fr_FR
d-i time/zone string Europe/Paris
d-i console-setup/layoutcode string fr
# Codec non free
ubiquity ubiquity/use_nonfree boolean true
# passw demandé sur les postes réels
# à tester avec une vraie machine
# Clavier Fr
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string fr
# Disque d'nstallation : la chaine /dev/DISK sera remplacée à la volée
partman-auto partman-auto/method string regular
partman-auto partman-auto/init_automatically_partition select Guided - use entire disk
partman-auto partman-auto/disk string /dev/DISK
partman-lvm partman-lvm/device_remove_lvm boolean true
partman-lvm partman-lvm/confirm boolean true
partman-lvm partman-lvm/confirm_nooverwrite boolean true
partman-md partman-md/device_remove_md boolean true
partman-md partman-md/confirm_nooverwrite boolean true
partman partman/confirm boolean true
partman partman/confirm_nooverwrite boolean true
partman-partitioning partman-partitioning/confirm_new_label boolean true
partman-partitioning partman-partitioning/confirm_write_new_label boolean true
grub-installer grub-installer/bootdev string /dev/DISK
# compte utilisateur
d-i passwd/user-fullname string prn
d-i passwd/username string prn
d-i passwd/user-password password censuré
d-i passwd/user-password-again password censuré
# non ce n'est pas le vrai mot de passe et il y a moyen de faire ça propre en l'encodant
d-i passwd/auto-login boolean false
# nom provisoire du poste
d-i netcfg/get_hostname string HOSTNAME
# markdown
Posté par BAud (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 28 mai 2026 à 01:13.
utilise déjà Markdown avec la balise de code ```bash en passant une ligne, ça t'évitera le {mathjax} sur la ligne :
tu peux éditer ton entrée de forum pour corriger (il y a une autre ligne qui en bénéficiera)
ensuite : à quelle commande apparaît
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.