はじめに

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

mountは、ファイルシステムをマウント(接続)するコマンドです。USBドライブやハードディスク、ネットワークストレージなど、様々なストレージをLinuxシステムに接続する時に使うんですね。

「パソコンにUSBをつなぐ」的な操作をコマンドでやるってイメージです。めっちゃ重要なコマンドですよ。


mountコマンドとは

mountは、ファイルシステムをマウント(接続)する外部コマンドです。

Linuxでは、ハードディスク、USB、ネットワークストレージなど、あらゆるストレージをファイルシステムとしてツリーに接続することで、ユーザーが統一的にアクセスできるようになっています。mountはその接続作業を行うコマンドなんです。

マウントをすることで、デバイスの内容がディレクトリツリーの特定の場所から見えるようになります。例えば/mnt/mediaといったディレクトリにマウントすると、そこからそのデバイスのファイルにアクセスできるわけです。


基本構文

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

mount単体で実行すると、現在マウント済みのファイルシステムを表示します。デバイスとマウントポイントを指定することで、新しくマウントができます。


主なオプション

オプション 説明
-t ファイルシステムの種類を指定(ext4, ntfs, vfat など)
-o マウントオプションを指定(comma区切りで複数可)
-r 読み取り専用でマウント(read-only)
-w 読み書き可能でマウント(read-write、デフォルト)
-a fstabに記載されているすべてのファイルシステムをマウント
-n fstabを読まずにマウント
-v 詳細表示(verbose)
-l ラベル別にマウント
-U UUID別にマウント
--bind ディレクトリを別の場所にマウント

使用例

例1: 現在マウント済みのファイルシステムを表示

1
mount

実行結果:

1
2
3
4
5
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,stripe=4)
devtmpfs on /dev type devtmpfs (rw,relatime,size=1234567k,...)
tmpfs on /run type tmpfs (rw,nosuid,nodev,...)
/dev/sda2 on /home type ext4 (rw,relatime)
...

システムに接続されているすべてのファイルシステムと、その詳細情報が表示されます。

例2: USBドライブをマウント

1
sudo mount /dev/sdb1 /mnt/usb

実行結果:

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

/dev/sdb1というUSBドライブを/mnt/usbディレクトリにマウントします。これ以降、/mnt/usbを通じてUSBの内容にアクセスできます。

例3: ファイルシステムの種類を指定してマウント

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

実行結果:

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

-t vfatでファイルシステムの種類をFATと指定します。WindowsUSBドライブなんかでよく使います。

例4: 読み取り専用でマウント

1
sudo mount -r /dev/sdb1 /mnt/backup

実行結果:

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

-rオプションで読み取り専用でマウントします。誤ってファイルを削除するのを防げますね。

例5: オプションを複数指定してマウント

1
sudo mount -o remount,rw /

実行結果:

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

-o remount,rwで、ルートファイルシステムを読み書き可能に再マウントします。複数のオプションはカンマで区切ります。

例6: NTFSドライブをマウント(日本語ファイル名対応)

1
sudo mount -t ntfs-3g -o locale=ja_JP.UTF-8 /dev/sdb1 /mnt/ntfs

実行結果:

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

Windowsドライブ(NTFS)を日本語対応でマウントします。ntfs-3gパッケージが必要です。

例7: UUIDでマウント

1
sudo mount -U 1234-5678 /mnt/data

実行結果:

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

デバイス名の代わりにUUIDを指定します。デバイス名は起動時に変わることがありますが、UUIDは固定なので便利です。

例8: バインドマウント(ディレクトリを別の場所に表示)

1
sudo mount --bind /home/user/projects /var/www/projects

実行結果:

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

--bindオプションで、ディレクトリを別の場所に「リンク」のようにマウントします。実際にはシンボリックリンクと違い、元のマウント構造を保持します。

例9: tmpfsをマウント(メモリをファイルシステムとして使用)

1
sudo mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk

実行結果:

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

メインメモリの一部をファイルシステムとしてマウント。非常に高速ですが、再起動でデータが消えます。

例10: マウントポイントを作成して、USBドライブをマウント

1
2
sudo mkdir -p /mnt/external
sudo mount /dev/sdc1 /mnt/external

実行結果:

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

まずマウントポイントを作成してから、そこにマウントします。実務ではこのパターンがほとんどです。


Tips・注意点

マウント前にマウントポイントを作成すること

1
2
sudo mkdir -p /mnt/mydata
sudo mount /dev/sdb1 /mnt/mydata

マウントポイント(既存ディレクトリ)にマウントする必要があります。存在しないと失敗します。

ファイルシステムの種類が不明な場合

1
sudo blkid /dev/sdb1

blkidコマンドでデバイスのファイルシステム情報を確認できます。TYPE="ext4"のような出力があります。

デバイス名が複数ある場合は慎重に

1
lsblk

lsblkで接続されているすべてのデバイスを確認できます。/dev/sda/dev/sdbを間違えると大変なことに。

NTFSドライブをマウントするにはntfs-3gが必要

Linux標準では読み取り専用でしか対応していません。読み書きするなら:

1
sudo apt install ntfs-3g

パッケージをインストールする必要があります。

マウント済みのファイルシステムは削除不可

マウント中のデバイスはrm -rfでも削除できません。まずアンマウント(umount)してからです。


実践的な使い方

外部ドライブのバックアップ

1
2
3
sudo mount -t ext4 /dev/sdb1 /mnt/backup
sudo rsync -av ~/important/ /mnt/backup/important/
sudo umount /mnt/backup

外部ドライブをマウント → バックアップ実行 → アンマウントという流れ。自動化スクリプトによく使います。

fstabに登録して自動マウント

1
echo 'UUID=1234-5678 /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab

/etc/fstabに設定を書き込むと、起動時に自動的にマウントされます。固定で使うドライブはこれ。

Samba(Windows共有)をマウント

1
sudo mount -t cifs //192.168.1.100/share /mnt/windows -o username=user,password=pass

Windowsファイル共有をマウント。パスワードはコマンド履歴に残らないようcredentialsファイルを使う方がいいです。

容量を確認してからバックアップ

1
2
3
mount | grep /dev/sdb1
df -h /mnt/backup
# 十分な容量があることを確認したら実行

マウント後にdfで容量確認。バックアップサイズとの照合も重要です。


まとめ

mountコマンドのポイント:

  • ファイルシステムをマウント(接続)する外部コマンド
  • -t: ファイルシステムの種類を指定
  • -o: マウントオプションを指定
  • -r: 読み取り専用でマウント
  • –bind: ディレクトリバインドマウント
  • オプション無しで実行すると、マウント済みファイルシステムを一覧表示
  • よく使う組み合わせ: sudo mount -t, sudo mount -o

ストレージの接続はLinuxの基本中の基本。USB、外部ドライブ、ネットワークストレージなど、あらゆるメディアをマウント・アンマウントしてデータを操作するのが日常業務ですよ!