> Linux Reviews > man >

mount


  1. mount.2.man
  2. mount.8.man


1. mount.2.man

Manpage of MOUNT

MOUNT

Section: Linux Programmer's Manual (2)
Updated: 2010-09-10
Index Return to Main Contents
 

名前

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

書式

#include <sys/mount.h>

int mount(const char *source, const char *target,
          const char *filesystemtype, unsigned long mountflags,
          const void *data);
 

説明

mount() は source で指定されたファイルシステム (デバイス名であることが多いが、 ディレクトリ名やダミーの場合もある) を target で指定されたディレクトリに結びつける。

ファイルシステムのマウントを行うには、 適切な権限 (Linux では CAP_SYS_ADMIN ケーパビリティ) が必要である。

Linux 2.4 以降、ひとつのファイルシステムを複数のマウントポイントに 結びつけることができ、同じマウントポイントに複数のマウントをスタック させることもできる。

引き数 filesystemtype としてカーネルが対応している値は、 /proc/filesystems で参照できる (例えば "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", "msdos", "proc", "nfs", "iso9660" 等)。 適切なモジュールが読み込まれると、さらに別の値が利用可能になるかもしれない。

引き数 mountflags は、先頭 16 ビットはマジックナンバー 0xC0ED (MS_MGC_VAL) で、 残りの 16 ビットがマウントフラグである。 マジックナンバーは、カーネルバージョン 2.4 より前では必須であったが、 現在は必要なく、指定されても無視される。 マウントフラグは libc4 と libc5 では <linux/fs.h> 、 glibc2 では <sys/mount.h> で定義されており、以下の通りである:

MS_BIND (Linux 2.4 以降)
バインドマウントを行う。これはファイルやディレクトリの部分木を ファイルシステム内部の別の場所で見えるようにするものである。 バインドマウントを使うと、ファイルシステムをまたいで chroot(2) jail を構成することが可能になる。 引き数 filesystemtypedata は無視される。 Linux 2.6.26 より前では mountflags も無視されていた (バインドマウントでは、マウントポイントとなるファイルシステムと 同じマウントオプションが使用される)。 Linux 2.6.26 以降では、バインドマウントを行う際に MS_RDONLY フラグは無視されない。
MS_DIRSYNC (Linux 2.5.19 以降)
このファイルシステムへのディレクトリ変更を同期的に行う。 (この特性は個々のディレクトリ、または chattr(1) を使った部分木毎に設定できる。)
MS_MANDLOCK
このファイルシステムのファイルに対して強制ロックを認める。 (強制ロックを有効にするには、 fcntl(2) で述べられている方法でファイル単位で許可をしなければならない)
MS_MOVE
部分木を移動する。 source にはすでに存在するマウントポイントを指定し、 target には新しい場所を指定する。 移動はアトミックである。 操作の実行中、部分ツリーがアンマウントされることはない。 filesystemtype, mountflags, data 引き数は無視される。
MS_NOATIME
このファイルシステムの (全ての種類の) ファイルのアクセス時刻を更新しない。
MS_NODEV
このファイルシステムのデバイス (スペシャルファイル) へのアクセスを許可しない。
MS_NODIRATIME
このファイルシステムのディレクトリのアクセス時刻を更新しない。 このフラグは MS_NOATIME で提供される機能のサブセットを提供する。つまり、 MS_NOATIME では MS_NODIRATIME が暗黙のうち設定される。
MS_NOEXEC
このファイルシステムにあるプログラムの実行を許可しない。
MS_NOSUID
このファイルシステムのプログラムを実行するときに、 set-user-ID ビットと set-group-ID ビットを無視する。
MS_RDONLY
ファイルシステムを読み込み専用でマウントする。
MS_RELATIME (Linux 2.6.20 以降)
このファイルシステム上のファイルがアクセスされた際、 そのファイルの最終アクセス時刻 (atime) の現在値が 最終修正時刻 (mtime) や最終状態変更時刻 (ctime) と 等しいか小さい場合にのみ、atime を更新する。 このオプションは、 mutt(1) のように、最後の内容修正以降にファイルがいつ読み出されたかを知る 必要があるプログラムで有用である。 Linux 2.6.30 以降では、 MS_NOATIME が指定されていない場合には、このフラグの動作が カーネルのデフォルト動作となっており、 Linux 2.6.30 より前の動作をさせるためには MS_STRICTATIME フラグを指定する必要がある。 これに加えて、Linux 2.6.30 以降では、 ファイルの最終アクセス時刻が 1 日以上前の場合、 ファイルの最終アクセス時刻は常に更新される。
MS_REMOUNT
すでに存在するマウントを再マウントする。 これにより、すでに存在するマウントの mountflagsdata を、一度アンマウントしてから再マウントするという作業をせずに 変更できる。 sourcetarget は最初の mount() 呼び出しと同じ値を指定する必要がある。 filesystemtype は無視される。

mountflags のうち MS_RDONLY, MS_SYNCHRONOUS, MS_MANDLOCK は変更可能である。 カーネル 2.6.16 より前では、 MS_NOATIME, MS_NODIRATIME も変更可能であった。 カーネル 2.4.10 より前では、上記に加えて、 MS_NOSUID, MS_NODEV, MS_NOEXEC も変更可能であった。

MS_SILENT (Linux 2.6.17 以降)
カーネルのログ内のある種の (printk()) 警告メッセージの表示を抑制する。 このフラグは、名前が不適切で廃止された MS_VERBOSE フラグ (Linux 2.4.12 以降で利用可能) を置き換えるもので、同じ意味を持つ。
MS_STRICTATIME (Linux 2.6.30 以降)
このファイルシステムがアクセスされた際に最終アクセス時刻 (atime) を常に更新する (Linux 2.6.30 より前では、これがデフォルトの動作 であった)。 このフラグを指定することで、 MS_NOATIMEMS_RELATIME の両フラグを設定した際の影響を上書きすることができる。
MS_SYNCHRONOUS
ファイルシステムに対して同期的に書き込みを行う。 (このファイルシステムの全てのオープンされたファイルに対して、 open(2) のフラグに O_SYNC を指定したような動作となる)

Linux 2.4 以降では、 MS_NODEV, MS_NOEXEC, MS_NOSUID はマウントポイント単位で指定できる。 カーネル 2.6.16 以降では、 MS_NOATIMEMS_NODIRATIME もマウントポイント単位で指定できる。 また、 MS_RELATIME フラグもマウントポイント単位で設定できる。

引き数 data がどのように解釈されるかは、ファイルシステムによって異なる。 たいていは、指定されたファイルシステムで利用可能なオプションが コンマ区切りで並べられた文字列である。 各ファイルシステムに対して指定可能なオプションの詳細については mount(8) を参照のこと。  

返り値

成功した場合 0 が返る。失敗した場合 -1 が返り、 errno がエラーの内容に従って設定される。  

エラー

以下に示すエラーは、ファイルシステムに依存しないものである。 それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。
EACCES
パスに含まれるディレクトリに検索 (実行) 許可がない (path_resolution(7) も参照)。 または、 MS_RONLY フラグを指定せずに読み込み専用のファイルシステムを マウントしようとした。 または、ブロックデバイス sourceMS_NODEV オプションでマウントされたファイルシステム上にある。
EBUSY
source は既にマウントされている。 または、書き込み用にオープンされたファイルがあり、 読み込み専用で再マウントすることができない。 または、 target が使用中 (busy) のため、 target にマウントできない。 target が使用中の例としては、あるタスクが動作しているディレクトリ (working directory) であるとか、別のデバイスのマウントポイントであるとか、 オープンされたファイルが存在する、などがある。
EFAULT
場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。
EINVAL
source に不正なスーパーブロックがある。 または、 sourcetarget にマウントされていないのに、再マウント (MS_REMOUNT) が要求された。 または、 source がマウントポイントではないか、aq/aq なのに、移動 (MS_MOVE) が要求された。
ELOOP
パス名の解決中に登場したリンクが多すぎた。 または、 targetsource の子孫なのに移動が要求された。
EMFILE
(ブロックデバイスが必要でない場合) ダミーデバイスのテーブルが一杯になった。
ENAMETOOLONG
パス名の長さが MAXPATHLEN を越えた。
ENODEV
filesystemtype がカーネル中で定義 (config) されていない。
ENOENT
パス名が空である。もしくは指定されたパスが存在しない。
ENOMEM
カーネルがファイル名やデータをコピーするための空きページを確保できない。
ENOTBLK
(ブロックデバイスが必要だが) source がブロックデバイスではない。
ENOTDIR
target か、 source のプレフィックスがディレクトリではない。
ENXIO
ブロックデバイス source のメジャー番号が範囲外である。
EPERM
呼び出し元に必要な権限がない。
 

バージョン

MS_DIRSYNC, MS_MOVE, MS_REC, MS_RELATIME, MS_STRICTATIME の定義が glibc のヘッダに追加されたのは バージョン 2.12 においてのみである。  

準拠

この関数は Linux 固有の関数であり、移植を考慮したプログラムでは 使用すべきでない。 元の MS_SYNC フラグは、別の MS_SYNC<mman.h> に追加されたので 1.1.69 から MS_SYNCHRONOUS に名前が変わった。

Linux 2.4 より前のバージョンでは、 MS_NOSUID オプション付きでマウントされたファイルシステム上の set-UID や set-GID のプログラムを実行しようとすると、 EPERM エラーとなった。 Linux 2.4 以降では、このような場合は set-UID ビットや set-GID ビットが 無視されるだけである。  

プロセス単位の名前空間

カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 (mount namespace) が提供されている。マウント名前空間とは、 あるプロセスに見えているファイルシステムのマウントの集合である。 マウントポイントの名前空間は複数のプロセスで共有することができ、 普通は共有されている。 一つのプロセスによる名前空間の変更 (すなわち、マウントやアンマウント) は 同じ名前空間を共有する他の全てのプロセスにも見える。 (2.4.19 より前の Linux は、一つの名前空間がシステム上の全プロセスで 共有される状況とみなすことができる。)

fork(2) 経由で作成された子プロセスは親プロセスのマウント名前空間を共有する。 execve(2) の前後でマウント名前空間は保持される。

プロセスは自分用 (private) のマウント名前空間を持つことができる。 自分用の名前空間を持つことができるのは、 そのプロセスが clone() CLONE_NEWNS フラグを使って作成された場合と、 そのプロセスが CLONE_NEWNS フラグ付きで unshare(2) を呼び出した場合である。 前者の場合、作成されたプロセスの新しい名前空間は clone() を呼び出したプロセスの名前空間の「コピー」で初期化される。 後者の場合、 unshare(2) を呼び出すと、呼び出し元のプロセスのマウント名前空間が、 それまでは他のプロセスと共有していた名前空間の自分用のコピーとなる。 これにより、呼び出し元のプロセスがこれ以後に行うマウント/アンマウントは 他のプロセスから見えなくなる (ただし、呼び出し元のプロセスが unshare(2) の呼び出し以降に作成した子プロセスには見える)。 また、その逆の、他のプロセスが行ったマウント/アンマウントも呼び出し元のプロセスには 見えなくなる。

Linux 独自のファイル /proc/PID/mounts では、指定された ID を持つプロセスのマウント名前空間における マウントポイントのリストが公開されている。詳細は proc(5) を参照のこと。  

関連項目

umount(2), path_resolution(7), mount(8), umount(8)


 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
プロセス単位の名前空間
関連項目

This document was created by man2html using the manual pages.
Time: 17:38:43 GMT, October 23, 2013

2. mount.8.man

Manpage of MOUNT

MOUNT

Section: Linux Programmer's Manual (8)
Updated: 2004-12-16
Index Return to Main Contents
 

名前

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

書式

mount [-lhV]

mount -a [-fFnrsvw] [-t vfstype] [-O optlist]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir  

説明

Unix のシステムにおいては、アクセスできるファイルはすべて 1 つの大きな ツリー構造にまとめられている。 これは / をルート (root:根) とする階層構造をなしている。 これらのファイル群は複数のデバイスにわたって配置することができる。 mount コマンドはあるデバイス上のファイルシステムを この大きなツリー構造に接続するために用いられる。 逆に接続を解除する際には umount(8) コマンドが用いられる。

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


mount -t type device dir
これは device 上にあるファイルシステム (タイプ type) をディレクトリ dir に接続するよう、カーネルに伝える。 このファイルシステムがマウントされている間は、ディレクトリ dir のもとの中身 (もしあれば)、ディレクトリ自身の所有者、 パーミッションモードは見えなくなる。 dir によって指定されるパスは device 上のファイルシステムのルートを参照することになる。

以下の 3 種類の実行形式は、実際には何もマウントしない。


mount -h
はヘルプメッセージを表示する。

mount -V
はバージョン情報を表示する。
mount [-l] [-t type]
とだけ入力して実行すると、 現在マウントされているファイルシステムのリストを表示する。 -t "type" を指定すると、ファイルシステムのタイプが type のものだけを表示する。 オプション -l を付けると (ext2, ext3, XFS) のラベルをリストに追加する。 タイプに関する詳細は以下に述べる。

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


mount --bind olddir newdir
この呼び出しの後、同じ内容を 2 つの場所でアクセスできる。 1 つのファイルを (1 つのファイル上に) 再マウントすることもできる。

この呼び出しでは 1 つのファイルシステム (の一部) のみをアタッチするだけで、 サブマウントはアタッチしない。 サブマウントを含むファイル階層全体は、 以下のコマンドで 2 番目の場所にアタッチできる。


mount --rbind olddir newdir

ファイルシステムのマウントオプションは、 元のマウントポイントのものと同じに維持され、 --bind/--rbind の後に -o オプションを指定して変更できない点に注意すること。

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


mount --move olddir newdir

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

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

ファイル /etc/fstab (fstab(5) を見よ) は、それぞれのデバイスが通常マウントされる場所を、 オプションとともに記述したものである。 このファイルは以下の 3 つの場合に用いられる。

(i) コマンド


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

(ii) fstab 中に記述されているファイルシステムをマウントするときは、 デバイスのみ、あるいはマウントポイントのみの指定で充分である。

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

したがって


/dev/cdrom /cd iso9660 ro,user,noauto,unhide
という行があれば、誰でも CDROM 上の iso9660 ファイルシステムを

mount /dev/cdrom
または

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

mount および umount プログラムによって現在マウントされているファイルシステムの一覧は /etc/mtab ファイル中に記述されている。 mount が引き数なしで実行された場合には、 このリストが表示される。

proc ファイルシステムがマウントされている場合には (マウントポイントは /proc としよう)、 ファイル /etc/mtab/proc/mounts はほとんど同じ内容になる。 /etc/mtab には、マウントオプションなど多少の情報が付け加えられている。 特に非常に多くマウントしている場合には、(訳註: /etc/mtab/proc/mounts への) シンボリックリンクにすることにより、とても速くなる。 しかし、 /etc/mtab は常に最新の情報であるとは限らない (以下の -n オプションの説明を参照)。 /etc/mtab/proc/mounts へのシンボリックリンクとすることも可能であるが、 この場合は上に挙げた情報が失われる。 loop デバイスを用いている場合には特に不便となってしまう。 また "user" オプションを用いると失敗する。

 

オプション

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

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

-V
バージョンを表示する。
-h
ヘルプメッセージを表示する。
-v
詳細表示モード。
-a
fstab に記載されている (指定したタイプの) ファイルシステムを すべてマウントする。
-F
(-a とともに用いる) それぞれのデバイスごとに fork して新しい mount プロセスを生成する。 別々のデバイス、別々の NFS サーバに対するマウントを並行して行うことになる。 利点は動作が高速になること、 また NFS タイムアウトが並行して計測されることである。 逆に欠点としては、マウントの順序が規定されないことである。 したがって、 /usr/usr/spool の両方を同時にマウントするときには、このオプションを用いることはできない。
-f
実際のシステムコール以外を除いてすべての動作をする。 もうちょっとわかりやすく言うと、 ファイルシステムのマウント動作を「行うふり」をする。 このオプションは -v フラグとともに用いると便利で、 mount コマンドが行おうとすることを確認できる。 また以前に -n オプションを用いてマウントされたデバイスのエントリーを /etc/mtab に書き込む目的にも用いることができる。
-i
/sbin/mount.<filesystem> ヘルパがあっても、呼び出さない。
-l
ext2, ext3, XFS のラベルを mount の出力に追加する。 これを行うには、mount にディスクデバイスの読み取り権限が必要である (つまり suid root されている必要がある)。 このような ext2 や ext3 のラベルを設定するには e2label(8) ユーティリティを用いればよい。 また、XFS のラベルを設定するには xfs_admin(8) を用いればよい。 reiserfs のラベルを設定するには reiserfstune(8) を用いればよい。
-n
マウントの際に /etc/mtab に書き込みを行わない。 これが必要になるのは、例えば /etc がリードオンリーのファイルシステムの場合などである。
-p num
暗号付きループマウントの場合、 パスフレーズを端末からではなくファイルディスクリプタ num から読み込む。
-s
曖昧なマウントオプションが与えられたときに、 実行を中断しないで受け入れる。 これはファイルシステムタイプによってサポートされていない マウントオプションを無視する。 すべてのファイルシステムでこのオプションがサポートされているわけではない。 このオプションは Linux autofs ベースのオートマウンタのために用意されている。
-r
ファイルシステムをリードオンリーでマウントする。 -o ro と同義である。
-w
ファイルシステムを読み書き可能なモードでマウントする (デフォルト)。 -o rw と同義である。
-L label
label で指定したラベルを持つパーティションをマウントする。
-U uuid
uuid で指定した UUID を持つパーティションをマウントする。 これらの 2 つのオプションを用いるには、 /proc/partitions ファイル (Linux 2.1.116 以降でサポート) が存在していなければならない。
-t vfstype
-t に続く引き数はファイルシステムタイプを指定するのに用いられる。 現在サポートされているファイルシステムのタイプには、以下のものが含まれる。 adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs. coherent, sysv, xenix の 3 つは等価であり、 xenixcoherent は将来削除される --- 代りに sysv を用いること。 カーネルのバージョン 2.1.21 以降では、 ext および xiafs というタイプは、もはや存在しない。 usbfs は、以前は usbdevfs として知られていた。

ほとんどのタイプに対しては、 mount プログラムがしなければならないことは単に mount(2) システムコールを発行することだけであり、 そのタイプのファイルシステムに対する細かな知識は必要とされない。 しかしいくつかのタイプ (nfs, smbfs, ncpfs など) については、 特別なコードが必要になる。 nfs 対応コードは組み込まれているが、 smbfs と ncpfs については別にマウントプログラムが用意されている。 全部のタイプを同じやり方で扱うことができるようにするため、 mount はタイプ TYPE とともに呼び出されると、(もしあれば) /sbin/mount.TYPE を実行する。 smbmount プログラムでは、バージョンによって呼び出しの方式が異なっていることが多いので、 /sbin/mount.smbfs は必要な呼び出し方式に調整するシェルスクリプトでなければならないだろう。

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

auto タイプはフロッピーを一般ユーザーがマウントする場合に特に便利であろう。 プローブの順序を変更したい場合 (例えば msdos の前に vfat の試行をしたい場合や ext2 の前に ext3 を試行したい場合) や、 カーネルモジュールの自動ローダを利用している場合には、 /etc/filesystems ファイルを作っておくと便利である。 注意: ファイルシステムのテストには発見的手法 (適当な `合い言葉' が見つかるかどうか) が用いられるので、 ファイルシステムのタイプを間違えて、被害を被る可能性もある。 データが重要な場合は、 mount にファイルシステムタイプを推測させてはならない。

複数のタイプをコンマで区切ったリストで指定することもできる。 ファイルシステムのタイプのリストの前に no を前置することもできる。 これは動作対象としないファイルシステムを指定する。 (-a オプションとともに用いると良いかもしれない。)

例えば以下のコマンド:

mount -a -t nomsdos,ext
msdos および ext を除くすべてのファイルシステムをマウントする。
-O
-a と一緒に使うと、 -a が適用されるファイルシステムを制限することができる。 この動作は -t と似ているが、 -a と一緒に使うとき以外は機能しない点が異なる。 例えば以下のコマンド:
mount -a -O no_netdev
/etc/fstab ファイルのオプションフィールドで _netdev オプションが指定されていない 全てのファイルシステムをマウントする。

各オプションが厳密にマッチされる点が -t とは異なる。 ある 1 個のオプションの前に no をおいても、残りのオプションの意味は打ち消されない。

-t-O オプションの機能は足し合わせることができる。 すなわちコマンド

mount -a -t ext2 -O _netdev
は _netdev が指定されている 全ての ext2 ファイルシステムをマウントするが、 ext2 以外のファイルシステムや、 _netdev が指定されていない ext2 ファイルシステムはマウントしない。
-o
オプションの指定を行うには、 -o フラグに続けて各オプションをコンマで区切った文字列を書く。 オプションには、 /etc/fstab の中でのみ意味を持つものもある。 以下のオプションはマウントされるすべての ファイルシステムに適用できるものである (但し、全てのファイルシステムがこれらのオプションを引き受けるとは限らない。 例えば、 sync オプションは現在 ext2, ext3, ufs でのみ効果をもつ):
async
そのファイルシステムに対するすべての I/O が非同期 (asynchronous) に行われる。
atime
アクセス毎に inode のアクセス時間を更新する。デフォルト。
auto
-a が指定されたときにマウントされる。
defaults
デフォルトのオプション: rw, suid, dev, exec, auto, nouser, async を用いる。
dev
ファイルシステム上の キャラクタ・スペシャル・デバイスや ブロック・スペシャル・デバイスを 利用できるようにする。
exec
バイナリの実行を許可する。
group
通常 (つまり root 以外) のユーザーの属するグループのうちの 1 つが デバイスのグループとマッチした場合に、 そのユーザーがファイルシステムをマウントするのを許可する。 このオプションはオプション nosuidnodev を暗黙のうちに指定する (ただし、オプション行で group,dev,suid のようにして、その後のオプションで上書きしない限り)。
mand
このファイルシステム上での強制 (mandatory) ロックを許可する。 fcntl(2) を参照すること。
_netdev
ネットワークアクセスが必要なデバイス上にあるファイルシステム (システムでネットワークが使用可能になるまでは、 ファイルシステムをマウントさせないために使われる)。
noatime
そのファイルシステム上では inode のアクセス時間を更新しない (例えばニュースサーバーをスピードアップしたいときなどに、 ニューススプールへのアクセス速度を向上させるために用いられる)。
noauto
明示的に指定されたときのみマウントできる。 つまり -a オプションではマウントされない。
nodev
このファイルシステム上にある キャラクタ・スペシャル・デバイスや ブロック・スペシャル・デバイスを 使用できないようにする。
noexec
マウントされたファイルシステム上の任意のバイナリの直接実行を禁止する。 (最近になるまで /lib/ld*.so /mnt/binary のようなコマンドを使って、 バイナリを何とか実行することが可能であった。 このトリックは Linux 2.4.25 / 2.6.0 以降では失敗する。)
nomand
ファイルシステム上での強制ロックを禁止する。
nosuid
SUID および SGID ビットを無効にする (これは安全なように見えるが、 suidperl(1) がインストールされている場合には、実際にはむしろ危険である)。
nouser
一般ユーザー (スーパーユーザー以外のユーザー) のマウントを禁止する。 これはデフォルトである。
owner
通常 (つまり root 以外) のユーザーがデバイスの所有者とマッチした場合に、 そのユーザーがファイルシステムをマウントするのを許可する。 このオプションはオプション nosuidnodev を暗黙のうちに指定する (ただし、オプション行で owner,dev,suid のようにして、その後のオプションで上書きしない限り)。
remount
すでにマウントされているファイルシステムを再マウントしようとする。 これは通常ファイルシステムのマウントフラグを変更するとき (特にリードオンリーのファイルシステムを書き込み可能にするとき) に用いられる。 デバイスとマウントポイントを変更しない。
ro
ファイルシステムをリードオンリーでマウントする。
rw
ファイルシステムを読み書き可能なモードでマウントする。
suid
SUID および SGID ビットを有効にする。
sync
そのファイルシステムに対する I/O がすべて同期的 (synchronous) に行われる。
dirsync
ファイルシステムにおける全てのディレクトリ更新を、 同期的 (synchronous) に行わせる。 このオプションは以下のシステムコールに影響する: creat, link, unlink, symlink, mkdir, rmdir, mknod, rename.
user
一般ユーザーでもファイルシステムをマウントできるようにする。 マウントを行ったユーザーの名前が mtab に書き込まれ、 そのユーザーがアンマウントできるようになる。 このオプションを指定すると、同時に noexec, nosuid, nodev が指定されたことになる。 ただし続けて指定すれば上書きは可能。 すなわち user,exec,dev,suid のような行を指定すればよい。
users
全てのユーザーがファイルシステムをマウント・アンマウント出来るようにする。 このオプションを指定すると、同時に noexec, nosuid, nodev が指定されたことになる。 ただし続けて指定すれば上書きは可能。 すなわち users,exec,dev,suid のような行を指定すればよい。
--bind
サブツリーをどこか他の場所に再マウントする (サブツリーの内容が両方の場所でアクセスできる)。 上記を参照。
--move
サブツリーを他の場所に移動する。上記を参照。

 

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

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

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

 

adfs のマウントオプション

uid=value and gid=value
このファイルシステムのファイルの所有者とグループを設定する (デフォルトは uid=gid=0)。
ownmask=value and othmask=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 にこのような文字列があると反応する)

 

coherent のマウントオプション

なし。

 

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" がデフォルトになる。

 

ext のマウントオプション

なし。 `ext' ファイルシステムはすでに時代遅れであり、用いるべきではない。 Linux バージョン 2.1.21 以降では extfs はカーネルソースから削除されている。

 

ext2 のマウントオプション

`ext2' ファイルシステムは Linux の標準ファイルシステムである。 Linux 2.5.46 以降では、大部分のマウントオプションのデフォルト値は ファイルシステムのスーパーブロックで決定される。 このデフォルト値は tune2fs(8) で設定すること。
acl / noacl
POSIX アクセス制御リスト (Access Control List) をサポートする (またはサポートしない)。
bsddf / minixdf
システムコール statfs の振る舞いを設定する。 minixdf を指定すると、返り値の f_blocks フィールドにファイルシステムの全ブロック数が入るようになり、 bsddf を指定すると、ext2 ファイルシステムによって利用されていて、 ファイルの保存領域としては使えないブロックの分を引いた値が入る。 デフォルトは bsddf。 すなわち、

% mount /k -o minixdf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2630655   86954  2412169      3%   /k
% mount /k -o bsddf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2543714      13  2412169      0%   /k

(この例より、 /etc/fstab のオプションにコマンドラインオプションを追加できることもわかる。)

check ファイルシステム (のブロックと inode ビットマップ) をマウント時にチェックする。
check=none / nocheck
マウント時にチェックを行わない。 これがデフォルトであり、高速である。 e2fsck(8) を時折、例えばブート時に、呼び出す方が賢明である。
debug
デバッグ情報をマウントおよび再マウントごとに表示する。
errors=continue / errors=remount-ro / errors=panic
エラーが起こったときの振る舞いを指定する。 (エラーを無視し、ファイルシステムに問題があることを記録だけして続ける / ファイルシステムをリードオンリーでマウントしなおす / パニックを起こしてシステムを停止する) デフォルトはファイルシステムのスーパーブロックに設定されている。 これは tune2fs(8) を用いて変更することができる。
grpid または bsdgroups / nogrpid または sysvgroups
新しく作成されたファイルが取得するグループ id を指定する。 grpid が設定されていると、ファイルは作成されたディレクトリと同じグループ id を得る。 それ以外の場合ファイルはカレントプロセスの fsgid を得る (デフォルト)。 ただしディレクトリに SGID ビットが設定されている場合は、 親ディレクトリから gid を引き継ぎ、作成されたファイルがディレクトリならば、 自分自身にも SGID ビットを設定する。
grpquota / noquota / quota / usrquota
これらのオプションは指定可能であるが、単に無視される。
nobh
buffer_heads をファイルページキャッシュにアタッチしない (2.5.49 以降)。
nouid32
32 ビットの UID と GID を無効にする。 これは 16 ビットで (UID や GID の) 値を格納したり、 値が返されることを想定している昔のカーネルとの互換性のためにある。
oldalloc または orlov
新しい inode に対して、old アロケータまたは Orlov アロケータを使う。 Orlov がデフォルトである。
resgid=nresuid=n
ext2 ファイルシステムは適当な大きさの予約領域を持っている (デフォルトでは 5%。 mke2fs(8) および tune2fs(8) を見よ)。 これらのオプションはこの予約ブロックを使えるユーザーを指定する。 すなわち指定された uid を持つユーザー、あるいは指定されたグループに 所属するユーザーである。
sb=n
ブロック 1 の代わりにブロック n をスーパーブロックとして用いる。 このオプションはファイルシステムが損傷を受けた場合に便利である。 (以前はスーパーブロックのコピーが 8192 ブロックおきに作成されていた。 つまりブロック 1, 8193, 16385, ... である (大きなファイルシステムでは、この数は数千にも及ぶことがあった)。 バージョン 1.08 以降の mke2fs では -s オプション (sparse superblock: 疎なスーパーブロック) が使えるようになり、バージョン 1.15 以降ではこれがデフォルトになった。 注意してほしいのだが、つまりこれは、最近の mke2fs で作成された ext2 ファイルシステムは、 Linux 2.0.* では read/write での mount ができない、ということである。) ここでのブロック数は 1k バイト単位を使う。 よって、4k バイトブロックでファイルシステム上の 論理ブロック 32768 を使いたい場合は、"sb=131072" とすること。
user_xattr / nouser_xattr
"user." 拡張属性をサポートする (またはサポートしない)。

 

ext3 のマウントオプション

`ext3' ファイルシステムは ext2 ファイルシステムを作り替えたもので、 拡張としてジャーナリング機能を備えている。 ext2 と同じオプションに加え、以下の追加オプションをサポートしている。
journal=update
ext3 ファイルシステムのジャーナルを現在の形式に更新する。
journal=inum
ジャーナルが既にある場合、このオプションは無視される。 ジャーナルがない場合、ext3 ファイルシステムのジャーナルファイルを 表すための i ノードの数を指定する。 ext3 は、i ノード数が inum のファイルの古い内容を上書きして、新しいジャーナルを作成する。
noload
マウント時に ext3 ファイルシステムのジャーナルを読み込まない。
data=journal / data=ordered / data=writeback
ファイルデータのジャーナリングモードを指定する。 メタデータは常にジャーナルに書かれる。 ルートファイルシステムに対して ordered 以外のモードを使用するには、 rootflags=data=journal のようにして、モードをブートパラメータとしてカーネルに渡す。
journal
メインファイルシステムより前に、全てのデータがジャーナルに記録される。
ordered
これがデフォルトのモードである。 メタデータがジャーナルに記録される前に、 全てのデータがメインファイルシステムに直接書き出される。
writeback
データの順番は保存されない。 メタデータがジャーナルに記録された後で、 データがメインファイルシステムに書き込まれる。 これはスループットを高くするオプションらしい。 このオプションは内部ファイルシステムの完全性を保証する。 しかし、クラッシュした後のジャーナルによる回復で、 ファイルが昔のデータになることも許されている。
commit=nrsec
全てのデータとメタデータを nrsec 秒毎に同期させる。 デフォルト値は 5 秒である。 0 はデフォルトを意味する。

 

fat のマウントオプション

(注意: fat は独立したファイルシステムではなく、 msdos, umsdos, vfat 各ファイルシステムの共通部分である。)
blocksize=512 / blocksize=1024 / blocksize=2048
ブロックサイズを設定する (デフォルトは 512)。
uid=valuegid=value
すべてのファイルの所有者とグループを設定する (デフォルトはカレントプロセスの uid と gid)。
umask=value
umask を設定する (umask とは許可属性のビットマスクで、 立てないビットを立てたもの)。 デフォルトはカレントプロセスの umask。値は 8 進数で与える。
dmask=value
ディレクトリにのみ適用される umask を設定する。 デフォルトはカレントプロセスの umask。 値は 8 進数で与える。
fmask=value
通常のファイルにのみ適用される umask を設定する。 デフォルトはカレントプロセスの umask。 値は 8 進数で与える。
check=value
チェックの詳細さは 3 つのレベルから選択できる:
r[elaxed]
大文字と小文字を受け付け、それぞれ等価と見なす。 ロングネームの部分は切り捨てられる (すなわち verylongname.foobarverylong.foo となる)。 スペース文字を名前のそれぞれの部分 (本体と拡張子) に用いることができる。
n[ormal]
"relaxed" と似ているが、多くの特殊文字 (*, ?, <, スペースなど) は 用いることができない。デフォルト。
s[trict]
"normal" と似ているが、名前には長い部分を含むことができない。 また Linux では用いることができるが MS-DOS では受け入れられない特殊文字 (+, =, スペースなど) を用いることができない。
codepage=value
FAT や VFAT ファイルシステムで、短いファイル名に変換するときに 用いる文字のコードページを設定する。 デフォルトではコードページ 437 が用いられる。
conv=b[inary] / conv=t[ext] / conv=a[uto]
fat ファイルシステムは CRLF<-->NL (MS-DOS のテキストフォーマットと UNIX の テキストフォーマット) の変換をカーネルで行うことができる。 以下の変換モードを指定できる:
binary
変換は行わない。デフォルト。
text
すべてのファイルで CRLF<-->NL の変換を行う。
auto
拡張子を見てバイナリファイルかどうか判断し、バイナリではないファイルに 対して CRLF<-->NL の変換を行う。 拡張子のリストは fs/fat/misc.c の先頭に記述されている。 (2.0 の段階ではリストは以下の通り: exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh, zoo, tar, z, arj, tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx, tfm, vf, gf, pk, pxl, dvi)

lseek を行うプログラムはカーネルレベルのテキスト変換と相性が悪い。 この変換によってデータを台無しにしてしまった人もいるので、注意すること!

バイナリモードでマウントしたファイルシステムに対して、変換ツール (fromdos/todos) を用いることもできる。

cvf_format=module
自動検知の結果ではなく、CVF (Compressed Volume File: 圧縮ボリュームファイル) モジュール cvf_module を使うよう、ドライバに強制する。 カーネルが kmod をサポートしていれば、 cvf_format=xxx オプションとしてもオンデマンドで CVF モジュールをロードできる。
cvf_option=option
CVF モジュールに渡すオプション。
debug
debug フラグを ON にする。 バージョン文字とファイルシステムのパラメータが表示される (これらのデータはパラメータが一貫していないような場合にも表示される)。
fat=12 / fat=16 / fat=32
12 ビット fat か 16 ビット fat か 32 ビット fat かを特定する。 これは FAT 形式の自動認識ルーチンによる設定を上書きする。 用いる際には注意すること。
iocharset=value
8 ビットの文字を 16 ビットの Unicode 文字に変換する (あるいはその逆) ときに用いる文字セット (character set)。デフォルトは iso8859-1 である。 長いファイル名は、ディスクには Unicode フォーマットで保存されている。
quiet
quiet フラグを ON にする。 ファイルを chown や chmod しようとしたときにもエラーを返さず、単に失敗する。 用いる際には注意すること!
sys_immutable, showexec, 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 / case=asis
すべてのファイルのファイル名を小文字に変換するか、 あるいはそのままにするかを指定する (デフォルトは case=lower)
conv=binary / conv=text / conv=auto
conv=text が指定されると、ファイルを読み取るときに CR を適宜削除する (特に NL の前にある場合)。 conv=auto が指定されると、ファイルによって conv=binaryconv=text を適宜選択する。 conv=binary が指定されると、ファイルをそのまま読み込む。 デフォルトは conv=binary
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] / map=o[ff] / map=a[corn]
Rock Ridge 拡張がされていないボリュームに対して normal が指定されると、 ファイル名の大文字が小文字の ASCII にマップされ、 最後の `;1' は削除され、`;' はすべて `.' に変換される。 map=off が指定されると、ファイル名の変換は行わない。 norockを見よ。 デフォルトは map=normalmap=acornmap=normal と似ているが、Acorn 拡張があればそれを適用する。
mode=value
Rock Ridge 拡張がされていないボリュームに対して、 すべてのファイルのモードを指定された値にする。 デフォルトは、すべてのユーザーに対する読み込み属性。 Linux 2.1.37 以降では、10 進数を用いなくても良くなった (0 で始まる数値は 8 進数とみなされる)。
unhide
hidden 属性のファイルや、それに関連付けられたファイルも表示する。 (通常のファイルがそれに関連付けられたファイルまたは hidden 属性のファイルと 同じファイル名である場合、通常のファイルはアクセスできなくなる。)
block=[512|1024|2048]
ブロックサイズを指定する。デフォルトは block=1024
conv=a[uto] / conv=b[inary] / conv=m[text] / conv=t[ext]
デフォルトは conv=binary。 Linux 1.3.54 以降では、このオプションは無効となった。 またそれ以前でも binary 以外の設定は非常に危険であり、 原因不明のデータ破壊を引き起こすことがある。
cruft
ファイルサイズの上位バイトがゴミを含んでいる場合、 このオプションを指定することで上位バイトを無視できる。 このオプションを指定すると、ファイルの大きさは 16MB に制限される。
session=x
マルチセッション CD でのセッション数を選択する (2.3.4 以降)。
sbsector=xxx
セッションをセクタ xxx から始める (2.3.4 以降)。

以下のオプションは 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 / errors=remount-ro / errors=panic
エラーが起こったときの振る舞いを指定する。 (エラーを無視し、ファイルシステムに問題があることを記録だけして続ける / ファイルシステムをリードオンリーでマウントしなおす / パニックを起こしてシステムを停止する)
noquota / quota / usrquota / grpquota
これらのオプションは指定可能であるが、単に無視される。

 

minix のマウントオプション

なし。

 

msdos のマウントオプション

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

 

ncpfs のマウントオプション

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

 

nfs のマウントオプション

通常のマウントオプションにはカーネルによって解釈される 逐語的な文字列を用いるが、 nfs ファイルシステムでは struct nfs_mount_data と言う型のバイナリ引き数でオプションを渡す。 mount プログラムは以下の `tag=value' 形式のオプションを解釈し、 その内容を上の構造体に代入する。 rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, mounthost=name, mountprog=n, mountvers=n, nfsprog=n, nfsvers=n, namlen=n. オプション addr=n は指定可能であるが単に無視される。 以下のオプションはブール値で指定する。 no を前置することもでき、その場合は真偽が反転する。 bg, fg, soft, hard, intr, posix, cto, ac, tcp, udp, lock. これらの詳細に関しては nfs(5) を見よ。

特に便利なオプションをいくつか以下に示す。

rsize=8192,wsize=8192
この指定をすると nfs コネクションは高速になる。 デフォルトのバッファサイズは 4096。 (NFSv2 は rsizewsize があまり大きいと動作しない。)
hard
サーバーがクラッシュしたとき、NFS マウントされたファイルシステム上の ファイルにアクセスしているプログラムはハングする。 intr を同時に指定していなければ、プロセスは interrupt / kill できない。 NFS サーバが再び接続可能になると、 プログラムはその時点から何もなかったように再開する。 こちらを指定しておくと良い場合が大部分であろう。
soft
このオプションを指定すると nfs サーバがしばらく反応しなくなったとき、 カーネルはタイムアウト動作をするようになる。 時間の長さは timeo=time で指定できる。 このオプションは、プロセスがサーバからファイルを get するときに nfs サーバがときどき反応しなくなったり、 リブートしたりする場合に指定すると有効かもしれない。 通常はトラブルの原因になる場合がほとんどだろう。
nolock
ロック動作を行わない。lockd を起動しない。

 

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=valuegid=value, umask=value
ファイルシステムにあるファイルの許可属性を設定する。 umask の値は 8 進数で指定する。 デフォルトではファイルは root が所有し、 他のユーザーからは読み取り不可になっている。

 

proc のマウントオプション

uid=valuegid=value
これらのオプションは指定可能であるが、私の知る限り効力はない。

 

ramfs のマウントオプション

ramfs はメモリベースのファイルシステムである。 マウントすれば使用することができる。 アンマウントすると内容は消えてしまう。 Linux 2.3.99pre4 以降で存在する。 マウントオプションはない。

 

reiserfs のマウントオプション

reiserfs はジャーナリングファイルシステムである。 reiserfs のマウントオプションは http://www.namesys.com/mount-options でもっと完全に説明されている。
conv
バージョン 3.6 の reiserfs ソフトウェアに バージョン 3.5 のファイルシステムをマウントさせる。 新しく作成されたオブジェクトには 3.6 の形式が使われる。 このようにしたファイルシステムは reiserfs 3.5 のツールとは互換性がなくなる。
hash=rupasov / hash=tea / hash=r5 / hash=detect
reiserfs がディレクトリ内でファイルを見付けるのに、 どのハッシュ関数を使うかを選択する。
rupasov
Yury Yu. Rupasov が発明したハッシュ。 このハッシュは高速であり、 辞書順で近いファイル名を近いハッシュ値に対応づけることで 近接関係 (locality) が保存される。 高い確率でハッシュの衝突が起こるので、このオプションは使うべきではない。
tea
Jeremy Fitzhardinge が実装した Davis-Meyer 関数。 ハッシュ名にハッシュ置換ビットを使う。 ランダム性が高いので、使用される CPU コストに対してハッシュ衝突の確率が低い。 このオプションは、r5 ハッシュで EHASHCOLLISION エラーが起こる場合に使われる。
r5
rupasov ハッシュの修正版。 デフォルトではこれが使用され、非常に多くのディレクトリや 変わったファイル名のパターンがファイルシステムにない限り、 もっとも良い選択肢である。
detect
現在マウントされているファイルシステムを mount コマンドに調べさせ、どのハッシュ関数が使われているかを検出 (detect) させる。 さらに、この情報を reiserfs のスーパーブロックに書き込ませる。 古い形式のファイルシステムを初めてマウントするときにのみ役立つ。
hashed_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 ユーティリティが取得できる。

 

romfs のマウントオプション

なし。

 

smbfs のマウントオプション

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

 

sysv のマウントオプション

なし。

 

tmpfs のマウントオプション

以下のパラメータには、Ki, Mi, Gi (バイナリのキロ・メガ・ギガ) を表す サフィックス k, m, g をつけることができる。 また再マウントのときに変更することもできる。
size=nbytes
ファイルシステムのデフォルトの最大サイズを上書きする。 サイズはバイトで指定され、ページ単位になるように切り捨てられる。 デフォルトはメモリサイズの半分である。
nr_blocks=
ブロック数を設定する。
nr_inodes=
inode 数を設定する。
mode=
ルートディレクトリの最初の許可属性を設定する。

 

udf のマウントオプション

udf は Optical Storage Technology Association で定義されている "Universal Disk Format" ファイルシステムであり、DVD-ROM で多く使用される。 iso9660 も参照すること。
gid=
デフォルトのグループを設定する。
umask=
デフォルトの umask を設定する。 値は 8 進数で指定する。
uid=
デフォルトのユーザーを設定する。
unhide
隠しファイルも見せる。
undelete
削除されたファイルもリストに見せる。
nostrict
厳密に適合させない。
iocharset
NLS 文字セットを設定する。
bs=
ブロックサイズを設定する (2048 以外では動作しない)。
novrs
ボリュームシーケンスの確認をスキップする。
session=
CDROM セッションのカウントを 0 から始める。 デフォルトは最終セッション。
anchor=
標準のアンカーの位置を上書きする。デフォルトは 256。
volume=
VolumeDesc の位置を上書きする (未実装)。
partition=
PartitionDesc の位置を上書きする (未実装)。
lastblock=
ファイルシステムの最終ブロックを設定する。
fileset=
fileset ブロックの位置を上書きする (未実装)。
rootdir=
ルートディレクトリの位置を上書きする (未実装)。

 

ufs のマウントオプション

ufstype=value
UFS は他の OS で広く用いられているファイルシステムである。 ただし実装が OS によって異なっているのが問題である。 ある種の実装における機能には文書化されていないものがあり、 ufs の形式を自動的に認識するのは難しい。 したがってユーザーは ufs の形式をマウントオプションで指定しなければならない。 指定できる値は以下の通り:
old
ufs の古い形式。これがデフォルトで、リードオンリー (-r オプションを忘れずに指定すること)。
44bsd
BSD ライクなシステム (NetBSD, FreeBSD, OpenBSD) で作られたファイルシステムに用いる。
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 が有効になる。 'uni_xlate' が設定されていると UTF8 は無効になる。
shortname=[lower|win95|winnt|mixed]

8.3 形式の文字列に合うようなファイル名を 生成したり表示したりする動作を定義する。 ファイルにロングネームがある場合は、いつでも指定された動作で表示する。 以下の 4 つのモードがある:

lower
ショートネームを表示する際に小文字にする。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。
win95
ショートネームを表示する際に大文字にする。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。
winnt
ショート名をそのまま表示する。 ショートネームが全て小文字または全て大文字でない場合は、 ロングネームで生成する。
mixed
ショート名をそのまま表示する。 ショートネームに小文字が含まれる場合は、ロングネームで生成する。

デフォルトは "lower" である。

 

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 進数で指定する。

 

xenix のマウントオプション

なし。

 

xfs のマウントオプション

biosize=size
バッファされる I/O サイズを設定する (デフォルトのサイズは 64K)。 size は、希望する I/O サイズの (基数 2 の) 対数で表さなければならない。 このオプションに指定される有効な値は 14 〜 16 である
(つまり、16K, 32K, 64K バイトである)。 ページサイズが 4K バイトのマシンでは、 13 (8K バイト) も size として有効である。 バッファされる I/O サイズは、 ioctl(2) システムコールを使って、各ファイル単位で変更することもできる。
dmapi / xdsm
DMAPI (Data Management API, データ管理 API) イベント呼び出しを有効にする。
logbufs=value
メモリ内ログバッファの数を指定する。 有効な数値は 2 〜 8 の範囲である。 デフォルトの値は、 ブロックサイズが 64K のファイルシステムには 8 バッファ、 ブロックサイズが 23K のファイルシステムには 4 バッファ、 ブロックサイズが 16K のファイルシステムには 3 バッファ、 他の設定では 2 バッファである。 バッファ数を増やすと、同じ実行負荷に対して性能が良くなる。 しかし、追加されるログバッファとそれに関連する制御構造体で使われる メモリのコストがかかる。
logbsize=value
各メモリ内ログバッファのサイズを設定する。 有効なサイズは 16384 (16K) と 32768 (32K) である。 デフォルトの値は、32MB 以上のメモリを持つマシンでは 32768 である。 それ以下のマシンでは 16384 がデフォルトである。
logdev=devicertdev=device
外部ログ (メタデータジャーナル) とリアルタイムデバイスの 両方または片方を使う。 XFS ファイルシステムには、データセクション・ログセクション・ リアルタイムセクションの 3 つの部分がある。 リアルタイムセクションは省略することができる。 ログセクションはデータセクションと分離することも、 データセクションに含めることもできる。 xfs(5) を参照すること。
noalign
データ割り当てをストライプユニット境界に配置しない。
noatime
ファイルを読み込んだときに、タイムスタンプを更新しない。
norecovery
ログを使った回復を実行せずにファイルシステムをマウントする。 ファイルシステムが正常にアンマウンントされなかった場合に、 norecovery モードでマウントされると、不整合が起こりやすい。 そのため、いくつかのファイルやディレクトリにアクセスできないかもしれない。 norecovery でマウントされるファイルシステムは、 リードオンリーでマウントしなければならない。 さもなければ、マウントに失敗するだろう。
nouuid
ファイルシステム uuid を無視する。 これは重複する uuid によるエラーを回避する。
osyncisdsync
O_SYNC フラグを設定してオープンしたファイルに、 O_DSYNC フラグが使われた場合と同じ動作で書き込む。 データの安全性を危険に晒すことなく、よりよい性能が得られる。 しかし、このオプションが有効になっている場合、 システムがクラッシュすると、 O_SYNC 書き込みによるタイムスタンプの更新が失われる。
quota / usrquota / uqnoenforce
ユーザーディスク quota のアカウントを有効にして、 制限を (オプションとして) 守らせる。
grpquota / gqnoenforce
グループディスク quota のアカウントを有効にして、 制限を (オプションとして) 守らせる。
sunit=valueswidth=value
RAID デバイスのストライプユニットと幅を指定する。 または、ストライプボリュームを指定する。 このオプションが指定されていない場合、 mkfs の時に RAID デバイスに対して ストライプボリューム・幅・ユニットを指定して ファイルシステムが作成されていれば、 mount システムコールは値をスーパーブロックから取り出す。 RAID デバイス上に直接作成されたファイルシステムでは、 スーパーブロックにある情報を上書きするために、 これらのオプションを使うことができる。 ただし、ファイルシステムが作成された後で、 下層にあるディスクレイアウトが変更される場合。 sunit オプションが指定された場合、 swidth が必要である。 swidthsunit の値の倍数でなければならない。

 

xiafs のマウントオプション

なし。xiafs は特に欠点のないファイルシステムであるが、 あまり用いられておらず、メンテナンスされていない。 おそらく用いない方が良いだろう。 Linux のバージョン 2.1.21 以降では xiafs はカーネルソースから削除された。

 

loop デバイス

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

  mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024

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

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

loop デバイスの名前をコマンドラインで省略した場合 (`-o loop' のみを指定した場合) は mount はまだ使われていない loop デバイスを探してそれを利用する。 /etc/mtab/proc/mounts へのシンボリックリンクにするような馬鹿をしなければ、 mount によって割り当てられたいずれの loop デバイスも umount によって解放できる。 `losetup -d' を用いれば loop デバイスを手動で解放することもできる。 詳細は losetup(8) を見よ。

 

返り値

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

 

ファイル

/etc/fstab
ファイルシステムの一覧表
/etc/mtab
マウントされたファイルシステムの一覧表
/etc/mtab~
ロックファイル
/etc/mtab.tmp
テンポラリファイル
/etc/filesystems
試行するファイルシステムタイプの一覧

 

関連項目

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

バグ

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

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

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

ラベルまたは uuid によるマウントは、そのデバイスの名前が /proc/partitions にリストされている場合にのみ可能である。 特に、カーネルが devfs を付けてコンパイルされているにも関わらず、 devfs がマウントされていない場合にも失敗する。  

履歴

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


 

Index

名前
書式
説明
オプション
ファイルシステム独自のマウントオプション
adfs のマウントオプション
affs のマウントオプション
coherent のマウントオプション
devpts のマウントオプション
ext のマウントオプション
ext2 のマウントオプション
ext3 のマウントオプション
fat のマウントオプション
hfs のマウントオプション
hpfs のマウントオプション
iso9660 のマウントオプション
jfs のマウントオプション
minix のマウントオプション
msdos のマウントオプション
ncpfs のマウントオプション
nfs のマウントオプション
ntfs のマウントオプション
proc のマウントオプション
ramfs のマウントオプション
reiserfs のマウントオプション
romfs のマウントオプション
smbfs のマウントオプション
sysv のマウントオプション
tmpfs のマウントオプション
udf のマウントオプション
ufs のマウントオプション
umsdos のマウントオプション
vfat のマウントオプション
usbfs のマウントオプション
xenix のマウントオプション
xfs のマウントオプション
xiafs のマウントオプション
loop デバイス
返り値
ファイル
関連項目
バグ
履歴

This document was created by man2html using the manual pages.
Time: 17:38:43 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - SVENSKA - nl - pl