umount – le périphérique est occupé

Parfois, quand je veux démonter un appareil, par exemple

sudo umount /dev/loop0 

Je vais avoir 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ègle habituellement ce problème en fermant une window de la console (dans mon cas xfce4-terminal), puis je monte.

Que signifie ce problème? Y a-t-il une solution plus intelligente?

Cela signifie que certains process ont un directory de travail ou un handle de file ouvert sous le sharepoint assembly. La meilleure chose à faire est de mettre fin au process incriminé, de modifier son directory de travail ou de fermer le descripteur de file avant de le démonter.

Il existe une alternative sur Linux cependant. L'utilisation de umount -l appelle un déassembly "paresseux". Le système de files sera toujours monté, mais vous ne pourrez pas le voir ou l'utiliser, sauf pour les process qui l'utilisent déjà. Lorsque le programme incriminé sort (par tous les moyens), le système "finira" le déassembly du système de files.

Compte tenu de votre «solution habituelle», cela signifie que le shell que vous utilisez dans votre window de console possède un directory dans un système de files sur ce périphérique comme directory de travail actuel.

Linux et Unix en général, veulent très mal maintenir un système de files monté si un process a un directory de travail en cours dans ce système de files.

Vous pouvez simplement utiliser cd dans la window de la console pour sortir d'un directory dans ou sous /mnt plutôt que de tuer la window de la console, et le shell en cours d'exécution.

J'ai rencontré le même problème aujourd'hui, et j'ai réussi à le résoudre. mon problème est le résultat du assembly d'un directory dans mon directory de travail actuel, donc quand j'exécute "umount", c'est arrivé. le path vers la solution est de changer le directory courant, puis de lancer "umount ..". J'espère que ca fonctionne.

J'ai découvert une situation qui peut interférer avec le déassembly d'un appareil que je vais partager en tant que 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 ces partages NFS sont supportés par le périphérique que vous tentez de démonter, vous devrez cesser de les partager (mieux en arrêtant le service NFS, par exemple sudo service nfs-kernel-server stop sur les versions récentes d'Ubuntu). Le server NFS peut ne pas apparaître dans lsof ou fuser, ce qui peut rendre le problème difficile à identifier.