連載
» 2018年02月15日 05時00分 公開

Linux基本コマンドTips(183):【 mount 】コマンド――ファイルシステムをマウントする

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ファイルシステムをマウントする「mount」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。ファイルシステムをマウントする「mount」コマンドです。

mountコマンドとは?

 「mount」は、HDDやUSBメモリ、DVD-ROMなどのフォーマット済みの領域(ファイルシステム)を指定したディレクトリ(マウントポイント)と一時的に結び付けてアクセスできるようにするコマンドです ※1。この操作を「マウント」と呼びます。

※1 ファイルの管理方式や管理方式にのっとってフォーマットした記憶領域のことを「ファイルシステム」と言う。





mountコマンドの書式

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

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

mount -l

※[ ]は省略可能な引数を示しています。




mountの主なオプション(その1、一般的なもの)

短いオプション 長いオプション 意味
-a --all /etc/fstabに記載がある全てのデバイスをマウントする(-tまたは-Oでファイルシステムの種類を制限できる)
-O 種類 --test-opts 種類 -aオプション使用時に、ファイルシステムの種類を指定する(「,」区切りで複数指定可能、「〜以外」と指定したい場合は先頭に「no」を付ける)
-F --fork -aオプション使用時に、デバイスごとに別のプロセスでマウントを実行する(通常は/etc/fstabの記載順にマウントする。/usrの後に/usr/spoolをマウント処理したい場合には-Fオプションは使用できない)
-T ファイル名 --fstab ファイル名 /etc/fstabの代わりに使用するファイルを指定する ※2
-t 種類 --types 種類 マウントするファイルシステムの種類を指定する(「,」区切りで複数指定可能、「〜以外」としたい場合はnoを付ける、autoで自動判定 ※3)
-L ラベル 指定したラベルを持つパーティションをマウントする(/proc/partitionsが必要、カーネル2.1.116以降)
-U 識別子 指定した識別子(UUID)のパーティションをマウントする(/proc/partitionsが必要、カーネル2.1.116以降)
--source 対象 マウントする対象をパス、ラベル、識別子(UUID)で指定する ※2
--target マウントポイント マウント先(マウントポイント)を指定 ※2
-o オプション --options オプション マウントオプション(「,」区切りで複数指定可能)
-r --read-only 読み込み専用でマウントする(「-o ro」相当)
-w --rw、--read-write 読み書き可能な状態でマウントする(デフォルト、「-o rw」相当)
-B --bind サブツリーを別の場所に再マウントする(カーネル2.4.0以降)。つまり任意のディレクトリを別のディレクトリ下にマウントできる
-M --move サブツリーを別の場所に移動する(カーネル2.5.1以降)
-n --no-mtab /etc/mtab(マウント状況を記録するファイル)に書き込まない。/etcがROM領域にある場合に役立つ
-i --internal-only ヘルパーコマンド(/sbin/mount.*)を使用しない
-f --fake 実際にはマウントしない(実行内容を確認したいときに使用)
-v --verbose 動作時のメッセージを詳しく表示する
-l --show-labels マウント済みのデバイスをラベル付きで一覧表示(引数を指定せず使用する)

※2 Ubuntu 14.04 LTSの初期状態ではこのオプションは利用できない。
※3 auto指定時または-tオプションを指定していない場合、3種類の情報を順に使ってファイルシステムの種類を推定してマウント処理が進む。最優先の情報はblkidのライブラリ、次にmountコマンドによる推測、最後に/etc/filesystems(存在しない場合は/proc/filesystems)の記載である。



mountの主なオプション(その2、ファイルシステムに依存しないもの)

