Démonter un disque distant après une erreur réseau

Bonjour !

Aujourd'hui, un micro tutoriel d'administration système pour gérer des problèmes de déconnexion du réseau.

J'utilise sshfs afin de monter un disque distant. Ça me permet d'avoir de la synchronisation de données sur un seul disque dur de référence, qui reste solidement attaché à un serveur. Il m'est donc inutile de brancher et débrancher le disque, et de le déplacer.

Ce programme s'utilise ainsi :

sshfs user@remote:/chemin/du/répertoire/distant /mnt/chemin/du/répertoire/local

Note : il vous faudra avoir les droits d'écriture sur le répertoire local sur lequel vous montez le disque distant.

Et pour le démonter, j'utilise :

fusermount -u /mnt/chemin/du/répertoire/local

Cette commande peut échouer pour plusieurs raisons, notamment s'il y a toujours un programme qui utilise le disque distant. Ça peut être aussi bête que d'essayer de démonter le répertoire depuis un shell (bash, zsh) dont le répertoire courant est dans l'arborescence sous le disque distant.

Le message d'erreur ressemble à ceci :

fusermount: failed to unmount /mnt/chemin/du/répertoire/local: Device or resource busy

Il suffit d'utiliser la commande lsof (list open files) pour savoir quels programmes utilisent encore le disque distant de cette manière :

lsof | grep /mnt/chemin/du/répertoire/local

Mais ! mais mais, il peut arriver que la connexion réseau se coupe (ou que votre serviteur déplace son ordinateur hors de portée du Wi-Fi, il lui arrive d'être distrait...)

Dans ce cas, on peut essayer de recourir à umount en tant qu'utilisateur root, si on lui passe les bonnes options, que voici :

# Lazy unmount. Detach the filesystem from the file hierarchy now, and clean up all
# references to this filesystem as soon as it is not busy anymore.
umount -l /mnt/chemin/du/répertoire/local 

# StackOverflow suggère aussi :
# https://stackoverflow.com/questions/7878707/how-to-unmount-a-busy-device
umount -f /mnt/chemin/du/répertoire/local
# mais la page de manuel indique que cette option est utile pour les disques NFS.

Joyeux code !

Motius