Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説

コマンドリファレンス

mount コマンドは、デバイスやイメージファイルなどのファイルシステムを指定したディレクトリ(マウントポイント)に接続し、そこから読み書きできるようにするLinuxコマンドです。オプションを付けずに実行すると、現在マウントされているファイルシステムの一覧を表示します。USBディスクの接続、ISOイメージの展開、/etc/fstab に基づく自動マウントの適用などに使います。

基本構文(Syntax)

# 基本形
mount [OPTIONS] [-t FSTYPE] [-o OPTS] DEVICE DIR

# 既存の設定を使って一括マウント(/etc/fstab)
mount -a [-t FSTYPE] [-O FSTAB_TAGS]

# バインド/再マウント/移動
mount --bind SRC DIR
mount --rbind SRC DIR
mount -o remount,OPTS DIR
mount --move OLDDIR NEWDIR

# 例: 読み取り専用で ext4 をマウント
mount -t ext4 -o ro /dev/sdb1 /mnt/data

# 何も付けずに実行すると、現在のマウント一覧を表示
mount

DEVICE にはデバイスファイル(/dev/sdb1 など)のほか、-o loop と組み合わせてISOイメージなどの通常ファイルも指定できます。

現在のマウント状態を確認する方法

「マウントされているか確認したい」場合は、引数なしで mount を実行するか、対象を絞って grep します。

# 全マウントを一覧表示
mount

# 特定パスだけ確認
mount | grep /mnt/data
$ mount | grep /mnt/data
/dev/sdb1 on /mnt/data type ext4 (rw,relatime)

より見やすく確認したい場合は、同じ util-linux 系のコマンドである findmntlsblk が便利です。

コマンド用途特徴
mountマウント/一覧表示マウント操作そのものを行う。一覧表示は簡易的
findmntマウント状態の確認に特化ツリー表示・列指定・特定パスの検索がしやすい
lsblkブロックデバイスの一覧デバイスとマウント先の対応をツリーで表示
dfディスク使用量の確認マウント済みファイルシステムの空き容量を表示
$ findmnt /mnt/data
TARGET    SOURCE     FSTYPE OPTIONS
/mnt/data /dev/loop0 ext4   rw,relatime

ヒント: 単なる「マウント確認」が目的なら mount よりも findmnt の方が読みやすく便利です。

主なオプション一覧

