Linuxでファイルシステムをアンマウントしようとしたときに、よく遭遇するエラーがumount: /path: device is busy です。 これは「ファイルシステムがまだ利用中であり、アンマウントできない状態」を示しています。
本記事では、このエラーの発生原因を整理し、調査手順・安全確実な解除方法・誤爆リスクを避けるやり方を丁寧に解説します。
🔎 実務での切り分け順を知りたい方へ
ログ確認・リソース確認・ネットワーク確認など、Linux障害対応の基本フローを整理したまとめ記事はこちら。
▶ Linuxトラブルシューティング完全ガイド|症状別チェックリストと原因・対処の総まとめ
目次
- なぜ device is busy になるのか?
- 調査① lsof で開いているプロセスを特定
- 調査② fuser で PID を確認
- 安全なアンマウント方法(lazy / forced)
- 誤爆を避ける注意点
- FAQ
なぜ device is busy になるのか?
アンマウント対象のデバイス/マウントポイントが、まだプロセスから参照されているために発生します。 具体的には次のようなケースです:
- 該当ディレクトリ/サブディレクトリをカレントディレクトリとして開いているシェル
- そのディレクトリ配下のファイルを開いているプロセス
- ファイルを読んでいるコマンドや daemon
- mount namespace の競合
どれが参照しているかを見つけられないと、無理にアンマウントしようとしてシステムに悪影響を与える可能性があります。

調査① lsof で開いているプロセスを特定
lsof は “List Open Files” の略で、ファイルやディレクトリを開いているプロセスを一覧にします。
sudo lsof +D /mount/point
例:
sudo lsof +D /mnt/data
この結果にプロセスがあれば、そのプロセスがまだ参照中ということです。
さらに絞り込みで:
sudo lsof /dev/sdb1
のようにデバイスベースで確認することもできます。
調査② fuser で PID を確認
fuser はファイル/ディレクトリ/デバイスを使用中のプロセスID(PID)を返します。
sudo fuser -m /mount/point
sudo fuser -mv /mount/point
-m:マウントポイント単位
-v:詳細出力
PIDが分かれば kill 等で安全にプロセスを停止できます。
安全なアンマウント方法(lazy/unmount & forced)
① lazy unmount(安全な遅延アンマウント)
プロセスが開放されるのを待つ形でアンマウントします。
sudo umount -l /mount/point
これは「即座にマウントポイントをシェル上で切り離し、実際の閉塞はバックグラウンドで解放」を待つ方法です。
② forced オプション(強制アンマウント)
状況によっては、umount が強制オプションを受け入れる場合があります。
sudo umount -f /mount/point
※ これはデータ損失/破損リスクがあるため、先に lsof/fuser で状況を把握してから使うのが原則です。
誤爆を避ける注意点
- 現在のシェルがディレクトリを参照していないか
該当マウントポイントにいるシェルがあればcdして離脱する。 - 他ユーザーや daemon のプロセスが使用していないか
lsof/fuserで確認後、プロセス終了 or 再起動。 - lazy (-l) を使う場合
ディレクトリ構造は切り離すが、実ファイルの解放はバックグラウンドで発生するため、リブートやプロセス終了まで動作保証しない。
FAQ
Q1. umount で device is busy が出たらまず何をすべき?
まずは lsof +D /mount/point などでどのプロセスが参照しているかを確認し、そのPIDを安全に終了/切り離すことです。
Q2. lazy (-l) は無条件に安全?
基本的には安全ですが、プロセスが完全に停止するまで内部では参照が残る可能性があり、再起動を推奨するケースもあります。
Q3. 強制 (-f) はいつ使う?
ネットワークマウント(NFS)など、ネットワーク障害で hang した場合に使えますが、データ損失のリスクを考慮してから使用してください。
まとめ:
「umount: device is busy」は、単純なエラーに見えて、裏にはプロセス参照の状態や namespace の問題が潜んでいます。
まずは lsof や fuser で確実に根本原因を調査し、lazy アンマウントやプロセス終了を基本手順としてください。



