rbind マウント後の再帰マウント解除

rbind マウント後の再帰マウント解除

ルートを変更するときに、誰かが表示したときにすべてが正しい場所にあることを確認するために、-bindの代わりに-rbindを使用して/sysと/devをマウントする必要があります。

問題は削除したときに発生します。

単純な削除は常に失敗します。子供が設置されている場合は使用しているようです。

$ umount /mnt/chroot/sys
umount: /mnt/chroot/sys: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

別の考えられる解決策は、次のようにprocにマウントをリストし、それぞれをアンマウントすることです。

$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount

ただし、再帰マウントが実際にmtabに登録されていないため、これも失敗します。

/mnt/chroot/sys/kernel/security is not mounted (according to mtab)

おそらく、回避策は遅延除去を実行することですが、これは私にとって非常に危険なようです。

私が逃したよりも良い方法はありますか?

ベストアンサー1

この感じがぴったりだと思います -https://unix.stackexchange.com/a/264488/4319:

mount --rbind /dev /mnt/test
mount --make-rslave /mnt/test
umount -R /mnt/test

最初の2つのコマンドを2つの別々のコマンドとして扱うことが重要です。単一のマウント呼び出しで--rbind2 つのコマンドを結合しないでください。--make-rslave

そうでない場合、--make-rslaveその動作は望ましくないことです(そして成功しなかったものです)。

  • umount -l元の以前のマウントポイントにも影響します。
  • umount -R元の以前のマウントポイントで使用されている(開かれた)ファイルの影響を受けます。 (だから予想外…)

おすすめ記事