はじめに

こんにちは!今回はumountコマンドについて解説します。

umountは、マウント済みのファイルシステムをアンマウント(切断)するコマンドです。mountコマンドの逆の操作ですね。USBドライブを取り外す前とか、ストレージの接続を終了したい時に使うんです。

「パソコンからUSBを安全に取り外す」をコマンドでやるってイメージです。これもめっちゃ重要ですよ。


umountコマンドとは

umountは、マウント済みのファイルシステムをアンマウント(切断)する外部コマンドです。

Linuxでは、マウント中のファイルシステムに対するI/O操作は即座に実行されるわけではなく、バッファリングされています。そのため、デバイスを物理的に取り外す前にumountできちんとアンマウントする必要があります。データの破損を防ぐためにも重要なコマンドなんです。

umountを実行すると、キャッシュがディスクにフラッシュされ、ファイルシステムが切断されます。その後初めて、安全にデバイスを取り外したり、別の場所に再マウントできるわけです。


基本構文

1
umount [オプション] マウントポイント

または

1
umount [オプション] デバイス

マウントポイント(ディレクトリパス)またはデバイス名を指定してアンマウントします。


主なオプション

オプション 説明
-l lazy unmount(すぐにアンマウント表示するが、後で切断)
-f force unmount(強制的にアンマウント)
-r アンマウント失敗時に読み取り専用にする
-n /etc/mtabを更新しない
-v 詳細表示(verbose)
-a /etc/mtabのすべてをアンマウント
-t 指定されたファイルシステムタイプのみアンマウント

使用例

例1: 基本的なアンマウント

1
sudo umount /mnt/usb

実行結果:

1
(成功時は何も表示されない)

/mnt/usbにマウントされているファイルシステムをアンマウントします。これが最もシンプルな使い方です。

例2: デバイス名でアンマウント

1
sudo umount /dev/sdb1

実行結果:

1
(成功時は何も表示されない)

マウントポイントの代わりに、デバイス名を指定してアンマウント。結果は同じです。

例3: 詳細表示でアンマウント

1
sudo umount -v /mnt/usb

実行結果:

1
/mnt/usb: successfully unmounted

-vオプションで、アンマウント処理の詳細が表示されます。成功したかどうかが明確ですね。

例4: 強制的にアンマウント

1
sudo umount -f /mnt/stuck

実行結果:

1
(成功時は何も表示されない)

-fオプションで強制的にアンマウント。ファイルがまだアクセスされていてもアンマウントされます。ただし、データ破損のリスクがあるので慎重に。

例5: Lazy unmount(遅延アンマウント)

1
sudo umount -l /mnt/backup

実行結果:

1
(成功時は何も表示されない)

-lオプションで、すぐにマウントを外した状態にします。実際のI/O処理が終わるまで待つ必要がありません。NFSなどリモートマウントで便利です。

例6: アンマウント失敗時に読み取り専用化

1
sudo umount -r /mnt/data

実行結果:

1
(成功時は何も表示されない)

-rオプションで、アンマウント失敗時に読み取り専用モードに切り替わります。書き込みエラーを防げます。

例7: マウントポイント配下のサブディレクトリをアンマウント

1
sudo umount /mnt/backup/subfolder

実行結果:

1
umount: /mnt/backup/subfolder: not a mount point

実際にはマウントポイント自体を指定する必要があります。サブディレクトリでは機能しません。

例8: すべてのマウントをアンマウント

1
sudo umount -a -t ext4

実行結果:

1
(成功時は何も表示されない)

-a-t ext4を組み合わせて、すべてのext4ファイルシステムをアンマウント。システム全体のマウント整理に使えます。

例9: 複数のマウントポイントをアンマウント

1
sudo umount /mnt/usb /mnt/backup /mnt/external

実行結果:

1
(成功時は何も表示されない)

複数のマウントポイントを一度に指定できます。順番に処理されます。

例10: アンマウント前に確認

1
2
3
mount | grep /mnt/usb
sudo umount /mnt/usb
mount | grep /mnt/usb || echo "アンマウント成功"

実行結果:

1
アンマウント成功

アンマウント前後でmountコマンドで状態確認。スクリプトで信頼性を高めたい時に便利です。


Tips・注意点

アンマウント前にそのディレクトリにいないこと

1
2
cd /home
sudo umount /mnt/usb  # 成功

もしマウントポイント配下にいると、アンマウント失敗します。

1
2
cd /mnt/usb
sudo umount /mnt/usb  # 失敗

こういう時は別のターミナルでアンマウント、またはcdで別のディレクトリに移動してからアンマウントします。

オープンファイルがあるとアンマウント失敗

1
2
3
4
# ファイルを開いている状態でアンマウント試行
cat /mnt/usb/file.txt &
sudo umount /mnt/usb
# umount: /mnt/usb: target is busy

lsofで確認しましょう。

1
lsof /mnt/usb

マウント中のファイル削除は危険

1
2
3
# こんなことはしないこと
sudo umount -f /mnt/usb
rm -rf /mnt/usb/*

アンマウント直後に中身を削除するのは、データ破損のリスク。アンマウント後は触らないのが吉。

シャットダウン時は自動的にアンマウント

1
sudo shutdown -h now

Linuxの正常シャットダウンでは、自動的にすべてのファイルシステムがアンマウントされます。気にしなくて大丈夫。

アンマウント失敗時のトラブルシューティング

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. 現在のマウント状況を確認
mount

# 2. そのファイルシステムを使用しているプロセスを確認
lsof /mnt/usb

# 3. プロセスを終了
sudo kill -9 <PID>

# 4. 再度アンマウント試行
sudo umount /mnt/usb

実践的な使い方

USBドライブの安全な取り外し

1
2
3
sudo umount /mnt/usb
# または
sudo umount -v /mnt/usb

アンマウントが成功したら、実際にUSBを取り外します。これでデータ破損のリスクがなくなります。

バックアップ後のクリーンアップ

1
2
3
4
5
# バックアップ実行
sudo mount /dev/sdb1 /mnt/backup
sudo rsync -av ~/important/ /mnt/backup/important/
# バックアップ完了後、確実にアンマウント
sudo umount /mnt/backup

バックアップスクリプトの締めくくりにumount。これでデータが安全に外部ドライブに書き込まれます。

マウントしたNFSのアンマウント

1
sudo umount -l /mnt/nfs

リモートNFSマウントは-l(lazy)を使うと便利。ネットワーク遅延で待たされません。

ディスク整理スクリプト

1
2
3
4
#!/bin/bash
# 複数のバックアップドライブをアンマウント
sudo umount /mnt/backup1 /mnt/backup2 /mnt/backup3
echo "全バックアップドライブをアンマウント完了"

複数マウントポイントをまとめて処理。自動化スクリプトに組み込むと便利です。


まとめ

umountコマンドのポイント:

  • マウント済みのファイルシステムをアンマウント(切断)する外部コマンド
  • -l: lazy unmount(遅延アンマウント、リモートマウント向け)
  • -f: force unmount(強制的にアンマウント、リスクあり)
  • -r: アンマウント失敗時に読み取り専用化
  • -v: 詳細表示
  • マウントポイント配下にいるとアンマウント失敗
  • オープンファイルがあると失敗(lsofで確認)
  • よく使う組み合わせ: sudo umount, sudo umount -v, sudo umount -l

ストレージの接続・切断はLinuxの基本。mountでマウント、データ操作、umountでアンマウントという一連の流れを習慣にすることで、データを安全に守れますよ!