【Ubuntu】ディスクをアンマウントできない問題への対処法(target is busy)

未分類

Ubuntu(Linux)でディスクを切断しようとした際、target is busyといった表示が出てアンマウントできずに詰まったので、対処法をまとめます。

こんな人におすすめ
  • umountコマンドがうまくいかない
  • Ubuntuでディスクのアンマウントがうまくいかない。

ディスクをアンマウントできない原因

結論、なんらかのプロセスがディスクを使用していることが原因です。

開いているファイルやプログラムがわかる場合、全ての関連するファイルを閉じ、プログラムを停止してから再度試しましょう。

ディスクを使用しているプロセスの特定方法

どのプロセスがディスクを使用しているかわからないことがありアンマウントできないことがよくあります。

以下のプログラムをターミナルで実行することで関連するプロセスを特定することができます。

sudo lsof <<targetとなるディスクのパス>>

上記コマンドによって、関連するコマンド、プロセスID、ユーザーが表示されます。

プロセスを特定できたら、プロセスを停止します。

強制的にプロセスを停止させる場合は以下のようなコマンドを用いることもできます。

※自己責任にてお願いします。

kill <<プロセスID>>

ディスクのアンマウント方法

GUIでdiskアプリを用いてアンマウントすることもできますが、ここではコマンドで行う方法を紹介します。

以下のコマンドを入力してアンマウントを行います。

sudo umount <<targetとなるディスクのパス>>

lsofコマンドについて

今回ディスクを使用しているプロセスの特定に用いたlsofについて簡単にまとめます。

lsof(List Open Files)は、Linux系OSにおいて開いているファイルとそれを使用しているプロセスを確認するためのコマンドです。

以下のような用途が例として挙げられます。

  • 特定のファイルを使用しているプロセスの特定
  • ディスク使用量が多いプロセスの調査
  • 使用中のポート番号の確認
  • アンマウントできない原因調査(まだ使用中のファイルがあるか)

基本的な使い方

単純にオプションなしで実行した場合、実行中の全てのプロセスが開いているファイルを表示することができます。

sudo lsof

よく使うオプション例

option説明
lsof /path/to/file指定したファイルを開いているプロセスを表示
lsof +D /path/to/dir指定ディレクトリ配下のファイルを開いているプロセスを表示
lsof -p PID指定ディレクトリ配下のファイルを開いているプロセスを表示
lsof -u username指定ユーザーが開いているファイルを表示
lsof -iネットワーク関連のファイルを表示
lsof -i :80ポート80を使用しているプロセスを表示

コメント

タイトルとURLをコピーしました