#!/bin/bash # Variables NFS_SERVER="nfs.lan:/USBStartKey/" MNT_POINT_NFS="/mnt/nfs" IMAGE_PATH="$MNT_POINT_NFS/USBStartKey.img" LOOP_DEVICE="" MNT_POINT_IMG="/mnt/img" # Fonction pour monter les systèmes de fichiers mount_filesystems() { # Montage des systèmes de fichiers et du périphérique loop echo "Montage des systèmes de fichiers..." # Création des points de montage si ils n'existent pas echo "Création des points de montage..." mkdir -p "$MNT_POINT_NFS" if [ $? -ne 0 ]; then echo "Échec de la création du point de montage NFS." exit 1 fi mkdir -p "$MNT_POINT_IMG" if [ $? -ne 0 ]; then echo "Échec de la création du point de montage de l'image." exit 1 fi # Montage du système de fichiers NFS echo "Montage du système de fichiers NFS..." mount.nfs "$NFS_SERVER" "$MNT_POINT_NFS" if [ $? -ne 0 ]; then echo "Échec du montage du système de fichiers NFS." exit 1 fi # Création du périphérique loop echo "Création du périphérique loop..." LOOP_DEVICE=$(losetup --show -P -f "$IMAGE_PATH") if [ $? -ne 0 ]; then echo "Échec de la création du périphérique loop." umount "$MNT_POINT_NFS" exit 1 fi # Montage de l'image echo "Montage de l'image..." mount "${LOOP_DEVICE}p1" "$MNT_POINT_IMG" if [ $? -ne 0 ]; then echo "Échec du montage de l'image." losetup -d "$LOOP_DEVICE" umount "$MNT_POINT_NFS" exit 1 fi echo "Systèmes de fichiers montés avec succès." } # Fonction pour démonter les systèmes de fichiers umount_filesystems() { # Démontage des systèmes de fichiers et déconnexion du périphérique loop echo "Démontage des systèmes de fichiers..." # Démontage de l'image echo "Démontage de l'image..." umount "$MNT_POINT_IMG" if [ $? -ne 0 ]; then echo "Échec du démontage de l'image." exit 1 fi # Déconnexion du périphérique loop echo "Déconnexion du périphérique loop..." losetup -D if [ $? -ne 0 ]; then echo "Échec de la déconnexion du périphérique loop." exit 1 fi # Démontage du système de fichiers NFS echo "Démontage du système de fichiers NFS..." umount "$MNT_POINT_NFS" if [ $? -ne 0 ]; then echo "Échec du démontage du système de fichiers NFS." exit 1 fi # Suppression des points de montage echo "Suppression des points de montage..." if ! rmdir "$MNT_POINT_NFS"; then echo "Échec de la suppression du point de montage NFS." fi if ! rmdir "$MNT_POINT_IMG"; then echo "Échec de la suppression du point de montage image." fi echo "Systèmes de fichiers démontés avec succès." } # Vérification de l'état des points de montage if mountpoint -q "$MNT_POINT_NFS" && mountpoint -q "$MNT_POINT_IMG"; then umount_filesystems else mount_filesystems fi