mountコマンドとは?Linuxでファイルシステムをマウントする方法

Linux

LinuxでディスクやUSBメモリ、ISOファイルなどを特定のディレクトリから使えるようにしたいときは、mountコマンドを使用します。

Linuxでは、Windowsのようにドライブ文字でディスクを扱うのではなく、ファイルシステムをディレクトリツリーのどこかへ接続して利用します。

この「ファイルシステムをディレクトリへ接続する操作」をマウントと呼びます。

この記事では、Linux初心者でも実際に操作できるように、mountコマンドの基本構文、マウントポイントの作成、デバイス名やUUIDを指定したマウント方法、読み取り専用マウント、ISOファイルのマウント、/etc/fstabとの関係、よくあるエラーまで実例付きで解説します。

  1. mountコマンドとは
  2. マウントとは
  3. mountコマンドの基本構文
  4. 現在マウントされている一覧を確認する方法
  5. マウント前にディスク構成を確認する
  6. マウントポイントを作成する方法
  7. デバイス名を指定してマウントする方法
  8. ファイルシステム種類を指定してマウントする方法
  9. UUIDを指定してマウントする方法
  10. 読み取り専用でマウントする方法
  11. よく使うマウントオプション
  12. ISOファイルをマウントする方法
  13. bindマウントを使う方法
  14. tmpfsを一時的にマウントする方法
  15. マウントを解除する方法
  16. /etc/fstabとは
  17. /etc/fstabを編集するときの注意点
  18. mount -aの使い方
  19. mountコマンドの主なオプション
  20. mount・lsblk・blkid・dfの違い
  21. 追加ディスクをマウントする基本手順
    1. 1. ディスク構成を確認する
    2. 2. マウントポイントを作成する
    3. 3. マウントする
    4. 4. マウント状態を確認する
    5. 5. 必要なら/etc/fstabへ登録する
  22. mountコマンドでよくあるエラー
    1. mount point does not exist
    2. wrong fs type, bad option, bad superblock
    3. permission denied
    4. already mounted
    5. target is busy
  23. よくある質問
    1. mountコマンドは何に使いますか?
    2. マウントポイントとは何ですか?
    3. マウント前に何を確認すればよいですか?
    4. デバイス名ではなくUUIDでマウントできますか?
    5. 再起動後も自動でマウントするには?
    6. 読み取り専用でマウントできますか?
    7. ISOファイルをマウントできますか?
    8. mountとdfの違いは何ですか?
    9. UbuntuやCentOS Streamでも使えますか?
  24. まとめ

mountコマンドとは

mountは、Linuxでファイルシステムをディレクトリに接続するためのコマンドです。

たとえば、追加ディスクのパーティション/dev/sdb1/dataディレクトリで使えるようにする場合、次のようにマウントします。

sudo mount /dev/sdb1 /data

これにより、/dataへアクセスすると/dev/sdb1の中身を扱えるようになります。

主に次のような場面で使います。

  • 追加ディスクを利用したいとき
  • USBメモリや外部ストレージを接続したいとき
  • ISOファイルの中身を確認したいとき
  • 一時的に読み取り専用でマウントしたいとき
  • /etc/fstabの設定確認をしたいとき
  • VPSやLinuxサーバーでデータ用ディスクを追加したいとき

マウントとは

マウントとは、ディスクやパーティションなどのファイルシステムを、Linuxのディレクトリ階層へ接続することです。

Linuxでは、すべてのファイルやディレクトリは/を頂点とする1つのディレクトリツリーの中に配置されます。

追加ディスクを使う場合も、D:E:のようなドライブ文字ではなく、/data/mnt/usbのようなディレクトリへ接続して使います。

用語 意味
ファイルシステム データを保存・管理する仕組み
マウント ファイルシステムをディレクトリへ接続すること
マウントポイント 接続先になるディレクトリ
アンマウント 接続を解除すること

mountコマンドの基本構文

mountコマンドの基本構文は次のとおりです。

mount [オプション] デバイス マウントポイント

実際には管理者権限が必要になることが多いため、sudoを付けて実行します。

sudo mount デバイス マウントポイント

たとえば、/dev/sdb1/mnt/dataへマウントする場合は次のように実行します。

sudo mount /dev/sdb1 /mnt/data

現在マウントされている一覧を確認する方法

mountをオプションなしで実行すると、現在マウントされているファイルシステムの一覧を表示できます。

mount

ただし、出力が多くなりやすいため、現在のLinux環境ではfindmntdf -hlsblkもよく使われます。

findmnt
df -h
lsblk

mountはマウント操作そのもの、dfは空き容量確認、lsblkはディスク構成確認に向いています。

マウント前にディスク構成を確認する

マウントする前に、対象デバイスを確認します。

lsblk

実行結果の例です。

NAME   SIZE TYPE MOUNTPOINTS
sda     50G disk
├─sda1   1G part /boot
└─sda2  49G part /
sdb    100G disk
└─sdb1 100G part

この例では、/dev/sdb1がまだマウントされていない追加パーティションです。

ファイルシステム種類やUUIDも確認したい場合は、次のように実行します。

lsblk -f

または、前回解説したblkidを使います。

sudo blkid /dev/sdb1

マウントポイントを作成する方法

マウントするには、接続先となるディレクトリが必要です。

この接続先ディレクトリをマウントポイントと呼びます。

sudo mkdir -p /mnt/data

/mntは、一時的なマウント先としてよく使われるディレクトリです。

サーバーでデータ用ディスクとして使う場合は、/dataのようなディレクトリを作ることもあります。

sudo mkdir -p /data

デバイス名を指定してマウントする方法

マウントポイントを作成したら、デバイスをマウントします。

sudo mount /dev/sdb1 /mnt/data

マウントできたか確認します。

df -h /mnt/data

または、lsblkで確認します。

lsblk

実行結果の例です。

sdb    100G disk
└─sdb1 100G part /mnt/data

MOUNTPOINTS/mnt/dataが表示されていれば、マウントされています。

ファイルシステム種類を指定してマウントする方法

通常は自動判定されますが、ファイルシステムの種類を明示したい場合は-tを使用します。

sudo mount -t ext4 /dev/sdb1 /mnt/data

XFSの場合は次のように指定します。

sudo mount -t xfs /dev/sdb1 /mnt/data

USBメモリなどでvfatを指定する場合もあります。

sudo mount -t vfat /dev/sdb1 /mnt/usb

UUIDを指定してマウントする方法

デバイス名ではなくUUIDを指定してマウントすることもできます。

まずUUIDを確認します。

sudo blkid /dev/sdb1

実行結果の例です。

/dev/sdb1: UUID="5555-6666-7777-8888" TYPE="ext4"

UUIDを指定してマウントします。

sudo mount UUID=5555-6666-7777-8888 /mnt/data

デバイス名は接続順で変わる可能性がありますが、UUIDは同じファイルシステムを識別しやすいため、/etc/fstabでもよく使われます。

読み取り専用でマウントする方法

ファイルを書き換えたくない場合は、読み取り専用でマウントできます。

sudo mount -o ro /dev/sdb1 /mnt/data

roは読み取り専用を意味します。

調査目的でディスクを開く場合や、誤って内容を変更したくない場合に便利です。

読み書き可能でマウントする場合はrwを指定します。

sudo mount -o rw /dev/sdb1 /mnt/data

よく使うマウントオプション

オプション 意味
ro 読み取り専用でマウントする
rw 読み書き可能でマウントする
noexec 実行ファイルの実行を禁止する
nosuid SUID/SGIDビットの効果を無効にする
nodev デバイスファイルを無効にする
defaults 標準的なオプションでマウントする

複数のオプションを指定する場合は、カンマ区切りで指定します。

sudo mount -o ro,noexec,nosuid /dev/sdb1 /mnt/data

ISOファイルをマウントする方法

ISOファイルの中身を確認したい場合は、ループデバイスとしてマウントできます。

sudo mkdir -p /mnt/iso
sudo mount -o loop sample.iso /mnt/iso

