MOUNT

Section: System Administration (8)
Updated: August 2015
Index Return to Main Contents
 

名前

mount - ファイルシステムをマウントする  

書式

mount [-l|-h|-V]

mount -a [-fFnrsvw] [-t fstype] [-O optlist]

mount [-fnrsvw] [-o options] device|dir

mount [-fnrsvw] [-t fstype] [-o options] device dir  

説明

Unix のシステムにおいては、アクセスできるファイルはすべて 1 つの大きな ツリー構造にまとめられている。 これは / をルート (root:根) とする階層構造をなしている。 これらのファイル群は複数のデバイスにわたって配置することができる。 mount コマンドはあるデバイス上のファイルシステムを この大きなツリー構造に接続するために用いられる。 逆に接続を解除する際には umount(8) コマンドが用いられる。 ファイルシステムは、データをどのようにデバイスに格納するかを 制御するために使われる。 また、ネットワークや他のサービスで仮想的な方法で提供するかを 制御するために使われる。

mount コマンドの標準形は次の通りである:


mount -t type device dir

これは device 上にあるファイルシステム (タイプ type) をディレクトリ dir に接続するよう、カーネルに伝える。 -t type は、オプションである。 mount コマンドは通常はファイルシステムを検知できる。 デフォルトでは、ファイルシステムをマウントするには、root 権限が必要である。 詳細は「スーパーユーザー以外でのマウント」のセクションを参照すること。 このファイルシステムがマウントされている間は、ディレクトリ dir のもとの中身 (もしあれば)、ディレクトリ自身の所有者、 パーミッションモードは見えなくなる。 dir によって指定されるパスは device 上のファイルシステムのルートを参照することになる。

ディレクトリまたはデバイスのみが指定された場合、以下のようになる:

mount /dir

mount/etc/fstab ファイルのマウントポイントを調べる (なければ、デバイスを調べる)。 --target または --source オプションを使って指定した引き数が曖昧になるのを防ぐことができる。 例えば:

mount --target /mountpoint

同じファイルシステムを複数回マウントできる。 同様なケースで (例えばネットワークファイルシステムで) 同じファイルシステムを 同じマウントポイントで複数回マウントできる。 マウントコマンドはこの挙動を制御するポリシーを実装していない。 全ての挙動はカーネルで制御され、通常はファイルシステムドライバの仕様である。 例外は、--all であり、このオプションが指定された場合、 既にマウントされているファイルシステムは無視される (詳細は以下の --all を参照すること)。

 

マウントのリスト表示

リスト表示モードは後方互換のためにのみ維持されている。

特にスクリプトにおいては、より強力でカスタマイズ可能な出力には、 findmnt(8) を使うこと。 マウントポイント名に含まれる制御文字は、'?' に置換される点に注意すること。

以下のコマンドでは、(タイプ type の) 全てのマウントされたファイルシステムのリストを表示する:

mount [-l] [-t type/]

オプション -l を付けると、ラベルをリストに追加する。 下記を参照すること。

 

デバイスとファイルシステムの指定

ほとんどの場合、デバイスは (ブロックスペシャルデバイスの) ファイル名で 指定する (例: /dev/sda1)。 しかし例外もある。例えば NFS を通してマウントする場合には、 deviceknuth.cwi.nl:/dir のようになる。 ブロックスペシャルデバイスの指定には、ボリュームラベルや UUID を 用いることができる (以下の -L および -U オプションを見よ)。 また、パーティションラベル、または UUID を用いることができる。 パーティション識別子は、例えば、GUID パーティションテーブル (GPT) をサポートする。

ディスクパーティションのデバイス名は不安定である。 ハードウェアの認識でデバイスの追加や削除を行った場合、 名前が変わる可能性がある。 これが、ファイルシステムやパーティションの識別子に、 UUID やラベルを使うのを強く推奨する理由である。

コマンド lsblk --fs は、利用可能なブロックデバイスの ファイルシステム、ラベル、UUID の概要を表示する。 コマンド blkid -p <device> は、 指定されたデバイス上のファイルシステムの詳細を表示する。

デバイスを移動、共有、コピーする場合、 UUID とラベルが実際に一意である保証がないことを忘れてはいけない。 システム上で UUID が実際に一意であるかを検証するには、 lsblk -o +UUID,PARTUUID を使うこと。

/etc/fstab ファイルでは、 /dev/disk/by-{label,uuid,partuuid,partlabel} udev シンボリックリンクより、 タグ (例えば UUID=uuid) を使った設定が推奨される。 タグは、より読みやすく、堅牢で、移植性が高い。 mount(8) は内部的に udev シンボリックリンクを使っているので、 /etc/fstab でシンボリックリンクを使うのは、タグを使うのに比べて、 何の利点もない。 より詳細は libblkid(3) を参照すること。

mount(8) は UUID を文字列として使っている点に注意すること。 コマンドライン、または fstab(5) から指定された UUID は内部的なバイナリ表現に変換されない。 UUID の文字列表現は、小文字になる。