オプション 意味
defaults デフォルトのオプション(rw、suid、dev、exec、auto、nouser、asyncを使用する)
rw ファイルシステムを読み書き可能なモードでマウントする(デフォルト)
ro ファイルシステムを読み出し専用でマウントする
suid SUIDおよびSGIDビットを有効にする(デフォルト)
nosuid SUIDおよびSGIDビットを無効にする
dev ファイルシステム上のキャラクタスペシャルデバイスやブロックスペシャルデバイスを利用できるようにする(デフォルト)
nodev ファイルシステム上のキャラクタスペシャルデバイスやブロックスペシャルデバイスを利用できないようにする
exec バイナリの実行を許可する(デフォルト)
noexec バイナリの直接実行を禁止する
auto -aオプションを指定したときにマウントする(デフォルト)
noauto -aオプションでマウントせず、明示的に指定したときのみマウントする
nouser 一般ユーザーによるマウントを禁止する(デフォルト)
user 一般ユーザーでもマウントできるようにする(マウントを行ったユーザー名はmtabに書き込まれ、そのユーザーがアンマウントできるようになる。noexec、nosuid、nodevを指定したと見なされる ※4)
users 全てのユーザーがマウント、アンマウントできるようにする(noexec、nosuid、nodevを指定したと見なす ※4)
owner 一般ユーザーがマウントする際、マウントを実行するユーザーがデバイスの所有者と一致した場合にのみマウントを許可する(nosuidとnodevを指定した扱いとなる ※4)
group 一般ユーザーがマウントする際、マウントを実行するユーザーが属するグループのうちの1つがデバイスのグループと一致した場合にのみマウントを許可する(nosuidとnodevを指定したと見なす ※4)
async 全てのI/Oを非同期(asynchronous)に行う
sync I/Oを同期的(synchronous)に行う
dirsync 全てのディレクトリ更新を同期的に行う
atime アクセスごとにinodeのアクセス時間を更新する(デフォルト)
noatime inodeのアクセス時間を更新しない
mand ファイルシステム上での強制(mandatory)ロックを許可する
nomand ファイルシステム上での強制ロックを禁止する
remount マウント済みのファイルシステムを再マウントする(デバイスとマウントポイントは変更しない。マウントオプションを変更したい際に使用する)
_netdev ネットワークアクセスが必要なデバイス上にあるファイルシステム(システムがネットワーク利用可能な状態になるまでマウントさせないために使用)

※4 dev、suid、execをコマンドラインで指定すると、デフォルトのnodev指定などを打ち消す。



mountの主なオプション(その3、ファイルシステム固有のもの)

  • 【ext2/ext3/ext4】
オプション 意味
acl/noacl POSIXアクセス制御リスト(Access Control List)をサポートする/しない
user_xattr/nouser_xattr 「user.」拡張属性をサポートする/しない
check/nocheckまたはcheck=none マウント時にinodeのチェックを行う/行わない(デフォルト)
errors=設定 エラー時の動作を「continue」(記録だけ残して続行)、「remount-ro」(読み込み専用で再マウント)、「panic」(システムを停止させる)から指定
debug デバッグ情報をマウントおよび再マウントごとに表示する
  • 【ext3/ext4】
オプション 意味
journal=update ファイルシステムのジャーナルを現在の形式に更新する
noload マウント時にジャーナルを読み込まない
data=journal メインファイルシステムより前に全てのデータをジャーナルに記録する
data=ordered メタデータをジャーナルに記録する前に、メインファイルシステムに書き込む(デフォルト)
  • 【xfs】
オプション 意味
biosize=サイズ バッファ用のI/Oサイズを14(16K)、15(32K)、16(64K、デフォルト)から指定 ※2
norecovery ログによる回復を行わずにマウントする
nouuid ファイルシステムのUUIDを無視する
uquota、usrquota、uqnoenforce ユーザーディスククォータのアカウントを有効にする
grpquota、gqnoenforce グループディスククォータのアカウントを有効にする ※5

※5 Ubuntu 14.04 LTSの初期状態では、「gquota」または「grpquota」と指定する。



  • 【fat/vfat】
