umount:ターゲットが使用中です。

umount:ターゲットが使用中です。

以下をインストール/devし、すぐにアンインストールしようとしました。

$ sudo mount -o rbind /dev m
$ sudo umount m
umount: /tmp/m: target is busy.
$ sudo lsof m
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs  55 root  cwd    DIR    0,6     4420    2 m
kdevtmpfs  55 root  rtd    DIR    0,6     4420    2 m

マウントポイントにアクセスするプロセスを終了できることを読んでいfuserますが、この簡単な場合に何が起こっているのか理解したいと思います。出力によると、lsofマウントポイントを現在の作業ディレクトリ(cwd)として使用している人はいますか?

遅延削除を使用したくありません。

答え1

rbindファイルシステムとサブマウントをマウントしました。ファイルシステムをアンマウントするには、まずそのサブマウントをアンマウントする必要があります(サブマウントも繰り返しアンマウントする必要があります)。しかし、注意してください!

mount --make-rslave m
umount -R m

最初のコマンドがないと、すべてのサブインストールを削除する危険があります。源泉、インストールの伝播による。この場合、これはすべてのサブインストールを意味し、/dev実行中のシステムに悪影響を及ぼします;-)。

基本的に、マウントの伝播はあなたが落ちるのを待つ巨大な落とし穴です:-).バンドルマウントがデフォルトで無効になっていると良いでしょう。


kdevtmpfsdevtmpfsのメンテナンスはカーネルスレッドです。 devtmpfs がマウント解除されるのを防ぐことはできません。これは、カーネルスレッドが別々のインストール(バンドルインストールなど)で実行されるためです。元のマウントは表示されません。別々のインストール名前空間にあります。なぜkdevtmpfsそれが現れるのかを知りたい場合はlsof、おそらくそれを別の質問として扱うことができます。

関連情報