Forum Linux.debian/ubuntu MINT (dérivée) et installation par preseed

Posté par  . Licence CC By‑SA.
Étiquettes :
0
28
mai
2026

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  (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 :

     DISK_INFO=`{mathjax} (lsblk -d -o NAME,SIZE,MODEL | grep "`(basename $DISK)" | awk '{print $2, $3, $4, $5}')

    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

    la fenêtre de sélection du disque d'installation ?

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.