時にはデバイスを削除したい場合があります。
sudo umount /dev/loop0
メッセージを受け取ります
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
私は通常コンソールウィンドウ(私の場合はxfce4-terminal)を閉じますumount
。
この質問はどういう意味ですか?よりスマートな解決策はありますか?
答え1
これは、プロセスがマウントポイントの下に作業ディレクトリまたは開かれたファイルハンドルを持っていることを意味します。最善の方法は、削除する前に問題のあるプロセスを終了し、作業ディレクトリを変更するか、ファイルハンドルを閉じることです。
しかし、Linuxには代替手段があります。umount -l
「怠惰な」削除の呼び出しを使用してください。ファイルシステムはマウントされ続けますが、すでに使用されているプロセスを除いて、それらを表示または使用することはできません。問題のプログラムが何らかの方法で終了すると、システムはファイルシステムのマウント解除を「完了」します。
答え2
fuser
マウントされたファイルシステムを使用してすべてのプロセスを終了することもできます。
fuser -cuk /mnt
オプション:
-c
Same as -m option, used for POSIX compatibility.
-u, --user
Append the user name of the process owner to each PID.
-k, --kill
Kill processes accessing the file. Unless changed with -SIGNAL, SIGKILL is sent. An fuser process
never kills itself, but may kill other fuser processes. The effective user ID of the process
executing fuser is set to its real user ID before attempting to kill.kill.
-m NAME, --mount NAME
NAME specifies a file on a mounted file system or a block device that is mounted. All processes
accessing files on that file system are listed. If a directory file is specified, it is
automatically changed to NAME/. to use any file system that might be mounted on that directory.
自分で確認してくださいシェルの解釈。
答え3
端末の削除に干渉する可能性がある状況を発見しましたが、古い質問ですが、回答として共有します。
コンピュータがNFS共有をホストしていて、これらのNFS共有がアンマウントしようとしているデバイスでサポートされている場合は、共有を停止する必要があります。sudo service nfs-kernel-server stop
最新バージョンなど、NFSサービスを停止するのが最善です。 Ubuntu上級))。 NFS サーバーが lsof または fusionr に表示されないため、問題を特定するのが難しい場合があります。
答え4
「一般的な解決策」を考えると、これはコンソールウィンドウで実行されているシェルに、そのデバイスのファイルシステム上のディレクトリが現在作業ディレクトリにあることを意味します。
通常、LinuxおよびUnixシステムは、プロセスのファイルシステムに現在の作業ディレクトリがある場合は、ファイルシステムをマウントされたままにすることを強く好みます。
コンソールウィンドウとその中で実行されているシェルを終了する代わりに、コンソールウィンドウcd
でそれを使用してその中または下のディレクトリを終了できます。/mnt