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を使用しているプロセスを表示 |


コメント