URL:     https://linuxfr.org/forums/linux-debian-ubuntu/posts/mint-derivee-et-installation-par-preseed
Title:   MINT (dérivée) et installation par preseed
Authors: cévhé
Date:    2026-05-28T00:49:08+02:00
License: CC By-SA
Tags:    linux_mint et preseed
Score:   0


Bonsoir,

sur la base d'une MINT (légèrement) modifiée pour le [projet NIRD](https://nird.forge.apps.education.fr/) 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="$(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=$(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=$(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