マウント後、/mnt/isoからISOファイルの中身を確認できます。

ls -l /mnt/iso

ISOファイルは読み取り専用で扱われることが多いです。

bindマウントを使う方法

bindマウントを使うと、既存のディレクトリを別の場所にも表示できます。

sudo mkdir -p /mnt/logs
sudo mount --bind /var/log /mnt/logs

この例では、/var/logの内容を/mnt/logsからも見られるようになります。

コンテナ、chroot環境、検証環境などで使われることがあります。

tmpfsを一時的にマウントする方法

tmpfsは、メモリ上に一時的なファイルシステムを作る仕組みです。

sudo mkdir -p /mnt/tmp
sudo mount -t tmpfs -o size=512M tmpfs /mnt/tmp

この例では、最大512MBのtmpfs/mnt/tmpへマウントしています。

一時ファイルの検証や高速な一時領域として使われることがありますが、メモリを使うためサイズ指定には注意が必要です。

マウントを解除する方法

マウントを解除するには、umountコマンドを使用します。

sudo umount /mnt/data

または、デバイス名で指定できます。

sudo umount /dev/sdb1

umountは「unmount」ではなく、コマンド名としてはumountです。

詳しい解除方法は、別記事でumountコマンドとして解説します。

/etc/fstabとは

/etc/fstabは、起動時に自動でマウントするファイルシステムを設定するファイルです。

mountコマンドで手動マウントしただけでは、再起動後に自動でマウントされるとは限りません。

再起動後も自動でマウントしたい場合は、/etc/fstabに設定を書きます。

例です。

UUID=5555-6666-7777-8888 /data ext4 defaults 0 2
項目 意味
UUID=... マウントするファイルシステム
/data マウントポイント
ext4 ファイルシステム種類
defaults マウントオプション
0 dump設定
2 起動時チェック順序

/etc/fstabを編集するときの注意点

/etc/fstabの設定を間違えると、起動時にマウントエラーが発生する場合があります。

編集前にバックアップを作成しておきましょう。

sudo cp /etc/fstab /etc/fstab.bak

編集後は、すぐに再起動せず、次のコマンドで設定を確認します。

sudo mount -a

mount -aは、/etc/fstabに書かれた内容をもとに、未マウントのファイルシステムをマウントします。

ここでエラーが出る場合は、再起動前に設定を修正してください。

mount -aの使い方

/etc/fstabの設定確認では、mount -aをよく使います。

sudo mount -a

正常に終了すれば、設定されたファイルシステムがマウントされます。

確認にはdf -hlsblkを使用します。

df -h
lsblk

/etc/fstabを編集したあとにいきなり再起動するのではなく、先にmount -aで確認するのが安全です。

mountコマンドの主なオプション

オプション 説明
-t 種類 ファイルシステム種類を指定する
-o オプション マウントオプションを指定する
-a /etc/fstabに基づいてまとめてマウントする
--bind 既存ディレクトリを別の場所にもマウントする
-r 読み取り専用でマウントする
-w 読み書き可能でマウントする
-v 詳細表示する
--help ヘルプを表示する
--version バージョン情報を表示する

mount・lsblk・blkid・dfの違い

ディスク関連の確認では、mountlsblkblkiddfをよく使います。

コマンド 主な用途
mount ファイルシステムをマウントする
lsblk ディスク・パーティション構成を確認する
blkid UUIDやファイルシステム種類を確認する
df 空き容量や使用率を確認する

追加ディスクを使う場合は、次のような流れで確認すると分かりやすいです。

lsblk
sudo blkid /dev/sdb1
sudo mount /dev/sdb1 /mnt/data
df -h /mnt/data

追加ディスクをマウントする基本手順

追加ディスクを一時的にマウントする基本手順は次のとおりです。

1. ディスク構成を確認する

lsblk -f

2. マウントポイントを作成する

sudo mkdir -p /mnt/data

3. マウントする

sudo mount /dev/sdb1 /mnt/data

4. マウント状態を確認する

df -h /mnt/data
lsblk

5. 必要なら/etc/fstabへ登録する