オプション 意味
blocksize=サイズ ブロックサイズを512(デフォルト)、1024、2048から指定
uid=値 ファイルの所有者をユーザーIDで指定(デフォルトはカレントプロセスのユーザーID)
gid=値 ファイルの所有グループをグループIDで指定(デフォルトはカレントプロセスのグループID)
umask=値 umaskの値(8進数で指定、デフォルトはカレントプロセスのumask)、dmask=でディレクトリのみ、fmask=でファイルのみに適用されるumask値を指定できる
check=値 ファイル名のチェック手法を下記3種類から指定する。
・relaxed(大文字と小文字を受け付け、それらを等価と見なす。ロングネーム部分は切り捨てられる)
・normal(relaxed同様だが「*,?,<,スペース」などの特殊文字は使用できない、デフォルト)
strict(normal同様だが名前に長い文字を含むことができない、「=」などMS-DOSで使用できない特殊文字は使用できない)
それぞれcheck=rのように先頭1文字でも指定可能
codepage=値 短いファイル名に変換する際の文字コードページ(デフォルトは437)
conv=値 ファイルで使われている改行文字の変換を行うかどうかを下記3種類から選んで指定する。
・binary(行わない、デフォルト)
・text(全てのファイルで行う)
・auto(拡張子で判断)
それぞれconv=bのように先頭1文字でも指定可能
iocharset=値 8ビットの文字と16ビットのUnicode文字を変換する際の文字セット(デフォルトはiso8859-1)
debug デバッグフラグをオンにする(バージョン文字とファイルシステムのパラメーターを表示する)
  • 【vfat】
オプション 意味
posix 大文字か小文字かだけが異なるファイル名を識別できるようにする
utf8 UTF8を有効にする
uni_xlate システムが扱えないUnicode文字をエスケープシーケンスに変換する(utf8は無効になる)
  • 【ntfs】
オプション 意味
nls=値 ファイル名を返す際に使用する文字セット(以前はiocharsetで指定)
utf8 ファイル名の変換にUTF-8を使用する
posix=0または1 ファイル名の大小文字の区別を有効にするかどうかを指定(1=有効)
uid=値 ファイルの所有者のユーザーIDを指定(デフォルトはrootが所有し他のユーザーからは読み取り不可)
gid=値 ファイルの所有グループのグループIDを指定(デフォルトはrootが所有し他のユーザーからは読み取り不可)
shortname=値 8.3形式のファイル名(ショートネーム)を生成、表示する際の方法を下記4種類から選択して指定する。
・lower(ショートネームの表示を小文字にする、デフォルト)
・win95(大文字にする)
・winnt(変更しない)
・mixed(変更しない)
winntの場合ショートネームが全て小文字または全て大文字でない場合はロングネームで生成、それ以外の場合、ショートネームに小文字が含まれる場合はロングネームで生成


デバイスとマウントポイントを指定してマウントする

 「mount デバイス マウントポイント」でデバイスをマウントします。実行時にはroot権限が必要です(連載第68回) ※6。

 例えば「/dev/sdb1」というデバイスを「/usr/local/data1」というマウントポイントにマウントしたい場合、「mount /dev/sdb1 /usr/local/data1」と指定します(画面1)。

 このときmountコマンド側でファイルシステムの種類を自動判定します。ファイルシステムの種類を別に指定したい場合は「-t」オプションを使ってください。

 画面1ではmount実行の前後にlsblkコマンド(第180回)を使って、マウントの状況を確認しています。「-o +FSTYPE」はファイルシステムの情報も表示するというオプションです。mountコマンド実行時にはsudoコマンドを使用しています。

※6 /etc/fstabにuser、またはusersオプションをあらかじめ指定したデバイスに限り、実行時にroot権限は不要。



コマンド実行例

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

(デバイスをマウントポイントにマウントする)

mount -t ファイルシステムの種類 デバイス マウントポイント

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

mount /dev/sdb1 /usr/local/data1

