読み取り専用の再インストールを妨げるファイル/プロセスの識別

読み取り専用の再インストールを妨げるファイル/プロセスの識別

私のシステムはDebian Testを実行し、通常は読み取り/専用でインストールされます。

mount: / is busy最大の問題は、何かをインストールしたりシステムを更新したりするたびにファイルシステムを読み取り専用で再マウントできないことです(エラーが発生します。)。

使用されたコマンド:mount -o remount,ro /dev/mapper/sda9_crypt /

プロセスロックとファイルロックを検索してみましたが(lsof/ を使ってfuser)具体的に何を検索するのかわかりません。

読み取り専用モードでシステムを再インストールするために、更新後にシステムをリセットしたくありません。それで私はこれを達成するために終了しなければならない重要なプロセスを見つけました。

答え1

出力でlsof /書き込むために開いているファイル(危害以外にも列のwサフィックス)(deleted)FD/var/tmp/run

ファイルが削除されたが開いている場合、そのディレクトリエントリのみが実際に削除されます。ファイル自体は、ディレクトリエントリがない場合にのみ削除されます。そしてそれは開いていません。読み取り専用でマウントされたファイルシステムでは、削除の最後の部分は発生しません。したがって、半分削除されたファイルは、書き込み用に開かれたファイルのようにファイルシステムが読み取り専用で再マウントされるのを防ぎます。

答え2

出力を解析し、lsofデバイスに書き込み可能なファイル記述子を使用してプロセスをフィルタリングできます。私のシステムでは、FDは4番目の列で、サフィックスはworです。uこれは、ファイルがそれぞれ書き込みまたは読み取り+書き込み用に開かれていることを意味します。

lsof +f -- / | awk '$4 == "FD" || $4 ~ /[0-9][wu]$/'

テスト$4 == "FD"は中断することなく列ヘッダーを通過することです。

これは特定の実装に合わせて調整する必要がありますlsof。次の内容をお読みください。他のプログラムの出力より移植性の高いソリューションが必要な場合は、lsofのマニュアルページの該当するセクションを参照してください。

関連情報