sudo blkid /dev/sdb1
sudo cp /etc/fstab /etc/fstab.bak
sudo vi /etc/fstab
sudo mount -a

/etc/fstabの編集は慎重に行いましょう。

mountコマンドでよくあるエラー

mount point does not exist

mount: /mnt/data: mount point does not exist.

マウント先のディレクトリが存在していません。

先にマウントポイントを作成します。

sudo mkdir -p /mnt/data

wrong fs type, bad option, bad superblock

mount: wrong fs type, bad option, bad superblock on /dev/sdb1

ファイルシステム種類が違う、未フォーマット、破損、必要なドライバがないなどの可能性があります。

まず情報を確認します。

lsblk -f
sudo blkid /dev/sdb1

ファイルシステムが表示されない場合は、まだ作成されていない可能性があります。

permission denied

mount: permission denied

管理者権限が不足している可能性があります。

sudo mount /dev/sdb1 /mnt/data

また、マウントオプションやセキュリティ設定によって拒否される場合もあります。

already mounted

mount: /dev/sdb1 is already mounted

対象のデバイスがすでにマウントされています。

現在の状態を確認します。

lsblk
findmnt

target is busy

umount: /mnt/data: target is busy

これはアンマウント時によく出るエラーです。

対象ディレクトリを使用中のプロセスがあると解除できません。

lsof +f -- /mnt/data

または、現在そのディレクトリ内にいるターミナルがないか確認してください。

よくある質問

mountコマンドは何に使いますか?

ディスクやパーティション、ISOファイルなどのファイルシステムを、Linuxのディレクトリへ接続して使えるようにするために使います。

マウントポイントとは何ですか?

ファイルシステムの接続先になるディレクトリのことです。たとえば/mnt/data/dataなどがマウントポイントになります。

マウント前に何を確認すればよいですか?

lsblk -fblkidで、対象デバイス名、ファイルシステム種類、UUIDを確認します。

lsblk -f
sudo blkid /dev/sdb1

デバイス名ではなくUUIDでマウントできますか?

はい。次のようにUUIDを指定してマウントできます。

sudo mount UUID=5555-6666-7777-8888 /mnt/data

再起動後も自動でマウントするには?

/etc/fstabへ設定を追加します。編集前にバックアップを取り、編集後はsudo mount -aで確認しましょう。

読み取り専用でマウントできますか?

-o roを指定します。

sudo mount -o ro /dev/sdb1 /mnt/data

ISOファイルをマウントできますか?

-o loopを使うとISOファイルをマウントできます。

sudo mount -o loop sample.iso /mnt/iso

mountとdfの違いは何ですか?

mountはファイルシステムを接続するコマンドです。dfはマウント済みファイルシステムの空き容量や使用率を確認するコマンドです。

UbuntuやCentOS Streamでも使えますか?

はい。Ubuntu、Debian、CentOS Stream、Rocky Linux、AlmaLinuxなど、多くのLinuxディストリビューションで利用できます。

まとめ

mountコマンドは、Linuxでファイルシステムをディレクトリへ接続するためのコマンドです。

基本的な使い方は次のとおりです。

sudo mount /dev/sdb1 /mnt/data

ファイルシステム種類を指定する場合は-tを使用します。

sudo mount -t ext4 /dev/sdb1 /mnt/data

読み取り専用でマウントする場合は-o roを使用します。

sudo mount -o ro /dev/sdb1 /mnt/data

ISOファイルをマウントする場合は-o loopを使います。

sudo mount -o loop sample.iso /mnt/iso

再起動後も自動でマウントしたい場合は、/etc/fstabに設定します。

ただし、/etc/fstabの設定ミスは起動時のトラブルにつながる可能性があります。編集前にバックアップを取り、編集後はsudo mount -aで確認しましょう。

sudo cp /etc/fstab /etc/fstab.bak
sudo mount -a

ディスクを扱うときは、まずlsblk -fblkidで対象を確認し、正しいデバイスやUUIDを指定して安全にマウントしましょう。

コメント

タイトルとURLをコピーしました