web-dev-qa-db-ja.com

ファイルシステムを強制的にアンマウントする方法(手動で調査せずにビジー状態になっている理由)

Linuxでファイルシステムをアンマウントするには、なぜそれがビジーであるかを調査しないのですか?

1つのコマンドで実行したい。そのファイルシステム、サブマウント、コンテナ(lxc-execute -n qqq <command>)などを使用するアプリケーションを処理する必要があります。

単に「アンマウント。異議なし!」特別なカーネルパッチまたは構成が許可されます。

ファイルシステムは本当にアンマウントする必要があるので、umount -lは確かにオプションではありません。たとえば、cryptsetup removeの場合(BTW強制的にcryptsetup remove? 更新:cryptsetup luksSuspend、ただしLUKSでない場合はcryptsetup luksResumeを実行できません)。

そのファイルシステムのすべてのファイルハンドルを無効にする方法は?

私が知っている唯一の信頼できる方法は、Fuseを介してファイルシステムをマウントすることです(Fuseをアンマウントしても、プロセスを強制終了できるため、通常は問題はありません)。

追伸マウントfuserlsof | grepcat /proc/*/mounts | grep、および機能していない「badfsパッチ」はすでに知っています。

13
Vi.

umount --forceまたはumount -f(同等)

それが失敗した場合は、次を使用します。

umount --lazyまたはumount --l(同等)

" lazy "オプションは、「ファイルシステムをファイルシステム階層から切り離し、ビジー状態でなくなるとすぐにファイルシステムへのすべての参照をクリーンアップします(カーネル2.4.11以降が必要です。)」これはmightが不安定になる原因になりますが、マウントが解除されます。ドライブを使用するすべてのプログラムがクラッシュする可能性があります。

3
Freedom_Ben

Magic SysRq key コンボを使用します: Alt+SysRq+u

最初に緊急同期を行う必要があることに注意してください。 Alt+SysRq+s

また、一部の(特に新しい)キーボードでは、 PrtSc のではなく SysRq

3
sml

1つのコマンドでこれを行う方法はないと思います。 umount -fは、実際には期待したほどスムーズに動作しません。他のマウントの下にサブマウントがある場合、それらのマウントをランダムな順序でアンマウントして、それらがダウンすることを期待することはできません。

しかし、心配する必要はありません。これをすべて1つのコマンドにする方法は1つです。必要なプロセスを強制終了し、コンテナー、サブマウントをアンマウントし、最後に他のマウントをアンマウントするシェル/ Perlスクリプトを作成します。その後、オンデマンドでスクリプトを呼び出すことができます。最初はそれはあなたにとってより多くの仕事ですが、スクリプトを機能させると、すべてが子供の遊びです。 :)

1
umount -f

ファイルシステムがビジー状態のときに強制的にアンマウントするために使用できます。

1
lime-like