proc ファイルシステムはスペシャルデバイスには関連付けられていないので、 マウントする際には proc のような適当なキーワードをデバイス指定の代わりに用いる。 (通常用いられている none はあまりお勧めできない: mount が `none already mounted' というエラーメッセージを出すことになるので、 混乱の原因となりかねない。)

 

ファイル /etc/fstab, /etc/mtab, /proc/mounts

ファイル /etc/fstab (fstab(5) を見よ) は、それぞれのデバイスが通常マウントされる場所を、 オプションとともに記述したものである。 fstab(5) ファイルのデフォルトの場所は、 --fstab path コマンドラインオプションで上書きできる (より詳細は下記を参照すること)。

コマンド

mount -a [-t type] [-O optlist]

が (通常は起動スクリプトから) 実行されると、 fstab に記述されているすべてのファイルシステムが (適当なオプションの有無に関わらず、それぞれ適当なタイプで) マウントされる。 ただしキーワード noauto を含む行はマウントされない。 -F オプションを指定すると mount は fork し、 それぞれのファイルシステムが同時にマウントされる。

fstab または mtab で指定されたファイルシステムをマウントする場合、 コマンドラインにはデバイス、またはマウントポイントを指定すれば充分である。

プログラム mountumount は、現在マウントされているファイルシステムをファイル /etc/mtab で昔から管理している。 伝統的な通常の /etc/mtab のサポートはコンパイル時にデフォルトで完全に無効化できる。 なぜなら、現在の Linux システムはで、代わりに /proc/mounts へのシンボリックリンクにする方が良いからである。 ユーザ空間で管理されている通常の mtab ファイルは、 名前空間、コンテナ、その他の先進的な Linux 機能とともに使う場合には、 信頼性を持って動作できない。 通常の mtab のサポートが有効である場合、 ファイルもシンボリックリンクと同様に使うことができる。

mount に引き数を何も指定しない場合、 マウントされているファイルシステムが表示される。

/etc/fstab で指定されているマウントオプションを上書きしたい場合、 -o を使う必要がある:

mount device|dir -o options

コマンドラインで指定されたマウントオプションは、 /etc/fstab で指定されたオプションのリストに追加される。 このデフォルトの動作は、コマンドラインオプション --options-mode で変更できる。 通常の挙動では、衝突するオプションがある場合、最後のオプションが勝つ。

device (または LABEL, UUID, PARTUUID, PARTLABEL) と dir の両方が指定された場合、 mount プログラムは /etc/fstab ファイルを読み込まない。 例えば、デバイス foo/dir にマウントする場合、以下のように指定する:

mount /dev/foo /dir

このデフォルトの挙動は、コマンドラインオプション --options-source-force で変更し、fstab から設定を読み込ませることができる。 ルート以外のユーザーでは、 mount は常に fstab の設定を読み込む。

 

スーパーユーザー以外でのマウント

通常はスーパーユーザーのみがマウントを行うことができるが、 fstab 中の行に user オプションが含まれていれば、その行で指定されているファイルシステムは 誰でもマウントすることができる。

したがって

/dev/cdrom /cd iso9660 ro,user,noauto,unhide

という行があれば、誰でも挿入された CDROM 上の iso9660 ファイルシステムを
mount /cd

によってマウントできる。 mount は root 以外のユーザーにはとても厳格で、 fstab が解析されたり、ヘルパープログラムが実行される前に、 コマンドラインで指定された全てのパスが検証される。 ファイルシステムを指定するために、有効なマウントポイントを使うことが 強く推奨される。 さもないと、mount は失敗する。 例えば、NFS や CIFS のマウント元をコマンドラインから指定するのは、 良くない考えである。

詳細は fstab(5) を参照のこと。 ファイルシステムをマウントしたユーザーだけが、 それをアンマウントすることができる。 他のユーザーでもアンマウントを行えるようにしたい場合は、 fstab の行の指定を user の代わりに users とすること。 owner オプションは user オプションと似ているが、ユーザーがそのスペシャルファイルの 所有者でなければならないという制限がある。 これはたとえばログインスクリプトがコンソールのユーザーを /dev/fd の所有者にする場合、このデバイスに用いると便利だろう。 group オプションは (訳註: user オプションと) 似ているが、ユーザーがそのスペシャルファイルの グループのメンバでなければならないという制限がある。

 

bind マウント操作

ファイル階層の一部をどこか別の場所に再マウントすることができる。 使い方は以下の通りである:


mount --bind olddir newdir

もしくは、fstab エントリで、このオプションを使う:


/olddir /newdir none bind

この呼び出しの後、同じ内容を 2 つの場所でアクセスできる。

"bind" がカーネル VFS にセカンドクラスまたはスペシャルノードを 作成しないという点を理解することが重要である。 "bind" は、単にファイルシステムをアタッチする別の操作である。 "bind" 操作でアタッチされたファイルシステムの情報を格納する場所はない。 olddirnewdir は独立であり、 olddir はアンマウントできる。

1 つのファイル (を 1 つのファイル) に再マウントできる。 bind マウントを使って通常ディレクトリからマウントポイントを作ることができる。 例えば:


mount --bind foo foo

bind マウントコールで 1 つのファイルシステム (の一部) のみをアタッチし、 サブマウントはできない。 次のようにして、サブマウントを含む全てのファイル階層は、 2 つ目の場所にアタッチできる:


mount --rbind olddir newdir

カーネルによって管理されるファイルシステムのマウントオプションは、 元々のマウントポイントのマウントオプションと同じである点に注意すること。 ユーザー空間のマウントオプション (例えば、_netdev) は、 mount(8) によってコピーされず、 mount のコマンドラインオプションで明示的に指定する必要がある。

mount(8) は v2.27 以降で、関連するオプションを --bind と一緒に渡すことで、マウントオプションを変更することができる。 例えば:


mount -o bind,ro foo foo

この機能は、Linux カーネルではサポートされておらず、 追加の mount(2) の再マウントシステムコールを発行することで、 ユーザー空間で実装されている。 この方法はアトミックではない。

読み込みのみの bind マウントを作成する別の (昔からの) 方法は、 再マウント操作を使うことである。 例えば:


mount --bind olddir newdir
mount -o remount,bind,ro olddir newdir

読み込みのみの bind は読み込みのみのマウントポイント (VFS エントリ) を作成するが、 元々のファイルシステムのスーパーブロックは書き込み可能のままである。 つまり、 olddir は書き込み可能であるが、 newdir は読み込みのみということである。

nosuid, nodev, noexec, noatime, nodiratime, relatime VFS エントリフラグを、 "remount,bind" 操作で変更することができる。 他の (例えば、ファイルシステム固有のフラグ) は黙って無視される。 マウントオプションを (例えば -o rbind,ro で) 再帰的に変更することはできない。

mount(8) は v2.31 以降で、 再マウント操作時 ("-o remount" がコマンドラインで指定されている場合) に /etc/fstab に指定された bind フラグを無視するようになった。 コマンドラインで再マウントをする場合、 マウントオプションを完全に制御する必要がある。 以前のバージョンでは、bind フラグは常に適用され、 bind を操作することなしに、 マウントオプションを再定義することができなかった。 この mount(8) の挙動は、"remount,bind" が /etc/fstab ファイルに指定されている場合に、影響しない。

 

move 操作

マウントされたツリー を (纏めて) 他の場所に移動することが可能になった。 使い方は以下の通りである:


mount --move olddir newdir

これにより、前に olddir に現れていた内容が、 newdir でアクセスできる。 ファイルの物理的な場所は変更されない。 olddir がマウントポイントになる点に注意すること。

shared マウント以下にあった move マウントオプションは、 無効でありサポートされない。 現在の伝搬されているフラグを見るには、 findmnt -o TARGET,PROPAGATION を使うこと。

 

共有 (shared) サブツリー操作

Linux 2.6.15 からマウントとサブマウントを shared, private, slave, unbindable としてマークできる。 共有 (shared) マウントはマウントのミラーを作成するために提供される。 ミラーのマウントとアンマウントは、他のミラーに伝搬 (propagation) される。 スレーブ (slave) マウントはマスターからの伝搬は受けるが、逆の伝搬は受けない。 プライベート (private) マウントは伝搬をさせない。 バインド不可 (unbindable) マウントは bind 操作でクローンされないプライベートマウントである。 詳細な意味は、カーネルソースツリーの Documentation/filesystems/sharedsubtree.txt ファイルにドキュメント化されている。

サポートされている操作は、以下の通り:

mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint

以下のコマンドは、指定されたマウントポイント以下の 全てのマウントのタイプを再帰的に変更する。

mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint

mount(8) は、--make-* 操作が要求された場合、 fstab(5) を読まない。 全ての必要な情報はコマンドラインで指定しなければならない。

Linux カーネルは、1 回の mount(2) システムコールで複数の伝搬フラグを変更できない。 そして、このフラグは他のマウントオプションや操作と組み合わせることが できない。

util-linux 2.23 以降で mount コマンドは、 1 回の mount(8) 呼び出しで、 より多くの伝搬オプション (トポロジー) 変更が可能で、 他のマウントオプションと一緒に指定できる。 この機能は「実験的」である。 伝搬フラグは、先に呼び出されたマウント操作が成功した場合、 追加の mount(2) システムコールを呼び出すことで適用できる。 この利用方法はアトミックではない点に注意すること。 伝搬フラグを fstab(5) でマウントオプション (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable) を指定できる。

例:

mount --make-private --make-unbindable /dev/sda1 /foo

は、以下と同じである:

mount /dev/sda1 /foox
mount --make-private /foo
mount --make-unbindable /foo

 

コマンドラインオプション

mount の実行時に用いられるオプションは以下のようにして決定される。 まずそのファイルシステムに特有のオプションが fstab 中の対応する行から抽出される。 次にコマンドラインの -o 引き数によって指定されたオプション、最後に -r または -w オプションが指定されている場合には、それらが適用される。

コマンド mount は、/sbin/mount.suffix マウントヘルパーに 全てのオプションを渡すわけではない。 mount とマウントヘルパーのインタフェースは、 以下の外部ヘルパーのセクションで記載されている。

mount コマンドで利用できるコマンドラインオプションは以下の通り:

-a, --all
fstab に記載されている (指定したタイプの) ファイルシステムを (noauto キーワードが含まれている行を除き) すべてマウントする。 ファイルシステムは fstab の順番に従ってマウントされる。 mount コマンドは、ファイルシステムのマウント元とマウント先 (加えて、bind マウントまたは btrfs についてはファイルシステムのルート) を比較し、 既にマウントされているファイルシステムを検知する。 既にマウントされているファイルシステムのカーネルテーブルは、 mount --all でキャッシュされる。 これは、複製された fstab エントリがマウントされるという意味である。

オプション --all は、再マウント操作でも使うことができる。 この場合、全てのフィルタ (-t-O) は、 既にマウントされているファイルシステムのテーブルに適用される。

mount -afstab のチェックに使うのは、良くない方法である点に注意すること。 推奨される方法は、findmnt --verify を使うことである。

-B, --bind
サブツリーをどこか別の場所に再マウントする (それにより、ファイルシステムの内容は両方の場所で利用可能になる)。 上記の bind マウント を参照すること。
-c, --no-canonicalize
パスを正則化 (canonicalize) しない。 マウントコマンドは、全てのパスを (コマンドラインからであっても、fstab からであっても) デフォルトで正則化する。 このオプションは、正則化した絶対パスに対して、 -f フラグとともに使うことができる。 このオプションは、mount -i を呼び出すマウントヘルパーのために、 設計されている。 このコマンドラインオプションを通常のマウント操作として 使わないことを、強く推奨する。

mount(8) は、このオプションを /sbin/mount.type ヘルパーに渡さない。

-F, --fork
(-a とともに用いる) それぞれのデバイスごとに fork して新しい mount プロセスを生成する。 別々のデバイス、別々の NFS サーバに対するマウントを並行して行うことになる。 利点は動作が高速になること、 また NFS タイムアウトが並行して計測されることである。 逆に欠点としては、マウントの順序が規定されないことである。 したがって、 /usr/usr/spool の両方を同時にマウントするときには、このオプションを用いることは できない。
-f, --fake
実際のシステムコール以外を除いてすべての動作をする。 もうちょっとわかりやすく言うと、 ファイルシステムのマウント動作を「行うふり」をする。 このオプションは -v フラグとともに用いると便利で、 mount コマンドが行おうとすることを確認できる。 また以前に -n オプションを用いてマウントされたデバイスのエントリーを /etc/mtab に書き込む目的にも用いることができる。 -f オプションは、/etc/mtab の既存のレコードをチェックし、 レコードが既に存在する場合、失敗する。 (通常のフェイクでないマウントがチェックされる。このチェックは、 カーネルで行われる。)
-i, --internal-only
/sbin/mount.filesystem ヘルパがあっても、呼び出さない。
-L, --label label
指定した label を持つパーティションをマウントする。
-l, --show-labels
ラベルを mount の出力に追加する。 これを行うには、mount にディスクデバイスの読み取り権限が必要である (つまり set-user-ID root されている必要がある)。 このような ext2, ext3, ext4 のラベルを設定するには e2label(8) ユーティリティを用いればよい。 また、XFS のラベルを設定するには xfs_admin(8) を用いればよい。 reiserfs のラベルを設定するには reiserfstune(8) を用いればよい。
-M, --move
サブツリーをどこか別の場所に移動する。 上記のサブセクション move 操作 を参照すること。
-n, --no-mtab
マウントの際に /etc/mtab に書き込みを行わない。 これが必要になるのは、例えば /etc がリードオンリーのファイルシステムの場合などである。
-N, --namespace ns
ns で指定された名前空間でマウントを実行する。 ns はその名前空間で実行されているプロセスの PID、 または名前空間を表すスペシャルファイルである。

mount(8) は、/etc/fstab を読んで /etc/mtab に書き込み (または /run/mount に書き込み)、 mount(2) システムコールを呼び出し、名前空間を切り替える。 さもなければ、元々の名前空間で実行する。 これは、切り替え先の名前空間には、 mount(2) コマンドを実行するのに必要なライブラリや他に要求されるものを 含んでいる必要がないことを意味する。

より詳細な情報は、namespaces(7) を参照すること。

-O, --test-opts opts
-a オプションを適用するファイルシステムを制限する。 その点については、 -O-a なしで指定できない点を除けば、 -t オプションに似ている。 例えば、コマンド:

mount -a -O no_netdev

はオプション _netdev/etc/fstab ファイルのオプションフィールドで指定されている ファイルシステム以外の全てのファイルシステムをマウントする。

-t オプションが厳密にマッチする点が異なる。 no をオプションの前に付けると、残りオプションは無効にされない。

-t-O オプションは機能が足し合わされる。 つまり、コマンド

mount -a -t ext2 -O _netdev

は -netdev オプションが付けられた ext2 ファイルシステムをマウントし、 ext2 ファイルシステム、または _netdev オプションのいずれかの場合は、 マウントしない。
-o, --options opts
指定されたマウントオプションを使う。 opts 引き数はカンマ区切りのリストである。 例:

mount LABEL=mydisk -o noatime,nodev,nosuid

より詳細は ファイルシステム非依存のマウントオプションファイルシステム独自のマウントオプション のセクションを参照すること。

--options-mode mode
コマンドラインからのオプションを、fstab/mtab のオプションとどのように組み合わせるかを制御する。 modeignore, append, prepend, replace のいずれかである。 例えば、append は、fstab のオプションはコマンドラインから 指定されたオプションに足し合わされる。 デフォルト値は prepend である。-- これは、コマンドラインオプションが fstab オプションの後に評価されることを意味する。 オプションが衝突する場合、最後のオプションが勝つ点に注意すること。

--options-source source
デフォルトオプションの指定元。 sourcefstab, mtab, disable をカンマ区切りのリストで指定したものである。 disablefstabmtab を無効化し、--options-source-force を無効化する。 デフォルト値は fstab,mtab である。

--options-source-force
devicedir の両方が指定された場合も、 fstab/mtab からのオプションを使う。

-R, --rbind
サブツリーと利用可能な全てのサブマウントを、どこか他の場所に 再マウントする (その内容は両方の場所で利用可能にする)。 上記のサブセクション bind マウント を参照すること。
-r, --read-only
ファイルシステムを読み込みのみでマウントする。 別名は -o ro である。

ファイルシステムタイプとファイルシステムの状態とカーネルの 挙動により、システムがデバイスに書き込むことができる場合もある。 例えば、ext3 と ext4 では、ファイルシステムがダーティである場合、ジャーナルを再生する。 このような書き込みアクセスを防止するには、 ext3 または ext4 ファイルシステムを ro,noload マウントオプションでマウントするか、 デバイス自身を読み込みのみのモードに設定する。 blockdev(8) コマンドを参照すること。

-s
ずさんな (sloppy) マウントオプションについて、失敗させるのではなく、大目に見る。 ファイルシステムタイプでサポートされていないマウントオプションを 無視する。 全てのファイルシステムが、このオプションをサポートしている わけではない。 現在、mount.nfs マウントヘルパーでのみサポートされている。
--source device
マウントコマンドの引き数が 1 つだけ指定された場合、 その引き数はマウント先 (マウントポイント) またはマウント元 (デバイス) として 解釈される。 このオプションは引き数が明示的にマウント元であることを定義できる。
--target directory
マウントコマンドの引き数が 1 つだけ指定された場合、 その引き数はマウント先 (マウントポイント) またはマウント元 (デバイス) として 解釈される。 このオプションは引き数が明示的にマウント先であることを定義できる。
-T, --fstab path
別の fstab ファイルを指定する。 path がディレクトリの場合、ディレクトリ内のファイルは strverscmp(3) でソートされ、"." で始まるファイルと、 .fstab 拡張子のないファイルは無視される。 このオプションは複数回指定できる。 このオプションは、ほぼ initramfs または chroot スクリプトのために設計されており、 追加の設定は、標準のシステム設定の範囲を越えて指定されている。

mount(8) はオプション --fstab/sbin/mount.type ヘルパーに渡さない点に注意すること。 つまり、別の fstab ファイルはヘルパーから見えない。 これは通常のマウントでは問題なく、(root 以外の) ユーザーによるマウントは、 ユーザーの権限をチェックするために、fstab が常に必要がある。

-t, --types fstype
-t に続く引き数はファイルシステムタイプを指定するのに用いられる。 現在サポートされているファイルシステムは動作しているカーネルに 依存する。 完全なファイルシステムのリストは、 /proc/filesystems/lib/modules/$(uname -r)/kernel/fs を参照すること。 もっとも一般的なファイルシステムは、ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs, cifs である。

プログラム mountumount はファイルシステムのサブタイプををサポートする。 サブタイプは '.subtype' サフィックスで定義される。 例えば、'fuse.sshfs' のようになる。 マウント元にプレフィックスを足すよりは、サブタイプの記法を使う方が 推奨される (例えば 'sshfs#example.com' は推奨されない)。

-t オプションが与えられなかった場合や、 auto タイプが指定された場合、 mount は適切なタイプを推測する。 mount はファイルシステムタイプの推測に blkid ライブラリを使う。 このプローブに失敗すると、mount はファイル /etc/filesystems を読み込もうとする。 さらにこのファイルがなければ /proc/filesystems を読み込もうとする。 そして、読み込んだファイルにリストされているファイルシステムが テストされる。 ただし "nodev" ラベルの付いているもの (すなわち devpts, proc, nfs) はテストから除かれる。 /etc/filesystems が * のみの行で終わっている場合、 mount はその後に /proc/filesystems を読み込む。 マウントを試す際、 全てのファイルシステムタイプがマウントオプション silent が指定されてマウントされる。

auto タイプはフロッピーを一般ユーザーがマウントする場合に特に 便利であろう。 プローブの順序を変更したい場合 (例えば msdos の前に vfat の試行をしたい場合や ext2 の前に ext3 を試行したい場合) や、 カーネルモジュールの自動ローダを利用している場合には、 /etc/filesystems ファイルを作っておくと便利である。

複数のタイプをコンマで区切ったリストで指定することもできる。 オプション -t/etc/fstab エントリと同様に指定できる。 オプション -t のファイルシステムタイプのリストは、 no をプレフィックスにして、そのファイルシステムタイプに対して 何もしないことを指定する。 プレフィックス no/etc/fstab エントリに指定された場合も何もしない。

プレフィックス no は オプションとともに指定すると意味がある。 例えば以下のコマンド:

mount -a -t nomsdos,smbfs

msdos および smbfs を除くすべてのファイルシステムをマウントする。

大部分のタイプに対して、全ての mount プログラムは単純に mount(2) システムコールを発行するだけであり、ファイルシステムタイプについての 詳細な知識は必要ない。 一方で、(nfs, nfs4, cifs, smbfs, ncpfs のような) いくつかのタイプでは、 アドホックなコードが必要である。 nfs, nfs4, cifs, smbfs, ncpfs ファイルシステムについては、 別々のマウントプログラムがある。 全てのタイプを統一された方法で扱えるようにするため、 mount は、タイプ type が指定されて呼び出された場合、(存在すれば) プログラム /sbin/mount.type を実行する。 smbmount プログラムはバージョン毎には別の呼び出し方があるので、 /sbin/mount.smbfs は、望ましい呼び出しを実現するためのシェルスクリプトにする 必要がある。

-U, --uuid uuid
指定された uuid を持つパーティションをマウントする。
-v, --verbose
詳細なモード。
-w, --rw, --read-write
ファイルシステムを読み書きモードでマウントする。 読み書きモードはカーネルのデフォルトである。 別名は -o rw である。

コマンドラインで -w を指定した場合、mount に 書き込み禁止されたデバイスに読み込みのみのマウントを試させない。 デフォルトでは、読み書きフラグでの mount システムコールが失敗した場合、 読み込みのみのマウントを試す。

-V, --version
バージョン情報を表示して、終了する。
-h, --help
ヘルプを表示して、終了する。

 

ファイルシステム非依存のマウントオプション

オプションの指定を行うには、 -o フラグに続けて各オプションをコンマで区切った文字列を書く。 オプションには、 /etc/fstab の中でのみ意味を持つものもある。

これらのオプションのいくつかは、システムカーネルでデフォルトで 有効または無効にされる。 現在の設定を見るには、/proc/mounts のオプションを参照すること。 ファイルシステムにはファイルシステム毎のデフォルトの マウントオプションがある (例えば extN ファイルシステムについては tune2fs -l の出力を参照すること)。

以下のオプションはマウントされるすべての ファイルシステムに適用できるものである (但し、全てのファイルシステムがこれらのオプションを引き受けるとは限らない。 例えば、 sync オプションは現在 ext2, ext3, ext4, fat, vfat, ufs, xfs でのみ効果をもつ):

async
そのファイルシステムに対するすべての I/O が非同期 (asynchronous) に行われる。 (sync オプションも参照すること。)
atime
noatime 機能を使わない。 よって、i ノードアクセス時刻はデフォルトでカーネルが制御する。 relatimestrictatime マウントオプションの説明を参照すること。
noatime
このファイルシステムの i ノードアクセス時刻を更新しない (例えば、ニューススプールのアクセスを速くして、ニュースサーバーを スピードアップする)。 これは全ての i ノードタイプ (ディレクトリを含む) に働くので、 nodiratime を暗黙のうちに指定する。
auto
-a が指定されたときにマウントされる。
noauto
明示的にマウントするのみにする (つまり、 -a オプションでファイルシステムをマウントしない)。
context=context, fscontext=context, defcontext=context, rootcontext=context 拡張属性をサポートしないファイルシステムをマウントする際に、 context= オプションは役立つ。 そのようなファイルシステムには、フロッピーや VFAT でフォーマットされたハードディスク、 通常は SELinux を動作させないシステム、 SELinux でないワークステーションでフォーマットされた ext3 または ext4 のディスクなどがある。 また、フロッピーのように、信頼できないファイルシステムにも context= を使うことができる。 これは、以前の 2.4.<x> カーネルバージョンで、 xattr をサポートするファイルシステムを使う場合に、互換性の助けになる。 xattr がサポートされているにも関わらず、 ディスク全体が 1 つのセキュリティコンテキストであると仮定することで、 全てのファイルをラベル付けせずに時間を節約することができる。

リムーバブルメディアについて一般に使われるオプションは、 context=system_u:object_r:removable_t である。

他の 2 つのオプションは fscontext=defcontext= である。 この 2 つのオプションはコンテキストオプションとして、同時に 2 つを指定することができない。 これは、fscontext と defcontext はいずれかを指定できるが、 両方を指定することはできないことを意味する。

fscontext= オプションは、xattr サポートに関わらず全てのファイルシステムに働く。 fscontext オプションは、特定のセキュリティコンテキストに対して、 非常に重要なファイルシステムラベルを設定する。 このファイルシステムラベルは、ファイルの個別のラベルとは 別にされている。 これは、ファイルシステム全体に対して、マウントやファイル作成の際の、 ある種の権限チェックを表す。 個々のファイルラベルは、まだファイル自体の xattr から取得される。 コンテキストオプションは、各ファイルについて同じラベルが 与えられるのに加え、 fscontext が提供する総計のコンテキストが実際に設定される。

defcontext= オプションを使って、デフォルトセキュリティコンテキストを設定し、 ファイルのラベルを外すことができる。 このオプションは、ポリシーでラベルが外されたファイルの値セットを 上書きし、xattr ラベリングをサポートするファイルシステムを必要とする。

rootcontext= オプションは、ファイルシステムまたは i ノードがユーザ空間に見える前に、 マウントされるファイルシステムのルート i ノードに明示的にラベル付けできる。 これは、ステートレスな Linux で便利なことがわかるだろう。

カーネルは、現在のコンテキストからたとえ変更されていなくても、 コンテキストオプションを含む再マウント要求を拒否する。

警告: context の値はカンマを含む可能性がある。 この場合、値を正しくクォートしなければならない。 さもないと、 mount(8) はカンマをマウントオプションの区切り文字として解釈してしまう。 シェルがクォートを外してしまうことを忘れてはいけないので、 ダブルクォートが必要である。 例:

mount -t tmpfs none /mnt -o \
  'context=system_u:object_r:tmp_t:s0:c127,c456,noexec'

より詳細は、 selinux(8) を参照すること。

defaults
デフォルトのオプション: rw, suid, dev, exec, auto, nouser, async を用いる。

全てのデフォルトのマウントオプションの実際の集合は、 カーネルとファイルシステムタイプに依存する点に注意すること。 より詳細は、このセクションの最初を参照すること。

dev
ファイルシステム上のキャラクタ・スペシャル・デバイスや ブロック・スペシャル・デバイスを利用できるようにする。
nodev
ファイルシステム上のキャラクタ・スペシャル・デバイスや ブロック・スペシャル・デバイスを利用できるようにしない。
diratime
ファイルシステム上のディレクトリ i ノードアクセス時刻を更新する。 これがデフォルトである。 (このオプションは noatime が設定されている場合、無視される。)
nodiratime
ファイルシステム上のディレクトリ i ノードアクセス時刻を更新しない。 (このオプションは noatime が設定されている場合、暗黙のうちに設定される。)
dirsync
ファイルシステムの全てのディレクトリの更新が同期的 (synchronously) に行われる。 これは以下のシステムコールに影響する: creat, link, unlink, symlink, mkdir, rmdir, mknod, rename.
exec
バイナリの実行を許可する。
noexec
マウントされているファイルシステム上のバイナリの直接実行を許可しない。
group
通常のユーザーの属するグループのうちの 1 つが デバイスのグループとマッチした場合に、 そのユーザーがファイルシステムをマウントするのを許可する。 このオプションはオプション nosuidnodev を暗黙のうちに指定する (ただし、オプション行で group,dev,suid のようにして、その後のオプションで上書きしない限り)。
iversion
i ノードが修正される度に、i_version フィールドを増加させる。
noiversion
i_version i ノードフィールドを増加させない。
mand
このファイルシステム上での強制 (mandatory) ロックを許可する。 fcntl(2) を参照すること。
nomand
このファイルシステム上での強制 (mandatory) ロックを許可しない。
_netdev
ネットワークアクセスが必要なデバイス上にあるファイルシステム (システムでネットワークが使用可能になるまでは、 ファイルシステムをマウントさせないために使われる)。
nofail
このデバイス上で、エラーがない場合は、報告しない。
relatime
修正時刻や変更時刻と比較して、i ノードのアクセス時刻を更新する。 以前のアクセス時刻が、現在の修正時刻または変更時刻より前である 場合にのみ、アクセス時刻が更新される。 (noatime と似ているが、 ファイルが最後に修正されてから読まれているかを知る必要がある mutt や他のアプリケーションを壊さない。)

Linux 2.6.30 以降では、カーネルのデフォルトの挙動は、 (noatime が指定されていない限り) このオプションで提供される。 これまでの挙動にする場合、 strictatime オプションを指定する必要がある。 加えて、Linux 2.6.30 以降では、 ファイルの最終アクセス時刻が 1 日より前の場合、常に更新される。

norelatime
relatime 機能を使わない。 strictatime マウントオプションも参照すること。
strictatime
完全な atime 更新を明示的に許可する。 これは relatime または noatime がカーネルのデフォルトに指定された場合に利用可能になるが、 ユーザー空間で上書きすることもできる。 デフォルトのシステムマウントオプションの詳細は、 /proc/mounts を参照すること。
nostrictatime
i ノードアクセス時刻の更新について、カーネルのデフォルトの挙動を使う。
lazytime
メモリ内のファイル i ノードの時刻 (atime, mtime, ctime) のみを更新する。

このマウントオプションは、事前確保されたファイルに対して 頻繁なランダム書き込みを行う際の、i ノードテーブルへの書き込みの負荷を顕著に減少させる。

ディスク上のタイムスタンプの更新は、以下の場合にのみ行われる:

- ファイルのタイムスタンプに関係のない何らかの変更について、 i ノードが更新される必要があった場合。

- アプリケーションが fsync(2), syncfs(2), sync(2) を呼び出した場合。

- 削除されていない i ノードが、メモリから追い出された場合。

- i ノードがディスクに書かれてから、24 時間以上が経過した場合。

nolazytime
lazytime 機能を使わない。
suid
このファイルシステムからプログラムを実行する場合、 set-user-ID と set-group-ID ビット、 またはファイルのケーパビリティ (capability) を遵守する。
nosuid
このファイルシステムからプログラムを実行する場合、 set-user-ID と set-group-ID ビット、 またはファイルのケーパビリティ (capability) を遵守しない。
silent
silent フラグを有効にする。
loud
silent フラグを無効にする。
owner
通常のユーザーがデバイスの所有者とマッチした場合に、 そのユーザーがファイルシステムをマウントするのを許可する。 このオプションはオプション nosuidnodev を暗黙のうちに指定する (ただし、オプション行で owner,dev,suid のようにして、その後のオプションで上書きしない限り)。
remount
すでにマウントされているファイルシステムを再マウントしようとする。 これは通常ファイルシステムのマウントフラグを変更するとき (特にリードオンリーのファイルシステムを書き込み可能にするとき) に用いられる。 デバイスとマウントポイントを変更しない。

bind フラグを付けた再マウント操作は特別な意味を持つ。 上記のサブセクション bind マウント を参照すること。

再マウント機能は、マウントコマンドが fstab でオプションが指定された場合に 動作する標準的な方法に従う。 これは、 devicedir の両方が指定された場合に、mount が fstab (または mtab) を 読まないという意味である。

mount -o remount,rw /dev/foo /dir

この呼び出しの後、全ての古いマウントオプションは置き換えられ、 fstab (または mtab) から指定された任意のオプションは無視される。 ただし、内部的に生成され、mount コマンドで管理される loop= オプションは例外である。

mount -o remount,rw /dir

この呼び出しの後、mount コマンドは fstab を読んで、 コマンドラインからのオプション (-o) とマージする。 fstab にマウントポイントがない場合、マウント元を指定しない再マウントが 許可される。

mount(8) は、指定されたフィルター (-O-t) で選ばれた 全てのマウントされたファイルシステムを、--all を使って再マウントできる。 例えば:

mount --all -o remount,ro -t vfat

は、既にマウントされた読み込みのみのモードの vfat ファイルシステムを再マウントする。 各ファイルシステムは "mount -o remount,ro /dir" で再マウントされる。 これは mount コマンドが fstab または mtab ファイルを読んで、 ファイルに指定されたオプションと、コマンドラインで指定された オプションをマージすることを意味する。

ro
ファイルシステムをリードオンリーでマウントする。
rw
ファイルシステムを読み書き可能なモードでマウントする。
sync
そのファイルシステムに対する I/O がすべて同期的 (synchronous) に行われる。 書き込みサイクルが制限されたメディア (例えば、フラッシュドライブ) の場合、 sync はライフサイクルを短くする。
user
一般ユーザーでもファイルシステムをマウントできるようにする。 マウントを行ったユーザーの名前が mtab (or to the private libmount file in /run/mount on systems without a regular mtab) に書き込まれ、 そのユーザーがアンマウントできるようになる。 このオプションを指定すると、同時に noexec, nosuid, nodev が指定されたことになる。 ただし続けて指定すれば上書きは可能。 すなわち user,exec,dev,suid のような行を指定すればよい。
nouser
一般ユーザーがファイルシステムをマウントすることを禁止する。 これがデフォルトであり、他のオプションを暗黙のうちに指定しない。
users
全てのユーザーがファイルシステムをマウント・アンマウント 出来るようにする。 このオプションを指定すると、 一般ユーザーがマウントを行っていたとしても、同時に noexec, nosuid, nodev が指定されたことになる (ただし続けて指定すれば上書きは可能。 すなわち users,exec,dev,suid のような行を指定すればよい)。
X-*
"X-" をプレフィックスに付けた全てのオプションは、 コメント、またはユーザー空間のアプリケーション固有オプションとして 解釈される。 このオプションはユーザー空間 (例えば、mtab ファイル) には格納されず、 mount.type ヘルパーにも、 mount(2) システムコールにも渡されない。 推奨される形式は X-appname.option である。
x-*
X-* と似ているが、ユーザー空間に永続的に格納する。 これは、そのオプションが umount または他の操作で利用できることを意味する。 マウントオプションをユーザー空間で管理するのはトリッキーである点に 注意すること。 libmount ベースのツールを使う必要があるが、 (例えば、move マウント操作の後や、または共有されない名前空間において) オプションが常に利用可能である保証はない。

util-linux v2.30 より前では、x-* オプションは libmount で管理されず、ユーザー空間に格納されなかった (機能的には今の X-* と同じである)。 しかし、(initrd, systemd などでの) 使い方が増えるに従い、 機能が拡張され、既存の fstab 設定を変更せずに利用できるようになった。

X-mount.mkdir[=mode]
マウント先ディレクトリ (マウントポイント) を作成することを許可する。 オプションの引き数 mode は、8 進数記法で、 mkdir(2) でファイルシステムのアクセスモードを指定するのに使われる。 デフォルトのモードは 0755 である。 このオプションは root ユーザーでのみサポートされる。 このオプションは x-mount.mkdir としてもサポートされており、 この記法は mount.mkdir の v2.30 以降では推奨されない。

 

ファイルシステム独自のマウントオプション

最初にファイルシステムの man ページを見ること。 ext4 ファイルシステムがサポートするオプションを知りたい場合、 ext4(5) の man ページをチェックすること。 存在しない場合は、 mount.cifs(8) のような対応する mount のページも参照すること。 対応するユーザーランドのツールをインストールする 必要があるかもしれない。

以下のオプションは特定のファイルシステムにのみ適用される。 ファイルシステムの順に並べてある。 すべて -o フラグに続けて指定する。

どのようなオプションがサポートされているかは、 実行されているカーネルに少々依存する。 より詳しい情報はカーネルソースのサブディレクトリ Documentation/filesystems で見つけることができる。

 

adfs のマウントオプション

uid=,valuegid=,value このファイルシステムのファイルの所有者とグループを設定する (デフォルトは uid=gid=0)。
ownmask=,valueothmask=,value それぞれ ADFS の「所有者」属性と「その他」属性に対する パーミッションマスクを設定する (デフォルトはそれぞれ 0700 と 0777)。 /usr/src/linux/Documentation/filesystems/adfs.txt も参照のこと。

 

affs のマウントオプション

uid=,valuegid=,value ファイルシステムのルートの所有者とグループを設定する (デフォルトは uid=gid=0。 ただしオプション uidgid を値なしで指定すると、カレントプロセスの UID および GID が用いられる)。
setuid=,valuesetgid=,value すべてのファイルの所有者とグループを設定する。
mode=value
すべてのファイルの許可属性を value & 0777 に設定する。 元の許可属性は無視される。 読み込みが許可されているディレクトリには検索許可の属性を付加する。 この値は 8 進数で与える。
protect
ファイルシステムの保護ビットへのいかなる変更も許可しない。
usemp
ファイルシステムのルートの UID と GID を マウントポイントの UID と GID に設定する。 ただしこの設定は最初の sync または umount の際に実行され、 その後にこのオプションはクリアされる。変なの。
verbose
それぞれのマウントが成功するごとにメッセージを表示する。
prefix=string
リンクをたどる際にボリューム名の前に用いられるプレフィックス (prefix)。
volume=string
シンボリックリンクをたどる際に '/' の前に用いられるプレフィックス。 最長 30 文字。
reserved=value
デバイススタート時の未使用ブロックの数。デフォルトは 2。
root=value
ルートブロックの位置を明示的に与える。
bs=value
ブロックサイズを与える。有効な値は 512, 1024, 2048, 4096 のいずれか。
grpquota|noquota|quota|usrquota
これらのオプションは指定可能であるが、単に無視される。 (但し、 quota ユーティリティは /etc/fstab にこのような文字列があると反応する)

 

debugfs のマウントオプション

debugfs ファイルシステムは擬似 (pseudo) ファイルシステムであり、 通例としては /sys/kernel/debug にマウントされる。 カーネルバージョン 3.4 では、debugfs は以下のオプションがある:
uid=n, gid=n
マウントポイントの所有者とグループを設定する。
mode=value
マウントポイントのモードを設定する。

 

devpts のマウントオプション

devpts ファイルシステムは擬似ファイルシステムで、 通例としては /dev/pts にマウントされる。プロセスは擬似端末 (pseudo terminal) を取得するために、 /dev/ptmx をオープンする。 するとそのプロセスは番号を通して擬似端末を使えるようになり、 擬似端末のスレーブに /dev/pts/<number> 経由でアクセスできるようになる。
uid=,valuegid=,value 新たに作成される PTY の所有者と所有グループを設定する。 何も指定しないと、作成したプロセスの UID と GID になる。 例えば tty グループの GID が 5 であったとすると、 gid=5 とすれば新たに作成された PTY は tty グループに属することになる。
mode=value
新たに作成される PTY のモードを設定する。 デフォルトは 0600 である。 mode=620gid=5 を設定すると、新たに生成される PTY は、 "mesg y" がデフォルトになる。
newinstance
devpts ファイルシステムのプライベートインスタンスを作成する。 この新しいインスタンスに確保された PTY のインデックスは、 他の PTY のインスタンスのインデックスとは、独立である。

この newinstance オプションを指定しない devpts の全てのマウントは、 同じ PTY のインデックスを共有する (つまり、レガシーモード)。 newinstance オプションを指定した devpts のマウントは、 PTY のインデックスのプライベートなセットを持つ。

このオプションは主に Linux カーネルでコンテナをサポートするために使われる。 これは Linux カーネルバージョン 2.6.29 以降で実装されている。 さらに、このオプションはカーネル設定で CONFIG_DEVPTS_MULTIPLE_INSTANCES が有効にされている場合にのみ、利用できる。

このオプションを効率的に使うには、 /dev/ptmxpts/ptmx のシンボリックリンクであるべきである。 詳細はカーネルソースツリーの Documentation/filesystems/devpts.txt を参照すること。

ptmxmode=value
devpts ファイルシステムの新しい ptmx デバイスノードのモードを設定する。

devpts の複数インスタンスをサポート (上記の newinstance オプションを参照) すると、 各インスタンスはプライベートの ptmx ノードを devpts ファイルシステムのルート (典型的には /dev/pts/ptmx) に持つ。

古いバージョンのカーネルとの互換性のため、新規作成された ptmx ノードのデフォルトモードは 0000 である。

ptmxmode=valueptmx ノードに対して、より役に立つモードを指定し、 newinstance オプションが指定された場合に、強く推奨される。

これは Linux カーネルバージョン 2.6.29 以降で実装されている。 さらに、このオプションはカーネル設定で CONFIG_DEVPTS_MULTIPLE_INSTANCES が有効にされている場合にのみ、利用できる。

 

fat のマウントオプション

(注意: fat は独立したファイルシステムではなく、 msdos, umsdos, vfat 各ファイルシステムの共通部分である。)
blocksize={512|1024|2048}
ブロックサイズを設定する (デフォルトは 512)。 このオプションは古い。
uid=,valuegid=,value すべてのファイルの所有者とグループを設定する (デフォルトはカレントプロセスの UID と GID)。
umask=value
umask を設定する (umask とは許可属性のビットマスクで、 立てないビットを立てたもの)。 デフォルトはカレントプロセスの umask。値は 8 進数で与える。
dmask=value
ディレクトリにのみ適用される umask を設定する。 デフォルトはカレントプロセスの umask。 値は 8 進数で与える。
fmask=value
通常のファイルにのみ適用される umask を設定する。 デフォルトはカレントプロセスの umask。 値は 8 進数で与える。
allow_utime=value
このオプションは mtime/atime の権限チェックを制御する。
20
カレントプロセスがファイルのグループIDのグループである場合、 タイムスタンプを変更できる。
2
他のユーザーがタイムスタンプを変更できる。

デフォルトは `dmask' オプションから設定する (ディレクトリが書き込み可能の場合、 utime(2) も許可されている。 つまり ~dmask & 022 である。)

通常 utime(2) はカレントプロセスがファイルの所有者であるかをチェックし、 または CAP_FOWNER ケーパビリティがあるかをチェックする。 しかし、FAT ファイルシステムはディスク上に UID/GID を持たないので、 通常のチェックはとても柔軟性がない。 このオプションを使うと、それを簡単にできる。

check=value
3 つの異なるレベルの厳密さが選択できる。
r[elaxed]
大文字と小文字を受け付け、それぞれ等価と見なす。 ロングネームの部分は切り捨てられる (すなわち verylongname.foobarverylong.foo となる)。 スペース文字を名前のそれぞれの部分 (本体と拡張子) に用いることができる。
n[ormal]
"relaxed" と似ているが、多くの特殊文字 (*, ?, <, スペースなど) は 用いることができない。デフォルト。
s[trict]
"normal" と似ているが、名前には長い部分を含むことができない。 また Linux では用いることができるが MS-DOS では受け入れられない特殊文字 (+, =, など) を用いることができない。
codepage=value
FAT や VFAT ファイルシステムで、短いファイル名に変換するときに 用いる文字のコードページを設定する。 デフォルトではコードページ 437 が用いられる。
conv=mode
このオプションは古く、失敗するか、無視される。
cvf_format=module
自動検知の結果ではなく、CVF (Compressed Volume File: 圧縮ボリュームファイル) モジュール cvf_module を使うよう、ドライバに強制する。 カーネルが kmod をサポートしていれば、 cvf_format=xxx オプションとしてもオンデマンドで CVF モジュールをロードできる。 このオプションは古い。
cvf_option=option
CVF モジュールに渡すオプション。 このオプションは古い。
debug
debug フラグを ON にする。 バージョン文字とファイルシステムのパラメータが表示される (これらのデータはパラメータが一貫していないような場合にも表示される)。
discard
このオプションが設定されると、ブロックが解放されると、 ブロックデバイスに discard/TRIM コマンドが発行される。 これは SSD デバイスと、スパース/thin プロビジョニングされた LUN で役立つ。
dos1xfloppy
このオプションが設定されると、バックのデバイスサイズで決定される、 フォールバックのデフォルト BIOS パラメータブロック設定を使う。 これらの固定値のパラメータは、DOS 1.x で 160 kiB, 180 kiB, 320 kiB, 360 kiB フロッピーとフロッピーイメージに 仮定されるデフォルト値にマッチする。
errors={panic|continue|remount-ro}
致命的なエラーの場合の FAT の挙動を指定する。 パニック、何もせずに継続する、パーティションを読み込みのみの モードで再マウントする (デフォルトの挙動) のいずれかである。
fat={12|16|32}
12 ビット fat か 16 ビット fat か 32 ビット fat かを特定する。 これは FAT 形式の自動認識ルーチンによる設定を上書きする。 用いる際には注意すること。
iocharset=value
8 ビットの文字を 16 ビットの Unicode 文字に変換する (あるいはその逆) ときに用いる文字セット (character set)。デフォルトは iso8859-1 である。 長いファイル名は、ディスクには Unicode フォーマットで保存されている。
nfs={stale_rw|nostale_ro}
FAT ファイルシステムを NFS でエクスポートする場合にのみ、有効にする。

stale_rw: このオプションを指定すると、検索を改善する NFS に関連するコードで 使われるディレクトリ i ノードのインデックス (キャッシュ) を管理する。 NFS 上の完全なファイル操作 (読み書き) がサポートされるが、 NFS サーバーでのキャッシュ追い出しが起こり、誤った ESTALE エラーが起きる可能性がある。

nostale_ro: このオプションは、i ノード番号と、 FAT ディレクトリエントリにおけるディスク上のファイルの場所の ファイルハンドルに基づいている。 これは、ファイルが i ノードキャッシュから追い出されても、 ESTALE が返されないことを保証する。 しかし、リネーム・作成・アンリンクといった操作では、 ファイルハンドルが前に指していたファイルから別のファイルを指すので、 データ破壊を起こす可能性がある。 こういった理由により、このオプションもファイルシステムを 読み込みのみでマウントする。

後方互換を保つために '-o nfs' も受け付けられ、デフォルトは stale_rw である。

tz=UTC
このオプションは (FAT 上の Windows で使われる) ローカル時間と (Linux が内部的に使う) UTC のタイムスタンプの変換を行わない。 これはローカル時間の落とし穴を避けるため UTC に設定するので、 (デジタルカメラのような) デバイスをマウントする際に特に役立つ。
time_offset=minutes
FAT で使われるローカル時間から UTC へのタイムスタンプ変換のオフセットを設定する。 つまり、Linux が内部的に使う UTC に変換するために、 minutes を各タイムスタンプから差し引く。 これは、 settimeofday(2) でカーネルに設定されているタイムゾーンが、 ファイルシステムで使われているタイムゾーンと異なる場合に役立つ。 このオプションは、夏時間 (DST) が存在する場合、 正しい時間を提供できない点に注意すること。 異なる夏時間設定のタイムスタンプでは、1 時間ずれるだろう。
quiet
quiet フラグを ON にする。 ファイルを chown や chmod しようとしたときにもエラーを返さず、単に失敗する。 用いる際には注意すること!
rodir
FAT には ATTR_RO (読み込みのみ) 属性がある。 Windows ではディレクトリの ATTR_RO は単純に無視され、 アプリケーションでのみフラグとして使われる (例えば、カスタマイズされたフォルダとして使われる)。

ATTR_RO をディレクトリの読み込みのみのフラグとして使いたい場合、 このオプションを設定すること。

showexec
このオプションが設定されると、ファイル名の拡張子部分が .EXE, .COM, .BAT である場合にのみ、ファイルの実行権限ビットが許可される。 これは、デフォルトでは設定されない。
sys_immutable
このオプションが設定されると、FAT の ATTR_SYS 属性を Linux の IMMUTABLE フラグとして扱う。 これは、デフォルトでは設定されない。
flush
このオプションが設定されると、ファイルシステムは通常より早い タイミングでディスクに書き出す。 これは、デフォルトでは設定されない。
usefree
FSINFO に格納された「空きクラスタ (free clusters)」の値を使う。 これは、ディスクをスキャンせずに空きクラスタの数を決定するのに 使われる。 現在の Windows では、この情報を正しく更新しない場合があるので、 デフォルトでは使われない。 FSINFO に格納された「空きクラスタ」が正しいという保証がある場合、 このオプションでディスクのスキャンが回避できる。
dots, nodots, dotsOK=[yes|no]
FAT ファイルシステムに Unix または DOS のしきたりを 強制しようとするさまざまな試み。 おそらくは用いるべきでない。

 

hfs のマウントオプション

creator=cccc, type=cccc
新しいファイルを作成する際に、 MacOS の finder で表示されるクリエータとタイプを設定する。 デフォルト値は '????' である。
uid=n, gid=n
すべてのファイルの所有者とグループを設定する (デフォルトはカレントプロセスの UID と GID)。
dir_umask=n, file_umask=n, umask=n
全てのディレクトリ・全ての通常ファイル・ 全てのファイルとディレクトリに対して使用される umask を設定する。 デフォルトはカレントプロセスの umask である。
session=n
マウントする CDROM のセッションを選択する。 デフォルトでは CDROM ドライバに決定を任せる。 下層にあるデバイスが CDROM でない場合、このオプションは失敗する。
part=n
デバイスのパーティション番号 n を選択する。 CDROM に対してのみ意味を持つ。 デフォルトではパーティションテーブルを全く解釈しない。
quiet
不正なマウントオプションに対して苦情を出さない。

 

hpfs のマウントオプション

uid=,valuegid=,value すべてのファイルの所有者とグループを設定する (デフォルトはカレントプロセスの UID と GID)。
umask=value
umask を設定する (umask とは許可属性のビットマスクで、立って いない ビットを立てたもの)。 デフォルトはカレントプロセスの umask。 値は 8 進数で与える。
case={lower|asis}
すべてのファイルのファイル名を小文字に変換するか、 あるいはそのままにするかを指定する (デフォルトは case=lower)
conv=mode
このオプションは古く、失敗するか、無視される。
nocheck
ファイルシステムの整合性チェックに失敗しても、マウントを中断しない。

 

iso9660 のマウントオプション

ISO 9660 は CD-ROM で使われているファイルシステム構造を記述している。 (このファイルシステムタイプは DVD で使われていることもある。 udf ファイルシステムも参照すること。)

iso9660 における通常のファイル名は 8.3 形式である (すなわちファイル名の長さに関しては DOS と同じ制限)。 またすべての文字は大文字でなければならない。 また所有者や保護属性、リンク数、ブロックデバイスか キャラクタデバイスかなどを表すフィールドも存在しない。

Rock Ridge は iso9660 の拡張で、上に示した UNIX 的機能をすべて与える。 基本的にはそれぞれのディレクトリレコードを拡張して、 付加的な情報を与えるものである。 Rock Ridge が用いられると、ファイルシステムは通常の UNIX ファイルシステムとは区別できなくなる (もちろんリードオンリーであることを除いて、だが)。

norock
Rock Ridge 拡張が利用できる場合でもこれを無効にする。 map も参照のこと。
nojoliet
Microsoft Joliet 拡張が利用できる場合でもこれを無効にする。 map も参照のこと。
check=r[elaxed] / check=s[trict]
check=relaxed が指定されると、ファイル名はまず小文字に変換されてから照合される。 これは norock および map=normal とともに用いた場合にだけ意味がある。 (デフォルトは check=strict。)
uid=,valuegid=,value ファイルシステム中のすべてのファイルのユーザー id、 グループ id を設定する。 Rock Ridge 拡張で指定されている情報を上書きできる。 デフォルトは uid=0,gid=0
map={n[ormal]|o[ff]|a[corn]}
Rock Ridge 拡張がされていないボリュームに対して normal が指定されると、 ファイル名の大文字が小文字の ASCII にマップされ、 最後の `;1' は削除され、`;' はすべて `.' に変換される。 map=off が指定されると、ファイル名の変換は行わない。 norockを見よ。 デフォルトは map=normalmap=acornmap=normal と似ているが、Acorn 拡張があればそれを適用する。
mode=value
Rock Ridge 拡張がされていないボリュームに対して、 すべてのファイルのモードを指定された値にする。 (デフォルトは、すべてのユーザーに対する読み込みと実行属性。) 8 進数は 0 で始める必要がある。
unhide
hidden 属性のファイルや、それに関連付けられたファイルも表示する。 (通常のファイルがそれに関連付けられたファイルまたは hidden 属性のファイルと 同じファイル名である場合、通常のファイルはアクセスできなくなる。)
block={512|1024|2048}
ブロックサイズを指定する。デフォルトは block=1024
conv=mode
このオプションは古く、失敗するか、無視される。
cruft
ファイルサイズの上位バイトがゴミを含んでいる場合、 このオプションを指定することで上位バイトを無視できる。 このオプションを指定すると、ファイルの大きさは 16 MB に制限される。
session=x
マルチセッション CD でのセッション数を選択する。
sbsector=xxx
セッションをセクタ xxx から始める。

以下のオプションは vfat のものと同じで、 Microsoft Joliet 拡張でエンコードされた ディスクを使うときにしか意味がない。

iocharset=value
CD 上の 16 ビットの Unicode 文字を 8 ビットの文字に変換するときに用いる文字セット。 デフォルトは iso8859-1 である。
utf8
CD 上の 16 ビットの Unicode 文字を UTF-8 に変換する。

 

jfs のマウントオプション

iocharset=name
Unicode から ASCII に変換する際に使う文字セット。 デフォルトでは変換を行わない。 UTF8 変換を行う場合は、 iocharset=utf8 を使うこと。 これを行うには、カーネルの .config ファイルに CONFIG_NLS_UTF8 が設定されている必要がある。
resize=value
ボリュームを value ブロックに変更する。 JFS ではボリュームを増やすことのみがサポートされており、 減らすことはサポートされていない。 ボリュームが読み書き可能でマウントされている場合、 このオプションは再マウントの間のみ有効である。 resize キーワードに値を指定しないと、 ボリュームはパーティションの最大サイズまで増やされる。
nointegrity
ジャーナルに書き込まない。 このオプションの主な目的は、 バックアップメディアからボリュームを復旧する際に、 性能の向上を可能にすることである。 システムが異常終了した場合、ボリュームの完全性は保証されない。
integrity
デフォルト。 メタデータの変更をジャーナルに記録する。 以前に nointegrity オプションが指定されたボリュームを通常の状態に戻すために 再マウントするときは、このオプションを使用すること。
errors={continue|remount-ro|panic}
エラーが起こったときの振る舞いを指定する。 (エラーを無視し、ファイルシステムに問題があることを記録だけして続ける / ファイルシステムをリードオンリーでマウントしなおす / パニックを起こしてシステムを停止する)
noquota|quota|usrquota|grpquota
これらのオプションは指定可能であるが、単に無視される。

 

msdos のマウントオプション

fat のマウントオプションを見よ。 msdos ファイルシステムに不整合が発見されるとエラーが報告され、 ファイルシステムはリードオンリーとなる。 再マウントすることによって書き込み可能にすることができる。

 

ncpfs のマウントオプション

nfs と同様に、ncpfs の実装では mount システムコールの際にバイナリの引き数 (struct ncp_mount_data) を用いる。 この引き数は ncpmount(8) によって渡すことができる。 現在のバージョンの mount (2.12) は ncpfs を扱うことができない。

 

ntfs のマウントオプション

iocharset=name
ファイル名を返すときに用いる文字セット。 VFAT とは異なり、NTFS は変換できない文字を含む名前を抑制する。 このオプションは推奨されない。
nls=name
以前は iocharset という名前であったオプションの新しい名前。
utf8
ファイル名の変換に UTF-8 を用いる。
uni_xlate={0|1|2}
0 (または `no' または `false') とすると、 不明な Unicode 文字に対してエスケープシーケンスを使わない。 1 (または `yes' または `true') または 2 とすると、 ":" で始まる VFAT スタイルの 4 バイトのエスケープシーケンスを用いる。 2 の場合は、もとのファイル名をリトルエンディアンとみなしてエンコードする。 1 の場合は、もとのファイル名をバイト順が入れ換えられた ビッグエンディアンとみなしてエンコードする。
posix=[0|1]
有効になっている (posix=1) と、ファイルシステムは大文字小文字を区別する。 この場合には 8.3 形式の別名がハードリンクとして実現される。 このオプションは古い。
uid=,value, gid=,value, umask=,value ファイルシステムにあるファイルの許可属性を設定する。 umask の値は 8 進数で指定する。 デフォルトではファイルは root が所有し、 他のユーザーからは読み取り不可になっている。

 

オーバーレイ (overlay) のマウントオプション

Linux 3.18 以降で、オーバーレイ擬似ファイルシステムは、 他のファイルシステムの統合 (union) マウントを実装している。

オーバーレイファイルシステムは 2 つのファイルシステム - 上位 (upper) ファイルシステムと 下位 (lower) ファイルシステムを組み合わせる。 名前が両方のファイルシステムに存在する場合、 上位ファイルシステムのオブジェクトが可視化され、 一方で、下位ファイルシステムのオブジェクトは隠されるか、 ディレクトリの場合は、上位オブジェクトにマージされる。

下位ファイルシステムは Linux でサポートされる任意のファイルシステムであり、 書き込み可能である必要はない。 下位ファイルシステムは他のオーバーレイファイルシステムであってもよい。 上位ファイルシステムは通常は書き込み可能である。 その場合、trusted.* 拡張属性での作成をサポートしている必要があり、 かつ readdir の応答として有効な d_type を返す必要がある。 そのため、NFS は適切ではない。

2 つの読み込みのみのファイルシステムで構成される、 読み込みのみのオーバーレイでは、任意のファイルシステムタイプを使うことが できる。 以下のようにして、オプション lowerdirupperdir を組み合わせて、 merged ディレクトリにすることができる。


mount -t overlay  overlay  \
  -olowerdir=/lower,upperdir=/upper,workdir=/work  /merged

lowerdir=directory
任意のファイルシステムであり、書き込み可能なファイルシステムである 必要はない。
upperdir=directory
upperdir は通常は書き込み可能なファイルシステムである。
workdir=directory
workdir は upperdir と同じファイルシステム上の空ディレクトリである必要がある。

 

reiserfs のマウントオプション

reiserfs はジャーナリングファイルシステムである。
conv
バージョン 3.6 の reiserfs ソフトウェアに バージョン 3.5 のファイルシステムをマウントさせる。 新しく作成されたオブジェクトには 3.6 の形式が使われる。 このようにしたファイルシステムは reiserfs 3.5 のツールとは互換性がなくなる。
hash={rupasov|tea|r5|detect}
reiserfs がディレクトリ内でファイルを見付けるのに、 どのハッシュ関数を使うかを選択する。
rupasov
Yury Yu. Rupasov が発明したハッシュ。 このハッシュは高速であり、 辞書順で近いファイル名を近いハッシュ値に対応づけることで 近接関係 (locality) が保存される。 高い確率でハッシュの衝突が起こるので、このオプションは 使うべきではない。
tea
Jeremy Fitzhardinge が実装した Davis-Meyer 関数。 ハッシュ名にハッシュ置換ビットを使う。 ランダム性が高いので、使用される CPU コストに対してハッシュ衝突の確率が低い。 このオプションは、r5 ハッシュで EHASHCOLLISION エラーが起こる場合に使われる。
r5
rupasov ハッシュの修正版。 デフォルトではこれが使用され、非常に多くのディレクトリや 変わったファイル名のパターンがファイルシステムにない限り、 もっとも良い選択肢である。
detect
現在マウントされているファイルシステムを mount コマンドに調べさせ、どのハッシュ関数が使われているかを検出 (detect) させる。 さらに、この情報を reiserfs のスーパーブロックに書き込ませる。 古い形式のファイルシステムを初めてマウントするときにのみ 役立つ。
hashed_relocation
ブロックアロケータを有効にする。 ある状況下では性能の向上が見られるかもしれない。
no_unhashed_relocation
ブロックアロケータを有効にする。 ある状況下では性能の向上が見られるかもしれない。
noborder
Yury Yu. Rupasov が発明した境界アロケータアルゴリズムを無効にする。 ある状況下では性能の向上が見られるかもしれない。
nolog
ジャーナリングを無効にする。 reiserfs が持つクラッシュからの高速な回復は失われるが、 ある状況下では僅かな性能の向上が見られる。 このオプションが有効になっている場合でも、 reiserfs は、ジャーナリング領域への実際の書き込みを保存するといった 全てのジャーナリング操作を行っている。 nolog の実装は進行中の作業である。
notail
デフォルトでは、reiserfs は小さなファイルや「ファイルの末尾」を ツリーの中に直接格納する。 これが LILO(8) のようなユーティリティを混乱させてしまう。 このオプションはファイルをツリーの中に格納させないようにする。
replayonly
ジャーナルにあるトランザクションをやり直させる。 実際にはファイルシステムをマウントしない。 主に reiserfsck が使う。
resize=number
reiserfs パーティションのオンラインでの領域拡張を許可する 再マウントオプション。 そのデバイスが number ブロック数であると reiserfs に仮定させる。 このオプションは、論理的なボリューム管理 (LVM) 下にある デバイスに対して使うように設計されている。 ftp://ftp.namesys.com/pub/reiserfsprogs から特別な resizer ユーティリティが取得できる。

user_xattr
拡張ユーザ属性を有効にする。 attr(5) のマニュアルページを参照すること。
acl
POSIX アクセス制御リストを有効にする。 acl(5) のマニュアルページを参照すること。
barrier=none / barrier=flush このオプションは、ジャーナリングコードで書き込みバリアを 無効/有効にする。 barrier=none で無効にして、barrier=flush で有効にする (デフォルト)。 このオプションはバリアをサポートする IO スタックが必要であり、 reiserfs がバリア書き込みでエラーになると、警告を出してバリアを無効化する。 書き込みバリアは、ディスク上での正しいジャーナルコミットの順番を 強制し、一時的なディスク書き込みキャッシュを安全に使わせる 必要がある。 そのため、性能上のペナルティがある。 ディスクがバッテリーでバックアップされている場合、 バリアの無効化で安全に性能を改善できる。

 

ubifs のマウントオプション

UBIFS は UBI ボリューム上で動作するフラッシュファイルシステムである。 atime はサポートされておらず、常に無効化されている。
デバイス名は以下のように指定できる。
ubiX_Y UBI デバイス番号 X, ボリューム番号 Y
ubiY
UBI デバイス番号 0, ボリューム番号 Y
ubiX:NAME
UBI デバイス番号 X, ボリューム名 NAME
ubi:NAME
UBI デバイス番号 0, ボリューム名 NAME
: の代わりに ! を区切り文字に使うことができる。
以下のマウントオプションが指定可能である:
bulk_read
まとめ読み込み (bulk-read) を有効化する。 ファイルシステムをスローダウンさせるので、VFS の先読み (read-ahead) は無効化される。 まとめての読み込みは、内部的な最適化である。 フラッシュメモリでは、複数回の読み込みリクエストよりも、 データを 1 度に読み込んだ方が速くなる可能性がある。 例えば、NAND の 1 ページ以上を読み込む場合、 「ロード中の読み込み (read-while-load)」ができる。
no_bulk_read
まとめ読み込みをしない。これがデフォルトである。
chk_data_crc
データの CRC-32 チェックサムを検証する。これがデフォルトである。
no_chk_data_crc データの CRC-32 チェックサムを検証しない。 このオプションを指定すると、ファイルシステムはデータの CRC-32 チェックサムを検証しないが、 内部のインデックス情報は検証する。 このオプションは、読み込みにのみ影響し、書き込みには影響しない。 データを書き込む際には、CRC-32 は常に計算される。
compr={none|lzo|zlib}
新しいファイルが書き込まれる際に使われるデフォルトの圧縮方法を 選択する。 ファイルシステムを none オプションでマウントしたとしても、圧縮したファイルを読み込むことが できる。

 

udf のマウントオプション

UDF は OSTA, Optical Storage Technology Association で定義されている "Universal Disk Format" ファイルシステムであり、DVD-ROM で多く使用される。 多くの場合、ハイブリッド UDF/ISO-9660 ファイルシステムの形式である。 しかし、それ自身はディスクドライブ、フラッシュドライブ、 他のブロックデバイスとして、完璧に利用できる。 iso9660 も参照すること。
uid=
ファイルシステムの全てのファイルを、指定したユーザーに所属させる。 uid=forget は、uid=<user> と独立して (または、通常は追加として) 指定可能で、 結果として、UDF は uid をメディアに格納しない。 実際、記録された uid は 32 ビットのオーバーフロー uid -1 で、 UDF 標準で定義されている。 <user> の値は、有効なユーザー名、対応する 10 進数のユーザー ID、 特別な文字列 "forget" のいずれかである。
gid=
ファイルシステムの全てのファイルを、指定したグループに所属させる。 gid=forget は、gid=<group> と独立して (または、通常は追加として) 指定可能で、 結果として、UDF は gid をメディアに格納しない。 実際、記録された gid は 32 ビットのオーバーフロー gid -1 で、 UDF 標準で定義されている。 <group> の値は、有効なグループ名、対応する 10 進数のグループ ID、 特別な文字列 "forget" のいずれかである。
umask=
ファイルシステムから読み出した全ての i ノードの権限を指定した権限でマスクする。 値は 8 進数で指定する。
mode=
mode= が設定された場合、ファイルシステムから読み出したディレクトリ以外の 全ての i ノードの権限を指定したモードに設定する。 値は 8 進数で指定する。
dmode=
dmode= が設定された場合、ファイルシステムから読み出したディレクトリの 全ての i ノードの権限を指定したモードに設定する。 値は 8 進数で指定する。
bs=
ブロックサイズを設定する。 カーネルバージョン 2.6.30 より前のデフォルト値は 2048 である。 2.6.30 以降で 4.11 より前では、論理デバイスブロックサイズで 2048 になった。 4.11 以降では、論理デバイスブロックサイズから 4096 の間の 有効な論理ブロックサイズである。

他の詳細は mkudffs(8) 2.0+ の man ページのセクション 互換性ブロックサイズ を参照すること。

unhide
隠しファイルも見せる。
undelete
削除されたファイルもリストに見せる。
adinicb
i ノードにデータを埋め込む (デフォルト)。
noadinicb
i ノードにデータを埋め込まない。
shortad
ショート UDF アドレスディスクリプターを使う。
longad
ロング UDF アドレスディスクリプターを使う (デフォルト)。
nostrict
厳密に適合させない。
iocharset=
NLS 文字セットを設定する。 これには、CONFIG_UDF_NLS オプションでコンパイルしたカーネルが必要である。
utf8
UTF-8 文字集合を設定する。
 

デバッグと障害復旧のマウントオプション

novrs
ボリューム認識シーケンス (Volume Recognition Sequence) を無視して、 マウントしようとする。
session=
マルチセッションで記録された光学メディアのセッション番号を選択する (デフォルトは最後のセッションである)。
anchor=
標準のアンカーの位置を上書きする。(デフォルトは 256)
lastblock=
ファイルシステムの最終ブロックを設定する。
 

指定された場合にも削除される、使用されていない歴史的なマウントオプション

uid=ignore
無視される。代わりに uid=<user> を使うこと。
gid=ignore
無視される。代わりに gid=<group> を使うこと。
volume=
未実装であり、無視される。
partition=
未実装であり、無視される。
fileset=
未実装であり、無視される。
rootdir=
未実装であり、無視される。

 

ufs のマウントオプション

ufstype=value
UFS は他の OS で広く用いられているファイルシステムである。 ただし実装が OS によって異なっているのが問題である。 ある種の実装における機能には文書化されていないものがあり、 ufs の形式を自動的に認識するのは難しい。 したがってユーザーは ufs の形式をマウントオプションで指定しなければならない。 指定できる値は以下の通り:
old
ufs の古い形式。これがデフォルトで、リードオンリー (-r オプションを忘れずに指定すること)。
44bsd
BSD ライクなシステム (NetBSD, FreeBSD, OpenBSD) で作られたファイルシステムに用いる。
ufs2
FreeBSD 5.x で使われており、読み書きがサポートされる。
5xbsd
ufs2 の別名。
sun
SunOS や Solaris on Sparc で作られたファイルシステムに用いる。
sunx86
Solaris on x86 で作られたファイルシステムに用いる。
hp
HP-UX で作られたファイルシステムに用いる。リードオンリー。
nextstep
(NeXT ステーションの) NeXTStep で作られたファイルシステムに用いる (現在はリードオンリー)。
nextstep-cd
NeXTStep CDROM (block_size == 2048) に用いる。リードオンリー。
openstep
OpenStep で作られたファイルシステムに用いる (現在はリードオンリー)。 同じファイルシステムが Mac OS X でも使われている。

onerror=value
エラー時の振る舞いを設定する:
panic
エラーが起こったらカーネルパニックを起こす。
[lock|umount|repair]
現在のところはこれらのオプションはなにもしない。 エラーが起こるとコンソールメッセージが表示されるだけである。

 

umsdos のマウントオプション

msdos のマウントオプションを見よ。 dotsOK オプションは umsdos では当然無効である。

 

vfat のマウントオプション

まず fat のマウントオプションが認識される。 dotsOK オプションは vfat では当然無効である。 さらに以下のオプションが存在する。
uni_xlate
扱うことのできない Unicode 文字を特殊なエスケープシーケンスに変換する。 これは Unicode 文字を含むファイルをバックアップ、 レストアするのに用いることができる。 このオプションを指定しないと、変換できない場合には `?' が用いられる。 エスケープ文字には `:' が用いられる (これは通常 vfat ファイルシステムでは用いることのできない文字であるため)。 用いられるエスケープシーケンスは u を Unicode 文字とすると以下の通り。 ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12)。
posix
大文字か小文字かだけが異なる 2 つのファイル名を識別できるようにする。 このオプションは古い。
nonumtail
name~num.ext を用いる前に、まずシーケンス番号のない短縮名に変換しようとする。
utf8
UTF8 は、コンソールで用いられる Unicode の 8 ビットエンコードに対して 安全なファイルシステムである。 このオプションを指定すると UTF8 が有効になる。 また、utf8=0, utf8=no, utf8=false のいずれかで無効になる。 'uni_xlate' が設定されていると UTF8 は無効になる。
shortname=mode
8.3 形式の文字列に合うようなファイル名を 生成したり表示したりする動作を定義する。 ファイルにロングネームがある場合は、いつでも指定された動作で表示する。 以下の 4 つの mode がある:
lower
ショートネームを表示する際に小文字にする。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。
win95
ショートネームを表示する際に大文字にする。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。
winnt
ショート名をそのまま表示する。 ショートネームが全て小文字または全て大文字でない場合は、 ロングネームで生成する。
mixed
ショート名をそのまま表示する。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。 このモードは、Linux 2.6.32 以降のデフォルトである。

 

usbfs のマウントオプション

devuid=,uid, devgid=,gid, devmode=,mode usbfs ファイルシステムにあるデバイスファイルの 所有者・グループ・モードを設定する (デフォルトは uid=gid=0, mode=0644)。 このモードは 8 進数で指定する。
busuid=,uid, busgid=,gid, busmode=,mode usbfs ファイルシステムにあるバスディレクトリの 所有者・グループ・モードを設定する (デフォルトは uid=gid=0, mode=0555)。 このモードは 8 進数で指定する。
listuid=,uid, listgid=,gid, listmode=,mode ファイル devices の所有者・グループ・モードを設定する (デフォルトは uid=gid=0, mode=0444)。 このモードは 8 進数で指定する。

 

loop デバイス

残ったタイプとしてもう 1 つ、loop デバイスを用いたマウントがある。 例えば以下のコマンド

mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop3

は loop デバイス /dev/loop3 をファイル /tmp/disk.img に関連付け、そしてこのデバイスを /mnt にマウントする。

loop デバイスが明示的に指定されない場合 (単にオプション `-o loop' が指定された場合)、 mount は使用されていない loop デバイスを見つけて利用する。 例えば、

mount /tmp/disk.img /mnt -o loop

mount コマンドは、ファイルシステムタイプが指定されていない場合、 またはファイルシステムが libblkid で判明している場合、 通常ファイルから 自動的に loop デバイスを作成する。 例えば、

mount /tmp/disk.img /mnt

mount -t ext4 /tmp/disk.img /mnt

このタイプのマウントの際には 3 つのオプションが指定できる。 loop, offset, sizelimit である。 これらは実際には losetup(8) のオプションである。 (これらのオプションはファイルシステムタイプに固有のオプションの他に 使用することができる。)

Linux 2.6.25 以降で、loop デバイスの自動消去がサポートされた。 つまり、 mount によって確保された loop デバイスは、 /etc/mtab とは独立して umount で解放される。

losetup -d または umount -d を使って、手動で loop デバイスを解放することもできる。

util-linux v2.29 以降の mount コマンドは、 同じバッキングファイルが同じ loop デバイスで同じオフセットとサイズ制限で使われている場合、 新しいデバイスを初期化するのではなく、loop デバイスを再利用するようになった。 これはファイルシステムの破損を防ぐために必要である。

 

返り値

mount は以下のコードを返す (ビットは OR できる):
0
成功した。
1
呼び出しやパーミッションが正しくない。
2
システムエラー (メモリ不足、fork できなかった、loop デバイスが足りない)。
4
mount の内部のバグ。
8
ユーザーによる中断。
16
/etc/mtab の書き込み時またはロック時の問題がある。
32
マウントに失敗した。
64
マウントが一部が成功した。

コマンド mount -a は、0 (全て成功), 32 (全て失敗), 64 (一部成功、一部失敗) を返す。

 

外部ヘルパー

外部 mount ヘルパーの書式は以下の通り:

/sbin/mount.suffix spec dir [-sfnv] [-N namespace] [-o options] [-t type.subtype]

ここで、suffix はファイルシステムタイプであり、 -sfnvoN オプションは通常のマウントオプションと同じ意味を持つ。 -t オプションはサブタイプを持つファイルシステムで使われる (例えば /sbin/mount.fuse -t fuse.sshfs)。

コマンド mount はマウントオプション unbindable, runbindable, private, rprivate, slave, rslave, shared, rshared, auto, noauto, comment, x-*, loop, offset , sizelimit を mount.<suffix> ヘルパーに渡さない。 他の全てのオプションは、-o オプションの引き数で カンマ区切りのリストで使用される。

 

ファイル

上記の "/etc/fstab, /etc/mtab, /proc/mounts" セクションも参照すること。
/etc/fstab
ファイルシステムの一覧表
/run/mount
libmount のプライベートランタイムディレクトリ
/etc/mtab
マウントされたファイルシステムの一覧表、または /proc/mounts へのシンボリックリンク。
/etc/mtab~
ロックファイル (mtab がシンボリックリンクのシステムでは使われない)。
/etc/mtab.tmp
テンポラリファイル (mtab がシンボリックリンクのシステムでは使われない)。
/etc/filesystems
試行するファイルシステムタイプの一覧
 

環境変数

LIBMOUNT_FSTAB=<path>
fstab のデフォルトの場所を上書きする (suid は無視される)。
LIBMOUNT_MTAB=<path>
mtab のデフォルトの場所を上書きする (suid は無視される)。
LIBMOUNT_DEBUG=all
libmount のデバッグ出力を有効化する。
LIBBLKID_DEBUG=all
libblkid のデバッグ出力を有効化する。
LOOPDEV_DEBUG=all
loop デバイスのセットアップデバッグ出力を有効化する。
 

関連項目

mount(2), umount(2), umount(8), fstab(5), nfs(5), xfs(5), e2label(8), findmnt(8), losetup(8), mke2fs(8), mountd(8), nfsd(8), swapon(8), tune2fs(8), xfs_admin(8)  

バグ

ファイルシステムに整合性がないと、クラッシュを引き起こす場合がある。

Linux のファイルシステムのなかには -o sync-o dirsync をサポートしていないものがある。 (ext2, ext3, ext4, fat, vfat ファイルシステムは BSD 流の同期更新をサポートしているsync オプションとともにマウントすれば良い。)

-o remount でマウントパラメータが変更されないことがある (例えば ext2fs 特有のパラメータは、 sb を除いてすべて remount で変更可能であるが、 fatfs では gidumask を変更できない)。

通常の mtab ファイルを持つシステムでは、ファイル /etc/mtab/proc/mounts がマッチしない可能性もある。 1 つ目のファイルは mount コマンドオプションにのみ基づいており、 2 つ目のファイルはカーネルと他の設定に依存しているためである (例えば、リモート NFS サーバでは、NFS マウントポイントについて、 mount コマンドは信頼できない情報を返す可能性があるが、 /proc/mounts ファイルはより信頼性のある情報を保持している)。 これが、mtab ファイルを /proc/mounts ファイルへのシンボリックリンクに置き換える、もう 1 つの理由である。

ファイルディスクリプター (つまり fcntlioctl 関連の関数) で参照される NFS ファイルシステム上のファイルをチェックすると、 noac オプションを使っていても、カーネルの整合性チェックが欠如しているために、 不整合を起こす場合がある。

古いカーネルを使っている場合、 offset または sizelimit オプションを付けた loop オプションが使われると失敗する可能性がある。 これは、ブロックデバイスのサイズが要求された通りに設定されていることを、 mount コマンドが確認できないためである。 この場合のワークアラウンドは、設定された loop デバイスで mount を呼び出す前に、 losetup を呼び出すことである。  

履歴

mount コマンドは Version 5 の AT&T UNIX には存在していた。  

著者

Karel Zak <kzak@redhat.com>
 

入手方法

mount コマンドは util-linux パッケージの一部であり、 https://www.kernel.org/pub/linux/utils/util-linux/ から入手できる。


 

Index

名前
書式
説明
マウントのリスト表示
デバイスとファイルシステムの指定
ファイル /etc/fstab, /etc/mtab, /proc/mounts
スーパーユーザー以外でのマウント
bind マウント操作
move 操作
共有 (shared) サブツリー操作
コマンドラインオプション
ファイルシステム非依存のマウントオプション
ファイルシステム独自のマウントオプション
adfs のマウントオプション
affs のマウントオプション
debugfs のマウントオプション
devpts のマウントオプション
fat のマウントオプション
hfs のマウントオプション
hpfs のマウントオプション
iso9660 のマウントオプション
jfs のマウントオプション
msdos のマウントオプション
ncpfs のマウントオプション
ntfs のマウントオプション
オーバーレイ (overlay) のマウントオプション
reiserfs のマウントオプション
ubifs のマウントオプション
udf のマウントオプション
デバッグと障害復旧のマウントオプション
指定された場合にも削除される、使用されていない歴史的なマウントオプション
ufs のマウントオプション
umsdos のマウントオプション
vfat のマウントオプション
usbfs のマウントオプション
loop デバイス
返り値
外部ヘルパー
ファイル
環境変数
関連項目
バグ
履歴
著者
入手方法

This document was created by man2html, using the manual pages.
Time: 17:59:32 GMT, March 31, 2020