Parfois, quand je veux démonter un appareil, par exemple
sudo umount /dev/loop0
Je vais recevoir le message
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Je résout généralement ce problème en fermant une fenêtre de console (dans mon cas xfce4-terminal), puis umount
.
Que signifie ce problème? Existe-t-il une solution plus intelligente?
Réponses:
Cela signifie que certains processus ont un répertoire de travail ou un descripteur de fichier ouvert sous le point de montage. La meilleure chose à faire est de mettre fin au processus incriminé, de modifier son répertoire de travail ou de fermer le descripteur de fichier avant le démontage.
Il existe cependant une alternative sous Linux. L'utilisation d'
umount -l
appels permet un démontage "paresseux". Le système de fichiers sera toujours monté mais vous ne pourrez pas le voir ou l'utiliser, sauf pour les processus qui l'utilisent déjà. Lorsque le programme incriminé se termine (par quelque moyen que ce soit), le système "termine" le démontage du système de fichiers.la source
lsof
est probablement la meilleure façon.lsof | grep loop0
?Vous pouvez également utiliser
fuser
pour tuer tous les processus à l'aide du système de fichiers monté.Options:
Vérifiez par vous-même à expliquehell .
la source
Compte tenu de votre "solution habituelle", cela signifie que le shell que vous exécutez dans la fenêtre de votre console a un répertoire dans un système de fichiers sur ce périphérique comme répertoire de travail actuel.
Linux, et Unix en général, veulent absolument garder un système de fichiers monté si un processus a un répertoire de travail actuel dans ce système de fichiers.
Vous pouvez simplement utiliser
cd
dans la fenêtre de la console pour sortir d'un répertoire dans ou sous/mnt
plutôt que de tuer la fenêtre de la console et le shell qui y fonctionne.la source
J'ai découvert une situation qui peut interférer avec le démontage d'un appareil que je partagerai comme réponse même si cette question est très ancienne.
Si vous avez des partages NFS hébergés sur la machine et que l'un de ces partages NFS est soutenu par le périphérique que vous essayez de démonter, vous devrez arrêter de les partager (mieux vaut en arrêtant le service NFS, par exemple
sudo service nfs-kernel-server stop
sur les versions récentes d'Ubuntu ). Le serveur NFS peut ne pas apparaître dans lsof ou fuser, ce qui peut rendre le problème difficile à identifier.la source