MENU
category

「umount が Target Is Busy で失敗する」時の対処法:徹底解説

Linux環境でファイルシステムをアンマウントしようとした際、「target is busy」というエラーに遭遇することがあります。このエラーは、対象のファイルシステムにアクセスしているプロセスが存在する場合に発生します。

この記事では、エラーの原因と解決方法を詳しく解説します。強制アンマウントの可能性も含め、最適な手順を確認しましょう。

強制アンマウントは可能?

答え:通常のファイルシステムではできません。

一部のファイルシステム(例えば、NFS領域)では -f オプションを使って強制アンマウントが可能です。しかし、通常のハードディスクに使用されるファイルシステム(例:XFSやEXT4など)では、このオプションは無効です。

では、どうすれば良いのでしょうか?答えはシンプルです。対象ファイルシステムへのアクセスを取り除くことが必要です。

エラーを解決する手順

以下の手順に従うことで、安全にアンマウントを完了することができます。

1. 「target is busy」エラーの確

まず、アンマウントを試みてエラーが発生することを確認します。

# umount <マウントポイント>
実行例:
# umount /mnt/mountpoint
umount: /mnt/mountpoint: target is busy.
(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))

このエラーメッセージが表示された場合、対象ファイルシステムにアクセスしているプロセスが存在しています。

2. アクセスしているプロセスの特定

lsof コマンドを使って、対象ファイルシステムにアクセスしているプロセスを特定します。

# lsof <マウントポイント>
実行例:
# lsof /mnt/mountpoint
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
tomcat   7555  root   cwd  DIR  253,1    4096    2   /mnt/mountpoint
この例では、tomcat プロセス(PID: 7555)が対象のファイルシステムを使用しています。

3. プロセスの停止

特定したプロセスを停止します。停止には以下の方法があります:

  1. 安全な停止方法を利用する
    例:systemctl stop <サービス名> を使用。
  2. 強制停止(kill コマンド)を使用する
    強制停止が必要な場合、以下のように実行します:
# kill <PID

実行例:

# kill 7555

4. プロセスが停止したことを確認

再度 lsof コマンドを実行し、対象のファイルシステムにアクセスするプロセスがなくなったことを確認します。

# lsof <マウントポイント>

何も表示されなければOKです。

5. 再度アンマウントを実行

プロセスが停止したら、再度アンマウントを試みます。

# umount <マウントポイント>

これで、エラーなくアンマウントが完了します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次