diff --git a/install.sh b/install.sh index 230ddc5..2672fa9 100644 --- a/install.sh +++ b/install.sh @@ -50,26 +50,33 @@ else fi echo "[INFO] Nettoyage nucléaire de $DISK et démontage forcé..." +# Tuer tous les processus qui pourraient utiliser /mnt fuser -km /mnt 2>/dev/null || true sleep 1 -umount /mnt/boot 2>/dev/null || true -umount /mnt 2>/dev/null || true +# Démonter /mnt récursivement et de manière "paresseuse" (lazy) au cas où une ancienne install aurait planté +umount -R /mnt 2>/dev/null || true +umount -l /mnt 2>/dev/null || true +# Boucler pour démonter TOUTES les partitions du disque cible de force for part in ${DISK}*; do - umount "$part" 2>/dev/null || true + umount -l "$part" 2>/dev/null || true done +# Désactiver les swaps et les mappings swapoff -a 2>/dev/null || true dmsetup remove_all 2>/dev/null || true +# Nettoyer les signatures wipefs -a -f "$DISK"* 2>/dev/null || true wipefs -a -f "$DISK" 2>/dev/null || true +# Détruire physiquement les tables GPT dd if=/dev/zero of="$DISK" bs=1M count=10 conv=fsync 2>/dev/null || true DISK_SIZE_SECTORS=$(blockdev --getsz "$DISK") dd if=/dev/zero of="$DISK" bs=512 count=10 seek=$((DISK_SIZE_SECTORS - 10)) conv=fsync 2>/dev/null || true +# Forcer la relecture partprobe "$DISK" 2>/dev/null || true blockdev --rereadpt "$DISK" 2>/dev/null || true udevadm settle