Skip to content

Instantly share code, notes, and snippets.

@atao
Created September 25, 2024 11:02
Show Gist options
  • Save atao/0ba328334d256473a12465d6e4138b4d to your computer and use it in GitHub Desktop.
Save atao/0ba328334d256473a12465d6e4138b4d to your computer and use it in GitHub Desktop.
Mount and dismount an encrypted disk with LUKS.
#!/bin/bash
# Variables
DEVICE="/dev/sda" # Remplacez par le chemin de votre disque chiffré
MOUNT_POINT="/mnt/DD" # Remplacez par le point de montage souhaité
CRYPT_NAME="DD" # Nom du volume chiffré
# Fonction pour monter le disque
mount_disk() {
# Vérifier si le point de montage existe, sinon le créer
if [ ! -d "$MOUNT_POINT" ]; then
mkdir -p "$MOUNT_POINT"
fi
# Déverrouiller le disque chiffré
echo "Déverrouillage du disque..."
sudo cryptsetup luksOpen "$DEVICE" "$CRYPT_NAME"
# Vérifier si le déverrouillage a réussi
if [ $? -ne 0 ]; then
echo "Erreur lors du déverrouillage du disque."
exit 1
fi
# Monter le système de fichiers
echo "Montage du disque..."
sudo mount /dev/mapper/"$CRYPT_NAME" "$MOUNT_POINT"
# Vérifier si le montage a réussi
if [ $? -ne 0 ]; then
echo "Erreur lors du montage du disque."
sudo cryptsetup luksClose "$CRYPT_NAME" # Fermer le disque si le montage échoue
exit 1
fi
echo "Disque monté avec succès sur $MOUNT_POINT."
}
# Fonction pour démonter le disque
umount_disk() {
# Vérifier si le point de montage est monté
if mountpoint -q "$MOUNT_POINT"; then
echo "Démontage du disque..."
sudo umount "$MOUNT_POINT"
# Vérifier si le démontage a réussi
if [ $? -ne 0 ]; then
echo "Erreur lors du démontage du disque."
exit 1
fi
else
echo "Le point de montage n'est pas monté."
fi
# Fermer le volume chiffré
echo "Fermeture du volume chiffré..."
sudo cryptsetup luksClose "$CRYPT_NAME"
# Vérifier si la fermeture a réussi
if [ $? -ne 0 ]; then
echo "Erreur lors de la fermeture du volume chiffré."
exit 1
fi
echo "Disque démonté et volume chiffré fermé avec succès."
}
# Vérifier les arguments
if [ "$#" -ne 1 ]; then
echo "Usage: $0 {mount|umount}"
exit 1
fi
# Exécuter la fonction appropriée
case "$1" in
mount)
mount_disk
;;
umount)
umount_disk
;;
*)
echo "Argument invalide. Utilisez 'mount' ou 'umount'."
exit 1
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment