Categories: linux

Linuxの「umount」コマンド徹底解説|デバイスの安全なアンマウント方法と注意点

Linuxを使っていると、USBメモリや外付けハードディスクなどのデバイスを扱う機会が多くなります。こうしたデバイスを安全に取り外すためには、「アンマウント」という操作が必要です。その際に使うのが umount コマンドです。
このコマンドを正しく使わないと、ファイルの破損やシステムへの悪影響が出ることもあります。この記事では、umount コマンドの基本的な使い方から、実行時の注意点、エラー対処法までを初心者にもわかりやすく解説していきます。


umountとは?|アンマウントの基本

umount(アンマウント)は、Linuxでマウントされたファイルシステムを切り離すためのコマンドです。
「マウント」とは、外部デバイス(USBメモリや外付けHDDなど)をファイルシステムに接続して利用可能にする操作を指します。umount はその逆、つまり接続を解除する操作です。

この処理を行うことで、デバイスの取り外しが安全に行えるようになります。書き込み中のデータが失われたり、ファイルシステムが壊れたりするのを防ぐためにも、正しいタイミングで umount を実行することが重要です。


基本的な使い方

書式

umount [マウントポイントまたはデバイス名]

例1:マウントポイントを指定してアンマウント

umount /mnt/usb

例2:デバイスファイルを指定してアンマウント

umount /dev/sdb1

マウントポイント、あるいはデバイスファイルのいずれかを指定することで、対象のデバイスをファイルシステムから安全に切り離します。


アンマウント前に確認しておきたいこと

アンマウントする前には、いくつかのチェックポイントがあります。これらを無視すると、アンマウントに失敗したり、最悪の場合データの破損を招いたりすることもあります。

1. ファイルやディレクトリが使用中でないか確認

アンマウントするデバイスにアクセスしているプロセスがあると、umount は失敗します。その際に便利なのが以下のコマンドです。

lsof +D /mnt/usb

このコマンドで、対象ディレクトリを使用しているプロセスを確認できます。使用中のプロセスがあれば、それを終了する必要があります。

2. 現在のディレクトリが対象マウントポイントでないか確認

自分自身のシェルが、アンマウントしようとしているディレクトリに居る場合、アンマウントはできません。cd で別の場所へ移動しましょう。

cd ~

強制的にアンマウントする方法(注意が必要)

どうしてもアンマウントできない場合には、-l(lazy)や -f(force)オプションを使用することも可能です。ただし、これらは慎重に使う必要があります。

-l(lazy unmount)

umount -l /mnt/usb

このオプションは、現在使用中のリソースが解放されたタイミングでアンマウントされる「遅延アンマウント」です。安全性は比較的高めですが、処理が遅れるため注意が必要です。

-f(force unmount)

umount -f /mnt/usb

強制アンマウントです。特にネットワークファイルシステム(NFS)でハングしてしまったときに使うことがありますが、ローカルディスクに対して使うとファイルシステムを壊す可能性があるので注意してください。


アンマウント失敗時のエラー例と対処法

エラー1:target is busy

umount: /mnt/usb: target is busy.

このエラーは、対象ディレクトリが使用中であることを示しています。lsoffuser を使って使用中のプロセスを調べましょう。

fuser -v /mnt/usb

出てきたプロセスIDを kill コマンドで終了させます。

kill -9 プロセスID

エラー2:not mounted

bashコピーする編集するumount: /mnt/usb: not mounted.

これは、指定したマウントポイントがそもそもマウントされていない場合に出るエラーです。現在のマウント状況は mount コマンドや findmnt で確認できます。

mount | grep /mnt/usb

umount後にマウント解除されたか確認する方法

アンマウントが正常に行われたかを確認するには、以下のような方法があります。

mountコマンドで確認

mount | grep /mnt/usb

結果に何も表示されなければ、マウントは解除されています。

dfコマンドで確認

df -h | grep /mnt/usb

同様に、表示されなければアンマウント成功です。


自動マウントされたデバイスのアンマウント

最近のLinuxディストリビューション(Ubuntuなど)では、デバイスが自動的にマウントされる場合があります。このとき、マウントポイントは通常 /media/ユーザー名/デバイス名 となっており、以下のように確認できます。

lsblk

アンマウントしたいデバイスのマウントポイントがわかったら、umount で通常通りアンマウントします。

umount /media/ユーザー名/デバイス名

スクリプト内でのumountの利用

定期的なバックアップ処理などで、スクリプトから自動的にアンマウントを行いたいこともあるでしょう。以下のようなスクリプト例が参考になります。

#!/bin/bash

MOUNTPOINT="/mnt/usb"

if mountpoint -q "$MOUNTPOINT"; then
umount "$MOUNTPOINT"
echo "アンマウント成功: $MOUNTPOINT"
else
echo "すでにアンマウントされています。"
fi

まとめ

umount コマンドは、Linuxにおけるデバイス管理で欠かせない基本操作のひとつです。マウントポイントやデバイスを適切に指定し、使用中でないことを確認してからアンマウントすることで、データの安全性を守ることができます。
もしアンマウントに失敗した場合も、lsoffuser などのツールを併用すれば、原因を突き止めて対処できます。強制アンマウントの前に、可能な限り通常手順での解除を心がけましょう。

Linux初心者の方も、この記事を参考に umount コマンドを正しく使いこなして、安全なシステム運用を行ってください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。