デバイスのマウント解除を妨げるプロセスを確認するには?

デバイスのマウント解除を妨げるプロセスを確認するには?

時には、以下を削除したいと思います。USBデバイスしかし、エラーがumount /run/media/theDrive発生します。drive is busy

どのプロセスまたはプログラムがデバイスにアクセスしているかを確認するには?

答え1

lsof | grep /media/whateverマウントを使用するオブジェクトが何であるかを判断するために使用されます。

また、umount -lクリーンアップ中に新しいプロセスがドライブを使用できないようにするには、(遅延マウント解除)を検討してください。

答え2

ほとんどの場合、使用するのに最適なコマンドは次のとおりです。ラソフ(「SティーああペンFエアーズ")。

lsof +f -- /media/usb0

/media/usb0マウント解除するUSB​​ドライブまたは他のファイルシステムのマウントポイントはどこにありますか?+f --lsof に、後続の引数をマウント・ポイントとして処理するよう指示します。通常は(常にではありませんが)それを自分で管理するので、これもlsof /media/usb0有効です。これは、開かれたファイル(リンクされていないファイルも含む)、メモリマップされたファイル、現在のディレクトリ、およびより曖昧な用途を探します。他のユーザープロセスに関する情報を取得するには、rootとしてコマンドを実行する必要があります(一部のuniceはlsofrootとして実行する必要があると思います)。

lsofが見つけることができないいくつかの用途があります。これはリムーバブルメディアでは一般的ではありません。これには以下が含まれます。

  • /fooマウントポイント:/foo/barマウントポイントの場合、マウント解除できません。
  • /fooマウントされたデバイス:/foo/barマウントされたブロックデバイス、ループにマウントされた通常のファイル、またはLinuxバインドマウントのソースの場合は、マウント解除できません。
  • NFS エクスポート: lsof はカーネル NFS サーバーのエクスポートツリーを検出しません。

緊急事態に使用できるもう1つのコマンドはfusionrです。このコマンドは、ファイルが開いているデバイス上のプロセスのPIDを簡単に一覧表示します。

fuser -m /media/usb0

答え3

ファイルを開く

ファイルを開くプロセスが一般的な原因です。見せてください:

lsof +f -- <mountpoint or device>

/dev/<device>使用する代わりに使用すると利点があります /mountpoint。マウントポイントは後で消えたりumount -l、オーバーライドされたマウントによって隠れることがあります。

fuserlsofまた、動作しますが、より便利な出力があると思います。しかし、fuserドラマを起こす過程をなくし、人生を生き続けることができるときに便利です。

ファイルの一覧表示<mountpoint>(上記の警告を参照):

fuser -vmM <mountpoint>

書き込み用にファイルを開いたプロセスのみが対話的に終了します。

fuser -vmMkiw <mountpoint>

mount -o remount,ro <mountpoint>読み取り専用モードで再マウント()した後は、残りのすべてのプロセスを安全に終了できます。

fuser -vmMk <mountpoint>

マウントポイント

犯人はカーネル自体である可能性があります。マウントするファイルシステムの上に別のファイルシステムをマウントすると、umount問題が発生する可能性があります。調べる:

mount | grep <mountpoint>/

ループバックインストールの場合(Steven Kitに感謝します)、次の出力も確認してください。

losetup -la

匿名インデックスノード(Linux)

匿名インデックスノード次のように作成できます。

  • 一時ファイル(open含むO_TMPFILE
  • inotifyより
  • [イベントFD]
  • 【事件調査】
  • 【時間制労働者】

これらは最も把握するのが難しいポケモンタイプであり、lsof熱で( TYPEa_inodelsofマニュアルページ)。

には表示されないので、lsof +f -- /dev/<device>以下が必要です。

lsof | grep a_inode

匿名 inode を持つプロセスを終了するには、次を参照してください。現在のinotify時計のリスト(パス名、PID)

inotifyビュー(Linux)

このコメント理由を説明するinotify してはいけない除去を防ぐが、このメモ自分のいる状況を説明する〜する:

vx_softcnt_flush()削除操作中に通話が中断されることがあります。停止は、inotify watchdogがi_count変数を増やし、v_os_hold valueinotify watchdogが保留を解除するまで保留を高くするために発生します。

答え4

GNOMEを使用している場合、Nautilusを介して削除すると、ドライブにまだ使用中のプロセスと使用中のファイルを知らせるメッセージが表示されます。

代替テキスト

関連情報