61 lines
2.3 KiB
Markdown
61 lines
2.3 KiB
Markdown
|
---
|
||
|
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
|