オプション説明使用例
-t FSTYPEファイルシステム種別を指定(例: ext4, xfs, vfat, ntfs, btrfs, nfs, cifs, tmpfsmount -t xfs /dev/nvme0n1p2 /data
-o OPTS追加オプション(カンマ区切り)を指定mount -o rw,noexec,nosuid /dev/sdb1 /srv
-o ro / -o rw読み取り専用/読み書きでマウントmount -o ro /dev/sr0 /mnt/iso
-o remount,...既存マウントの再マウント(オプション変更)mount -o remount,rw /
--bind / --rbindディレクトリを別パスへ結合(再帰版はサブマウントも含む)mount --bind /var/www /srv/www
--move既存のマウントを別のマウントポイントへ移動mount --move /mnt/old /mnt/new
-L LABEL / -U UUIDラベル/UUID でデバイス指定mount -U 123e4567-... /mnt/usb
-a/etc/fstab の「自動」対象を一括マウントmount -a
-O TAGS/etc/fstabx-systemd.automount などタグ指定で絞り込み(実装依存)mount -a -O noauto
-v冗長(verbose)表示mount -v -t nfs server:/share /mnt/share
-r / -w読み取り専用/読み書きでマウント(-o ro/rw と同等)mount -r /dev/sdc1 /ro
-o loopループバックデバイスとしてファイルをマウント(ISO 等)mount -o loop ubuntu.iso /mnt/iso
代表的 -onoexec(実行不可), nosuid, nodev, uid=, gid=, umask=, noatime/relatime, discard, compress=(btrfs などFS固有)mount -t vfat -o uid=1000,gid=1000,umask=022 /dev/sdb1 /mnt/usb

実行例

以下はすべて Docker コンテナ上の Ubuntu 24.04(util-linux)で実際に動作確認した内容です。

USBディスクを ext4 としてマウント

説明: マウントポイントを用意してからマウントします。
コマンド:

sudo mkdir -p /mnt/data
sudo mount -t ext4 /dev/sdb1 /mnt/data
mount | grep /mnt/data
/dev/sdb1 on /mnt/data type ext4 (rw,relatime)

ISOイメージを読み取り専用で展開(ループバック)

説明: .iso ファイルをディレクトリとして閲覧可能にします。
コマンド:

sudo mkdir -p /mnt/iso
sudo mount -o loop,ro ./image.iso /mnt/iso
ls /mnt/iso

ディレクトリを別パスへバインド(読み取り専用化も可能)

説明: アプリから別パスで同じ内容を見せたいときに使います。
コマンド:

sudo mount --bind /var/www /srv/www
ls /srv/www

# 既存の bind を読み取り専用に変更
sudo mount -o remount,ro,bind /srv/www
touch /srv/www/test
touch: cannot touch '/srv/www/test': Read-only file system

マウント済みのファイルシステムをオプション変更(remount)

説明: アンマウントせずに読み書き属性だけを切り替えます。
コマンド:

sudo mount -o remount,ro /mnt/data
touch /mnt/data/test    # → Read-only file system で失敗

sudo mount -o remount,rw /mnt/data
touch /mnt/data/test    # → 成功

マウントを別のマウントポイントへ移動(–move)

説明: すでにマウント中のファイルシステムを、アンマウントせず別パスへ付け替えます。
コマンド:

sudo mount --move /mnt/old /mnt/new
mount | grep /mnt/new
/dev/loop0 on /mnt/new type ext4 (rw,relatime)

/etc/fstab に従って一括マウント

説明: ブート時と同じ条件で fstab のエントリを適用します。
コマンド:

sudo mount -a

出力例(環境により変わります):

/dev/sdb1 on /mnt/data type ext4 (rw,relatime)
server:/share on /mnt/share type nfs (rw,vers=4.1,soft,timeo=600)

エラー例と対処法

一般ユーザーでのマウント権限不足

説明: sudo なしでデバイスをマウントしようとして失敗します。
コマンド:

mount /dev/sdb1 /mnt/data

出力例(util-linux 2.39 で実機確認):

mount: /mnt/data: must be superuser to use mount.
       dmesg(1) may have more information after failed mount system call.

対処: sudo を使うか、/etc/fstabuser/users オプションを設定して一般ユーザーに許可します。

使用中でアンマウントできない

説明: マウントポイント配下をプロセスが使用中だと umount は失敗します。
コマンド:

umount /mnt/data
umount: /mnt/data: target is busy.

対処: lsoffuser -m DIR で使用中のプロセスを確認して終了させるか、umount -l(遅延アンマウント)/umount -f(強制、ネットワークFS向け)を検討します。

マウントを解除する(umount)

mount で接続したファイルシステムは umount で解除します。マウントポイントとデバイスのどちらを指定しても解除できます。

umount /mnt/data
# または
umount /dev/sdb1

関連コマンド

  • umount : マウントの解除。umount DIR または umount DEVICE
  • findmnt : 現在のマウント状態をツリー/表で表示(util-linux)。
  • lsblk : ブロックデバイスのツリー表示。
  • blkid : UUID/LABEL を照会。
  • systemd-mount : 一時マウントや自動アンマウントに便利(systemd 環境)。
  • swapon/swapoff : スワップ領域の有効化/無効化。
  • df : マウント済みファイルシステムのディスク使用量を表示。
  • du : ディレクトリ・ファイル単位のディスク使用量を集計。
  • dd : ディスクイメージの作成・書き込みに使用(マウント対象のイメージ作成など)。
  • sudo : root権限が必要なマウント操作の実行に使用。
  • パーミッションとchmod : マウント後のディレクトリ・ファイルの権限設定。
  • wsl : WindowsからLinux環境を扱う場合のマウント関連操作。

備考

  • 権限: デバイスのマウントは通常 root 権限が必要。一般ユーザーに許可する場合は /etc/fstabuser(呼び出したユーザーのみ解除可)/users(誰でも解除可)を付けます。noauto を併用すると手動時のみマウント。
  • セキュリティ: 可搬メディアや信頼できないFSには nosuid,nodev,noexec を検討。noatime/relatime はディスク負荷軽減に有効。
  • /etc/fstab: 永続設定は UUID=/LABEL= 指定が堅牢。_netdev はネットワークFS用のヒント、x-systemd.automount でオンデマンド・マウントも可能(systemd)。書き方の詳細はfstabの書き方を参照してください。
  • FS固有オプション: 例として NFS(vers=4.1,proto=tcp,soft,timeo=)、CIFS(-t cifs -o username=,password=,vers=)、tmpfs(-t tmpfs -o size=1G)など。各FSのドキュメントを必ず参照。
  • バインド/伝播: --bind/--rbind のほか、コンテナ/名前空間で使うマウント伝播--make-private/--make-shared/--make-slave など)もあります(上級者向け)。
  • 実装差: 本稿は主に Linux(util-linux の mount を前提。BSDやBusyBoxではオプションが異なります。macOS の mount も書式が一部違います。

よくある質問

マウントされているかどうかを確認するコマンドは?

mount | grep 対象パスfindmnt 対象パス で確認できます。ブロックデバイスとマウント先の対応をまとめて見たい場合は lsblk が便利です。

mount と df の違いは?

mount はマウント操作そのものと簡易的な一覧表示を行うコマンドです。一方 df はマウント済みファイルシステムのディスク使用量(空き容量・使用率)を表示する専用コマンドです。

sudo なしでマウントできますか?

通常はroot権限が必要です。特定のマウントポイントだけ一般ユーザーに許可したい場合は、/etc/fstabuser または users オプションを設定します。

マウントを解除できない時はどうすればいいですか?

target is busy と表示される場合は、lsoffuser -m DIR で使用中のプロセスを確認して終了させます。すぐに解除したい場合は umount -l(遅延アンマウント)を検討してください。

参考

  • manページ: man 8 mountman 5 fstab
  • man7.org: Linux mount(8) / fstab(5)
  • util-linux ドキュメント(findmnt, lsblk, blkid など関連コマンド)
  • Arch Wiki: Filesystem mounting, tmpfs, NFS, CIFS などの実践ガイド
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント