
Un umount qui répond « target is busy » arrive souvent après une intervention simple : un service doit être arrêté, un disque USB doit être retiré ou un volume de sauvegarde doit être démonté. Le noyau refuse parce qu’un processus utilise encore ce système de fichiers.
fuser permet d’identifier ce processus avant de tuer quoi que ce soit. Sur un point de montage valide, la commande liste les PID qui utilisent son système de fichiers.
Confirmer le point de montage avant fuser
Travaillez depuis un autre répertoire que le volume à démonter. Un shell placé dans /mnt/archives suffit à maintenir ce point de montage occupé.
Commencez par demander à findmnt quel système de fichiers porte réellement le chemin. Cette étape évite de lancer fuser sur un simple dossier situé sur la racine /.
cd /
findmnt -T /mnt/archives -o TARGET,SOURCE,FSTYPE,OPTIONS
La colonne TARGET doit désigner le point à démonter, par exemple /mnt/archives. Si la sortie renvoie /, le chemin n’est pas un volume distinct. Ne poursuivez pas avec une commande destinée à démonter un disque.
Avant une opération sur un serveur, contrôlez aussi le rôle du volume. Une sauvegarde active, une base de données ou un conteneur peuvent y écrire même si aucun terminal n’est ouvert.
- Gardez une session SSH ou console qui ne dépend pas du volume.
- Notez le service attendu, le point de montage et la fenêtre d’intervention.
- Vérifiez avec
findmntque le dossier correspond au point de montage attendu.
Le guide findmnt sous Linux aide à relire la source et le type du système de fichiers avant une intervention disque.
Lire les processus qui gardent le volume ouvert
Utilisez le point de montage exact avec -m. L’option -M ajoute une protection : fuser refuse la commande si l’argument n’est pas un point de montage réel.
sudo fuser -vmM /mnt/archives
La sortie peut contenir le nom d’utilisateur, un PID, le type d’accès et la commande. Un processus affiché avec un accès au répertoire courant indique souvent un terminal resté dans le volume. Un processus de service doit être relié à son unité systemd ou à son application avant toute action.
Le résultat ne dit pas automatiquement quel processus est légitime. Un agent de sauvegarde peut être actif pendant qu’un script oublié tourne depuis le même volume. La décision dépend du service attendu à ce moment-là.
Pour examiner un PID précis, complétez avec ps et regardez son unité systemd lorsque le processus dépend d’un service :
ps -fp 2481
sudo systemctl status sauvegarde.service
Remplacez 2481 et sauvegarde.service par les valeurs observées. Pour les fichiers, sockets et ports associés à un processus, l’article sur lsof complète bien ce diagnostic.
Arrêter le bon service avant umount
Quand vous avez identifié une unité systemd, arrêtez-la proprement. Cette méthode laisse au service le temps de fermer ses fichiers et d’écrire son état final.
sudo systemctl stop sauvegarde.service
sudo fuser -vmM /mnt/archives
sudo umount /mnt/archives
La seconde commande fuser doit ne plus afficher le processus du service arrêté. Si un autre PID reste présent, analysez-le à son tour au lieu de relancer umount en boucle.
fuser -k existe, mais ce n’est pas une réponse automatique à un volume occupé. Cette option envoie un signal aux processus trouvés et peut interrompre une sauvegarde, un traitement métier ou un shell d’un autre administrateur. Je choisirais l’arrêt applicatif ordonné tant que l’unité ou le script est identifiable. Une machine bloquée lors d’un arrêt contrôlé reste le cas où une action plus directe peut se discuter, avec une console et une procédure d’incident.
Vérifier que le volume a réellement disparu
Un umount silencieux indique seulement que la commande n’a pas retourné d’erreur. Relisez le chemin avec findmnt et contrôlez les derniers messages du noyau si le périphérique est amovible.
findmnt -T /mnt/archives
journalctl -k -n 20 --no-pager
Après un démontage réussi, findmnt -T /mnt/archives peut encore montrer le système de fichiers racine pour le dossier vide, mais il ne doit plus afficher l’ancienne source de volume sur ce point de montage. Pour un disque USB, attendez aussi que les écritures soient terminées avant de le débrancher.
Référence de comportement : manuel fuser de psmisc.