Linux で umount した時に「デバイスを使用中です」と言われる時

Linux で USB とか CD をマウントした後に,umount でアンマウントしようとした時に,時々こういわれます.

# umount /mnt
umount: /mnt: デバイスを使用中です

明らかにマウント先のファイルを使用している場合はわかるのですが,こちらとしては使用しているつもりはないのにこういわれることが時々あります.
しかし,こういわれる原因の多くは,自分が shell 上でマウント先のディレクトリにいる場合が多いです.

まぁ,わかりやすいのはターミナルやファイルブラウザ等を全部消して umount したら,まぁ消えると思いますが,自分ではない他の誰かがマウント先のファイルを使用していたり,マウント先のディレクトリ内にいたりすると同様の理由でアンマウントできません.

そういう時は,fuser を使うと誰が使っているかわかるみたいです.

# fuser -mv /mnt

USER PID ACCESS COMMAND
/mnt root 1234 ..... zsh
/mnt tatsuko 12345 ..... zsh

上記の USER の人が プロセス番号 PID で COMMAND のコマンドを動かしていることがわかるので,USER の人にコマンド止めてもらうか,最悪 kill や killall でプロセス/ユーザを切ると,無事アンマウントできると思います.


ちなみに先ほど私も「デバイスを使用中です」と怒られました.
私の場合,よく su を使う方なのですが,一度一般ユーザで /mnt 以下に入った後に su で root になっていたらしく,一見目に見えない一般ユーザでのデバイスの使用でひっかかっていた様でした.