diff --git a/content/posts/demonter-un-disque-distant-apres-erreur-reseau.md b/content/posts/demonter-un-disque-distant-apres-erreur-reseau.md new file mode 100644 index 0000000..7658cc8 --- /dev/null +++ b/content/posts/demonter-un-disque-distant-apres-erreur-reseau.md @@ -0,0 +1,60 @@ +--- +title: Démonter un disque distant après une erreur réseau +date: 2020-05-30 +author: motius +template: post +tags: sshfs,réseau,umount,fusermount +--- + +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 : + +```bash +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 : + +```bash +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 : + +```bash +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 : + +```bash +# 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