タイトル: mount ファイルシステムのマウント
SEOタイトル: Linuxのmountコマンドの使い方|ファイルシステムのマウントと確認・fstab
mount は、ストレージデバイスやファイルシステムを、Linux のディレクトリツリー上の特定の場所(マウントポイント)に接続して読み書きできるようにするコマンドである。USB メモリやハードディスクのパーティション、ISO イメージ、ネットワーク上の共有などを、`/mnt/usb` のようなディレクトリ配下につなぐことで、通常のファイルとして扱えるようになる。マウントやアンマウントの操作には、通常 root 権限(管理者権限)が必要となる。
| この記事の要点 |
|---|
|
マウントとは
Linux では、すべてのファイルやディレクトリが一本のツリー構造(ルート / を頂点とする階層)にまとめられている。新しいディスクや USB メモリを接続しただけでは、その中身にツリー上からアクセスすることはできない。デバイス上のファイルシステムを、ツリー上の特定のディレクトリ(マウントポイント)に「接続」する操作がマウントである。
たとえば USB メモリを /mnt/usb にマウントすると、USB メモリ内のファイルは /mnt/usb/ 配下のファイルとして見えるようになる。逆に接続を解除する操作をアンマウントと呼び、umount コマンドで行う。
基本的な使い方
もっとも基本的な形は、マウントするデバイスと、接続先のディレクトリ(マウントポイント)を順に指定する形である。マウントポイントとなるディレクトリは、あらかじめ作成しておく必要がある。
mount デバイス マウント先ディレクトリ |
たとえば、パーティション /dev/sdb1 を /mnt/data にマウントする例は次のとおり。多くの環境では、ファイルシステムの種類を明示しなくても自動的に判別される。
# マウントポイントを作成(初回のみ) mkdir -p /mnt/data # マウント mount /dev/sdb1 /mnt/data |
マウント/アンマウントは原則として root 権限で実行する。一般ユーザーで実行する場合は sudo mount ... のように sudo を付ける。デバイス名(/dev/sdb1 など)は、後述の lsblk や findmnt で確認できる。
現在のマウント状況を確認する
どのデバイスがどこにマウントされているかを確認するには、主に次の 3 つの方法がある。
| コマンド | 用途 |
|---|---|
mount(引数なし) | 現在マウントされている一覧を表示する。デバイス・マウントポイント・種類・オプションが行ごとに並ぶ。 |
findmnt | マウント状況をツリー形式で見やすく表示する。findmnt /mnt/data のように対象を絞ることもできる。 |
df -h | マウント済みファイルシステムの容量・使用量・空きを人間が読みやすい単位で表示する。 |
lsblk | ブロックデバイス(ディスク・パーティション)の一覧とマウントポイントを階層表示する。 |
引数なしの mount は出力が多くなりがちなため、特定のデバイスやマウントポイントを調べたいときは findmnt や lsblk が見やすい。
findmnt df -h lsblk |
主要なオプション
mount には多数のオプションがあるが、よく使われるものを以下にまとめる。
| オプション | 説明 |
|---|---|
-t 種類 | ファイルシステムの種類を明示する(例: ext4、xfs、vfat、ntfs、iso9660、nfs)。省略時は自動判別される。 |
-o オプション | マウントオプションをカンマ区切りで指定する。下表参照。 |
-a | /etc/fstab に記載されたエントリをまとめてマウントする。 |
-r | 読み取り専用でマウントする(-o ro と同等)。 |
--bind | 既存ディレクトリを別のディレクトリにも見えるようにマウントする。 |
-o で指定する代表的なマウントオプションは次のとおり。複数指定する場合は -o ro,noexec のようにカンマで区切る。
| オプション | 説明 |
|---|---|
ro / rw | 読み取り専用 / 読み書き可能。多くの環境で rw が既定。 |
noexec | そのファイルシステム上のプログラム実行を禁止する。 |
nosuid | setuid / setgid ビットを無視する。 |
nodev | デバイスファイルを無効化する。 |
loop | ISO などのイメージファイルをループバックデバイス経由でマウントする。 |
remount | マウント済みのものを再マウントしてオプションを変更する(例: ro から rw へ)。 |
--bind(ディレクトリの別名マウント)
--bind は、既存のディレクトリツリーの一部を別の場所にも見えるようにする。コピーではなく同じ実体を指すため、どちらから変更しても内容は共通になる。
mount --bind /var/www/data /home/user/data |
ループバック(イメージファイルのマウント)
ISO イメージやディスクイメージのファイルは、-o loop を付けることでファイルのまま中身を参照できる。新しめの環境では -o loop を省略しても自動的にループバック扱いになる場合が多い。
mount -o loop ubuntu.iso /mnt/iso |
アンマウント(umount)
マウントを解除するには umount を使う。デバイス名でもマウントポイントでも指定できる。コマンド名が「unmount」ではなく umount(n がない)である点に注意。
# マウントポイントを指定 umount /mnt/data # デバイスを指定してもよい umount /dev/sdb1 |
そのファイルシステム内のファイルを開いているプロセスがあったり、いずれかのプロセスのカレントディレクトリがそこにあると、「target is busy」として解除に失敗する。どのプロセスが使用中かは lsof や fuser で調べられる。
# 使用中のプロセスを確認 lsof /mnt/data fuser -vm /mnt/data |
/etc/fstab による永続化(概要)
mount コマンドで行ったマウントは、再起動すると失われる。再起動後も自動的にマウントしたい場合は、設定ファイル /etc/fstab にエントリを記述する。各行は空白区切りで 6 つのフィールドからなる。
/dev/sdb1 /mnt/data ext4 defaults 0 2 |
| フィールド | 意味 |
|---|---|
| 1. デバイス | マウントするデバイスファイル名。/dev/sdb1 のほか、UUID=... やラベルでの指定が安定して推奨される。 |
| 2. マウントポイント | 接続先ディレクトリ(例: /mnt/data)。 |
| 3. ファイルシステム | 種類(ext4、xfs、vfat、nfs など)。自動判別させる場合は auto。 |
| 4. オプション | マウントオプションをカンマ区切りで指定(例: defaults、ro、noexec)。 |
| 5. dump | dump によるバックアップ対象なら 1、対象外なら 0。通常は 0。 |
| 6. pass(fsck順) | 起動時の fsck チェック順序。ルートは 1、その他は 2、チェック不要なら 0。 |
デバイス名(/dev/sdb1 など)は接続順で変わることがあるため、/etc/fstab では UUID での指定が安定する。UUID は blkid や lsblk -f で確認できる。記述後に mount -a を実行すると、再起動せずに /etc/fstab の内容を反映できる。
# UUID を確認 lsblk -f # fstab の内容を反映 mount -a |
実例
USB メモリをマウントする
USB メモリを接続したら、まず lsblk でデバイス名を確認し、マウントする。FAT32 形式なら種類は vfat となることが多い。
lsblk mkdir -p /mnt/usb mount /dev/sdc1 /mnt/usb # 使い終わったら umount /mnt/usb |
ISO イメージをマウントする
mkdir -p /mnt/iso mount -o loop image.iso /mnt/iso |
NFS 共有をマウントする
ネットワーク上の NFS サーバーが公開しているディレクトリをマウントする例。クライアント側に NFS 用パッケージ(nfs-common など)が必要な場合がある。
mount -t nfs 192.168.1.10:/export/share /mnt/nfs |
主なファイルシステムの種類
-t や /etc/fstab で指定するファイルシステムの種類のうち、よく使われるものを以下にまとめる。種類が分からない場合は、多くの環境で自動判別されるため省略するか auto を指定すればよい。
| 種類 | 主な用途 |
|---|---|
ext4 | 多くの Linux ディストリビューションで標準的に使われるファイルシステム。 |
xfs | 大容量・高負荷環境で採用されることが多いファイルシステム。 |
vfat / exfat | USB メモリや SD カードでよく使われる FAT 系。OS をまたいでやり取りしやすい。 |
ntfs | Windows のディスクで使われる形式。Linux からも読み書きできる場合が多い。 |
iso9660 | CD/DVD や ISO イメージで使われる形式。読み取り専用。 |
nfs / cifs | ネットワーク共有。nfs は主に UNIX 系、cifs は Windows 共有(SMB)向け。 |
落とし穴・注意点
| 注意点 | 内容 |
|---|---|
| マウント先に既存ファイルがある | 中身のあるディレクトリにマウントすると、元のファイルはマウント中だけ隠れて見えなくなる(消えるわけではなく、アンマウントすると再び現れる)。空のディレクトリをマウントポイントにするのが安全。 |
| umount できない(busy) | そのファイルシステムを使用中のプロセスがあると解除できない。lsof や fuser で使用中のプロセスを特定し、終了させるか、自身のカレントディレクトリをそこから移動する。 |
| fstab の誤記で起動不可 | /etc/fstab に誤った記述があると、起動時のマウントに失敗して通常起動できなくなることがある。編集後は再起動前に mount -a で検証する。デバイス名の変動を避けるため UUID 指定を推奨。 |
| アンマウント前の取り外し | USB メモリなどをアンマウントせずに物理的に取り外すと、書き込み途中のデータが失われたり、ファイルシステムが破損することがある。必ず umount してから取り外す。 |
| 権限不足 | マウント/アンマウントには通常 root 権限が必要。一般ユーザーで実行すると失敗するため、sudo を付けるか root で実行する。 |
よくある質問
Q. mount と umount で「permission denied」や失敗が出ます。
A. マウント関連の操作は基本的に root 権限が必要です。sudo mount ... のように sudo を付けて実行してください。/etc/fstab に user オプションを記述したエントリは、例外的に一般ユーザーでもマウントできます。
Q. デバイス名(/dev/sdb1 など)はどう調べればよいですか。
A. lsblk でブロックデバイスとパーティションの一覧を、lsblk -f や blkid でファイルシステムの種類や UUID を確認できます。接続前後で lsblk の出力を比べると、新しく増えたデバイスを特定しやすくなります。
Q. mount -a を実行しても再起動すると元に戻ってしまいます。
A. mount -a は /etc/fstab の内容を反映するコマンドであり、/etc/fstab 自体に該当エントリが書かれていなければ永続化されません。コマンドラインで mount デバイス マウント先 を実行しただけのマウントは一時的なものなので、再起動後も維持したい場合は /etc/fstab に記述してください。