(ファイルシステムの種類を自動判定して、/dev/sdb1を/usr/local/data1にマウントする)(画面1

mount -t xfs /dev/sdb1 /usr/local/data1

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


画面1 画面1 マウントコマンドの基本的な使い方


オプションを指定してマウントする

 読み込み専用でマウントしたい場合などは、「-o」オプションを使用します。読み込み専用の指定は「-o ro」、読み書き可能(デフォルト)の指定は「-o rw」です。それぞれ「-r」と「-w」オプションとしても同じです(コマンド実行例参照、画面2)。

 既にマウントしているファイルシステムに対して、オプションだけ変更してマウントし直したい場合は「-o remount」を指定します。この場合、デバイスまたはマウントポイントのどちらか1つを指定します ※7。

 なお、オプションを指定しなかった場合はdefaults(読み書き可能など、mountの主なオプション(マウント関係)を参照)と見なされます。現在の指定オプションを確認するためには、後ほど紹介する「mount -l」または「/etc/mtab」を使います。

※7 両方指定した場合、2つ目の引数(マウントポイント)の指定に従って、再マウントする。



コマンド実行例

mount -o オプション デバイス マウントポイント

(オプションを指定してマウントする)

mount -o ro /dev/sdb1 /usr/local/data1

(/dev/sdb1を/usr/local/data1に読み込み専用でマウントする)

mount -o オプション,remount デバイス

(オプションを変更してマウントし直す)

mount -o オプション,remount マウントポイント

(オプションを変更してマウントし直す)

mount -o ro,remount /usr/local/data1画面2

(読み出し専用でマウントし直す)


画面2 画面2 -oオプションを用いたところ


マウント済みのファイルシステムを一覧表示する

 「mount -l」でマウント済みのファイルシステムを一覧表示します。量が多い場合はgrepコマンド(第9回)で絞り込むとよいでしょう。画面3ではheadコマンド(第3回)を使い冒頭部分だけを表示しています(画面3の1)

 マウントの情報は/etc/mtabに記されています。このファイルを直接参照してもよいでしょう(画面3の2)。

 どちらも一般ユーザーで実行できます。

コマンド実行例

mount -l

(マウント済みのファイルシステムを一覧表示する)

mount -l | grep /dev/sdb

(マウント情報から/dev/sdbを絞り込み)

grep /dev/sdb /etc/mtab画面3

(/etc/mtabを参照して、マウント情報から/dev/sdbを絞り込み)


画面3 画面3 マウント済みのファイルシステムを一覧表示したところ


/etc/fstabに従ってマウントする

 「/etc/fstab」にマウントの設定を書いておくことで、デバイスのみの指定、あるいはマウントポイントのみの指定でマウントできるようになります。

 /etc/fstabには「デバイス マウントポイント ファイルシステムの種類 マウントオプション」の順に空白区切りで記述します。

 デバイスの代わりにUUIDを指定する場合は「UUID=」を付けます。UUIDはblkidコマンド(第182回)または「lsblk --fs」で確認できます。lsblkの場合、「lsblk -lfn -o UUID,MOUNTPOINT,FSTYPE」とすると、/etc/fstabに指定する順番で出力できます(画面4の1) ※8。

※8 出力結果を/etc/fstabに書き込む場合、行頭にUUID=を追加する必要がある。



 マウントオプションを指定しなかった場合は「defaults」扱いとなります。

 /etc/fstabの設定行には画面4のようにさらに2つのフィールドがあります。5番目のフィールドはダンプする必要があるかどうかで通常は「0」(ダンプしない)を選びます ※9。6番目は起動時にfsckコマンドでファイルシステムをチェックする必要があるかどうかを指定します。指定しなかった場合はどちらも「0」と見なします。

 「mount -a」で、/etc/fstabにある全てのデバイスをマウントします。対象外としたい場合はマウントオプションに「noauto」を指定します。起動時にマウントしたくない場合も「noauto」を設定します。

 次の設定例では、/dev/sdb1と/dev/sdb2を「noauto」および「users(一般ユーザーでマウント/アンマウントできるようにするオプション ※10」で指定しています。

/dev/sdb1 /usr/local/data1 xfs  noauto,users
/dev/sdb2 /usr/local/data2 ext4 noauto,users

 このように設定すると、デバイス名かマウントポイントだけを指定するだけでマウントできるようになります。

 画面4ではUUID=を使って指定した例を示しています(画面4の2)。CentOS 7の設定行の後ろに上記の2つの設定を追加済み、というイメージです。「#」以降はコメントです。

※9 ファイルシステム単位でバックアップするdumpコマンドの対象とするかどうかを指定する。
※10 マウント後のパーミッションはファイルシステムに従う。



画面4 画面4 /etc/fstabを書き換えてマウントしたところ 一般ユーザー権限でマウントできるようにした


Copyright © ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。