以下をインストール/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
実行中のシステムに悪影響を及ぼします;-)。
基本的に、マウントの伝播はあなたが落ちるのを待つ巨大な落とし穴です:-).バンドルマウントがデフォルトで無効になっていると良いでしょう。
kdevtmpfs
devtmpfsのメンテナンスはカーネルスレッドです。 devtmpfs がマウント解除されるのを防ぐことはできません。これは、カーネルスレッドが別々のインストール(バンドルインストールなど)で実行されるためです。元のマウントは表示されません。別々のインストール名前空間にあります。なぜkdevtmpfs
それが現れるのかを知りたい場合はlsof
、おそらくそれを別の質問として扱うことができます。