MOUNT(8)

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

書式
mount [-lhV]

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

説明
Unix のシステムにおいては、アクセスできるファイルはすべて一つの大きな ツリー構造にまとめられている。 これは / をルート (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 つの場所でアクセスできる。 Linux 2.5.1 以降では、 サブツリーを単独で他の場所に移動することが可能になった。 使い方は以下の通りである。
    mount --move olddir newdir
proc ファイルシステムは特定のデバイスには関連付けられていないので、 マウントする際には proc のような適当なキーワードをデバイス指定の代わりに用いる。 (通常用いられている none はあまりお勧めできない: umount が `none busy' というエラーメッセージを出すことになるので、 混乱の原因となりかねない。) ほとんどの場合、デバイスは (ブロックスペシャルデバイスの) ファイル名で 指定する (例: /dev/sda1)。 しかし例外もある。例えば NFS を通してマウントする場合には、 device は knuth.cwi.nl:/dir のようになる。 ブロックスペシャルデバイスの指定には、ボリュームラベルか UUID を 用いることができる (以下の -L および -U オプションを見よ)。 ファイル /etc/fstab (fstab(5) を見よ) は、それぞれのデバイスが通常マウントされる場所を、 オプションとともに記述したものである。 このファイルは以下の 3 つの場合に用いられる。

(i) コマンド
    mount -a [-t type]
が (通常は起動スクリプトから) 実行されると、 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 の所有者にする場合、このデバイスに用いると便利だろう。 mount および umount プログラムによって現在マウントされているファイルシステムの一覧は /etc/mtab ファイル中に記述されている。 mount が引数なしで実行された場合には、 このリストが表示される。 proc ファイルシステムがマウントされている場合には (マウントポイントは /proc としよう)、 ファイル /etc/mtab と /proc/mounts はほとんど同じ内容になる。 /etc/mtab には、マウントオプションなど多少の情報が付け加えられているが、 常に最新の情報であるとは限らない (以下の -n オプションの説明を参照)。 /etc/mtab を /proc/mounts へのシンボリックリンクとすることも可能であるが、 この場合は上に挙げた情報が失われる。 loop デバイスを用いている場合には特に不便となってしまう。

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

-V  バージョンを表示する。

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

-v  詳細表示モード。

-a  fstab に指定されている (特定したタイプの) ファイルシステムを すべてマウントする。

-F  (-a とともに用いる) それぞれのデバイスごとに fork して新しい mount プロセスを生成する。 別々のデバイス、別々の NFS サーバに対するマウントを並行して行うことになる。 利点は動作が高速になること、 また NFS タイムアウトが並行して計測されることである。 逆に欠点としては、マウントの順序が規定されないことである。 したがって、 /usr と /usr/spool の両方を同時にマウントするときには、このオプションを用いることはできない。

-f  実際のシステムコール以外を除いてすべての動作をする。 もうちょっとわかりやすく言うと、 ファイルシステムのマウント動作を「行うふり」をする。 このオプションは -v フラグとともに用いると便利で、 コマンドが行おうとすることを見ることができる。 また以前に -n オプションを用いてマウントされたデバイスのエントリーを /etc/mtab に書き込む目的にも用いることができる。

-l  ext2, ext3, XFS のラベルを mount の出力に追加する。 これを行うには、mount にディスクデバイスの読み取り権限が必要である (つまり suid root されている必要がある)。 このような ext2 や ext3 のラベルを設定するには e2label(8) ユーティリティを用いればよい。 また、XFS のラベルを設定するには xfs_admin(8) を用いればよい。

-n  マウントの際に /etc/mtab に書き込みを行わない。 これが必要になるのは、例えば /etc がリードオンリーのファイルシステムの場合などである。

-s  あいまいなマウントオプションが与えられたときに、 実行を中断しないで受け入れる。 これはファイルシステムによってサポートされていない マウントオプションを無視する。 すべてのファイルシステムでこのオプションがサポートされているわけではない。 このオプションは Linux autofs ベースのオートマウンタのために用意されている。

-r  ファイルシステムをリードオンリーでマウントする。 同じ効果を持つオプションとしては -o ro がある。

-w  ファイルシステムを読み書き可能なモードでマウントする (デフォルト)。 同じ効果を持つオプションとしては -o rw がある。

-L label
    label で指定したパーティションをマウントする。

-U uuid
    uuid で指定したパーティションをマウントする。 これらの二つのオプションを用いるには、 /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, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs, xiafs. coherent, sysv, xenix の 3 つは等価である。 また xenix と coherent は将来削除され、 sysv が用いられることになる。 カーネルのバージョン 2.1.21 以降では、 ext および xiafs はサポートされない。 ほとんどのタイプに対しては、 mount プログラムがしなければならないことは単に mount(2) システムコールを発行することだけであり、 そのタイプのファイルシステムに対する細かな知識は必要とされない。 しかしいくつかのタイプ (nfs, smbfs, ncpfs など) においては、 それぞれ対応するコードが必要になる。 nfs 対応コードは組み込まれているが、 smbfs と ncpfs のコードは mount プログラムとは別になっている。 全部のタイプを同じやり方で扱うことができるようにするため、 mount はタイプ TYPE とともに呼び出されると、(もしあれば) /sbin/mount.TYPE を実行する。 smbmount プログラムでは、バージョンによって呼び出しの方式が異なっていることが多いので、 /sbin/mount.smb は必要な呼び出し方式に調整するシェルスクリプトでなければならないだろう。 デフォルトは iso9660 タイプである。 -t オプションが与えられなかった場合や、 auto タイプが指定された場合には、スーパーブロックをプローブして ファイルシステムを決定する (adfs, bfs, cramfs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, ntfs, qnx4, reiserfs, romfs, udf, ufs, vxfs, xfs, xiafs がサポートされている)。 このプローブに失敗すると、mount はファイル /etc/filesystems を読み込もうとする。 さらにこのファイルがなければ /proc/filesystems を読み込もうとする。 そして、読み込んだファイルにリストされているファイルシステムがテストされる。 ただし "nodev" ラベルの付いているもの (すなわち devpts, proc, nfs) はテストから除かれる。 /etc/filesystems が * のみの行で終わっている場合、 mount はその後に /proc/filesystems を読み込む。 auto タイプはフロッピーを一般ユーザーがマウントする場合に特に便利であろう。 プローブの順序を変更したい場合 (例えば msdos の前に vfat の試行をしたいなど) や、 カーネルモジュールの自動ローダを利用している場合には、 /etc/filesystems ファイルを作っておくと便利である。 注意: ファイルシステムのテストには発見的手法 (適当な `合い言葉' が見つかるかどうか) が用いられるので、 ファイルシステムのタイプを間違えて、被害を被る可能性もある。 データが重要な場合は、 mount にファイルシステムタイプを推測させてはならない。 複数のタイプをコンマで区切ったリストで指定することもできる。 ファイルシステムのタイプのリストの前に no を前置することもできる。 これは動作対象としないファイルシステムを指定する。 (-a オプションとともに用いると良いかもしれない。) 例えば以下のコマンド:
        mount -a -t nomsdos,ext
    は msdos および ext を除くすべてのファイルシステムをマウントする。

-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
        バイナリの実行を許可する。

    noatime
        そのファイルシステム上では inode のアクセス時間を更新しない (例えばニュースサーバーをスピードアップしたいときなどに、 ニューススプールへのアクセス速度を向上させるために用いられる)。

    noauto
        陽に指定されたときのみマウントできる。 つまり -a オプションではマウントされない。

    nodev
        このファイルシステム上にある キャラクタ・スペシャル・デバイスや ブロック・スペシャル・デバイスを 使用できないようにする。

    noexec
        マウントされたファイルシステム上のファイルの実行を禁止する。 このオプションは、サーバー上のファイルシステムのうち、 他のアーキテクチャ用のバイナリを保管しているものに適用すると便利だろう。

    nosuid
        SUID および SGID ビットを無効にする (これは安全なように見えるが、 suidperl(1) がインストールされている場合には、実際にはむしろ危険である)。

    nouser
        一般ユーザー (スーパーユーザー以外のユーザー) のマウントを禁止する。 これはデフォルトである。

    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 フラグに続けて指定する。

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=value と gid=value
    ファイルシステムのルートのオーナーとグループを設定する (デフォルトは uid=gid=0。 ただしオプション uid や gid を値なしで指定すると、カレントプロセスの uid および gid が用いられる)。

setuid=value と setgid=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=value と gid=value
    新たに作成される PTY の所有者と所有グループを設定する。 何も指定しないと、作成したプロセスの UID と GID になる。 例えば tty グループの GID が 5 であったとすると、 gid=5 とすれば新たに作成された PTY は tty グループに属することになる。

mode=value
    新たに作成される PTY のモードを設定する。 デフォルトは 0600 である。 mode=620 と gid=5 をセットすると、新たに生成される PTY は、 "mesg y" がデフォルトになる。

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

ext2 のマウントオプション
`ext2' ファイルシステムは Linux の標準ファイルシステムである。 カーネルのバグのため、ランダムなオプションでマウントされてしまうことがあった (Linux 2.0.4 で修正された)。

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 / check=normal / check=strict
    チェックレベルを設定する。 これらのオプションのうち少なくとも一つが設定されると (デフォルトでは check=normal が設定されている)、inode とブロックのビットマップが マウントの際にチェックされる (これは大きなディスクでは 30 秒ほどかかることもあるが、あまり役に立たない)。 strict チェックが指定されると、ブロックの deallocation (解放すべきブロックがデータ領域にないかどうか) がチェックされる。

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 ビットをセットする。

resgid=n と resuid=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" とすること。

grpquota / noquota / quota / usrquota
    これらのオプションは指定可能であるが、単に無視される。

nouid32
    32 ビットの UID と GID を無効にする。 これは 16 ビットで (UID や GID の) 値を格納したり、 値が返されることを想定している昔のカーネルとの互換性のためにある。

ext3 のマウントオプション
`ext3' ファイルシステムは ext2 ファイルシステムを作り替えたもので、 拡張としてジャーナリング機能を備えている。 ext2 と同じオプションに加え、以下の追加オプションをサポートしている。

journal=update
    ext3 ファイルシステムのジャーナルを現在の形式に更新する。

journal=inum
    ジャーナルが既にある場合、このオプションは無視される。 ジャーナルがない場合、ext3 ファイルシステムのジャーナルファイルを 表すための i ノードの数を指定する。 ext3 は、i ノード数が inum のファイルの古い内容を上書きして、新しいジャーナルを作成する。

noload
    マウント時に ext3 ファイルシステムのジャーナルを読み込まない。

data=journal / data=ordered / data=writeback
    ファイルデータのジャーナリングモードを指定する。 メタデータは常にジャーナルに書かれる。

    journal
        メインファイルシステムより前に、全てのデータがジャーナルに記録される。

    ordered
        これがデフォルトのモードである。 メタデータがジャーナルに記録される前に、 全てのデータがメインファイルシステムに直接書き出される。

    writeback
        データの順番は保存されない。 メタデータがジャーナルに記録された後で、 データがメインファイルシステムに書き込まれる。 これはスループットを高くするオプションらしい。 このオプションは内部ファイルシステムの完全性を保証する。 しかし、クラッシュした後のジャーナルによる回復で、 ファイルが昔のデータになることも許されている。

fat のマウントオプション
(注意: fat は独立したファイルシステムではなく、 msdos, umsdos, vfat 各ファイルシステムの共通部分である。)

blocksize=512 / blocksize=1024 / blocksize=2048
    ブロックサイズを設定する (デフォルトは 512)。

uid=value と gid=value
    すべてのファイルのオーナーとグループを設定する (デフォルトはカレントプロセスの uid と gid)。

umask=value
    umask を設定する (umask とは許可属性のビットマスクで、 立てないビットを立てたもの)。 デフォルトはカレントプロセスの umask。値は 8 進数で与える。

check=value
    チェックの詳細さは三つのレベルから選択できる:

    r[elaxed]
        大文字と小文字を受け付け、それぞれ等価と見なす。 ロングネームの部分は切り捨てられる (すなわち verylongname.foobar は verylong.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 のしきたりを 強制しようとするさまざまな試み。 おそらくは用いるべきでない。

hpfs のマウントオプション

uid=value と gid=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=binary と conv=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=value と gid=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=normal。 map=acorn は map=normal と似ているが、Acorn 拡張があればそれを適用する。

mode=value
    Rock Ridge 拡張がされていないボリュームに対して、 すべてのファイルのモードを指定された値にする。 デフォルトは、すべてのユーザに対する読み込み属性。 Linux 2.1.37 以降では、10 進数を用いなくても良くなった (0 ではじまる数値は 8 進数とみなされる)。

unhide
    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 に制限される。 `cruft' オプションは CDROM の全体の大きさがおかしな値 (負の値や、800MB 以上の値) だった場合には自動的にセットされる。 またボリュームのシーケンス番号が 0 または 1 以外だった場合にもセットされる。

session=x
    マルチセッション CD でのセッション数を選択する (2.3.4 以降)。

sbsector=xxx
    セッションをセクタ xxx から始める (2.3.4 以降)。

minix のマウントオプション
なし。

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

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

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 は rsize や wsize があまり大きいと動作しない。)

hard
    サーバーがクラッシュしたとき、NFS マウントされたファイルシステム上の ファイルにアクセスしているプログラムはハングする。 intr を同時に指定していなければ、プロセスは interrupt / kill できない。 NFS サーバが再び接続可能になると、 プログラムはその時点から何もなかったように再開する。 こちらを指定しておくと良い場合が大部分であろう。

soft
    このオプションを指定すると nfs サーバがしばらく反応しなくなったとき、 カーネルはタイムアウト動作をするようになる。 時間の長さは timeo=time で指定できる。 このオプションは、プロセスがサーバからファイルを get するときに nfs サーバがときどき反応しなくなったり、 リブートしたりする場合に指定すると有効かもしれない。 通常はトラブルの原因になる場合がほとんどだろう。

nolock
    ロック動作を行わない。lockd を起動しない。

ntfs のマウントオプション

iocharset=name
    ファイル名を返すときに用いる文字セット。 VFAT とは異なり、NTFS は変換できない文字を含む名前を抑制する。

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 が所有し、 他のユーザからは読み取り不可になっている。

proc のマウントオプション

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

reiserfs のマウントオプション
reiserfs はジャーナリングファイルシステムである。 reiserfs のマウントオプションは http://www.namesys.com/mount-options.html でもっと完全に説明されている。

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 と同様に、smb の実装は mount システムコールにバイナリの引数 (struct smb_mount_data) を用いる。 この引数は smbmount(8) によって渡すことができる。 現在のバージョンの mount (2.9w) は smb を扱うことができない。

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
    削除されたファイルもリストに見せる。

strict
    厳密に適合させる (未実装)。

utf8
    (未実装)。

iocharset
    (未実装)。

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 で作られたファイルシステムに用いる。

    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
    大文字か小文字かだけが異なる二つのファイル名を識別できるようにする。

nonumtail
    name~num.ext を用いる前に、まずシーケンス番号のない短縮名に変換しようとする。

utf8
    UTF8 は、コンソールで用いられる Unicode の 8 ビットエンコードに対して 安全なファイルシステムである。 このオプションを指定すると UTF8 が有効になる。 'uni_xlate' がセットされていると UTF8 は無効になる。

shortname=[lower|win95|winnt|mixed]
    (2.4.13 以降で使用可能な) オプションであり、 ショートファイル名の作成法と表示法を設定する。
       lower = display lower, create win95 filenames
       win95 = display win95, create win95 filenames
       winnt = display winnt, create winnt filenames
       mixed = display winnt, create win95 filenames
    デフォルトは "lower" である。

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=device と rtdev=device
    外部ログ (メタデータジャーナル) とリアルタイムデバイスの 両方または片方を使う。 XFS ファイルシステムには、データセクション・ログセクション・ リアルタイムセクションの 3 つの部分がある。 リアルタイムセクションは省略することができる。 ログセクションはデータセクションと分離することも、 データセクションに含めることもできる。 xfs(5) を参照すること。

noalign
    データ割り当てをストライプユニット境界に配置しない。

noatime
    ファイルを読み込んだときに、タイムスタンプを更新しない。

norecovery
    ログを使った回復を実行せずにファイルシステムをマウントする。 ファイルシステムが正常にアンマウンントされなかった場合に、 norecovery モードでマウントされると、不整合が起こりやすい。 そのため、いくつかのファイルやディレクトリにアクセスできないかもしれない。 norecovery でマウントされるファイルシステムは、 リードオンリーでマウントしなければならない。 さもなければ、マウントに失敗するだろう。

osyncisdsync
    O_SYNC フラグを設定してオープンしたファイルに、 O_DSYNC フラグが使われた場合と同じ動作で書き込む。 データの安全性を危険に晒すことなく、よりよい性能が得られる。 しかし、このオプションが有効になっている場合、 システムがクラッシュすると、 O_SYNC 書き込みによるタイムスタンプの更新が失われる。

quota / usrquota / uqnoenforce
    ユーザーディスク quota のアカウントを有効にして、 制限を (オプションとして) 守らせる。

grpquota / gqnoenforce
    グループディスク quota のアカウントを有効にして、 制限を (オプションとして) 守らせる。

sunit=value と swidth=value
    RAID デバイスのストライプユニットと幅を指定する。 または、ストライプボリュームを指定する。 このオプションが指定されていない場合、 mkfs の時に RAID デバイスに対して ストライプボリューム・幅・ユニットを指定して ファイルシステムが作成されていれば、 mount システムコールは値をスーパーブロックから取り出す。 RAID デバイス上に直接作成されたファイルシステムでは、 スーパーブロックにある情報を上書きするために、 これらのオプションを使うことができる。 ただし、ファイルシステムが作成された後で、 下層にあるディスクレイアウトが変更される場合。 sunit オプションが指定された場合、 swidth が必要である。 swidth は sunit の値の倍数でなければならない。

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

loop デバイス
残ったタイプとしてもう一つ、loop デバイスを用いたマウントがある。 例えば以下のコマンド
  mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024
は loop デバイス /dev/loop3 をファイル /tmp/fdimage に関連付け、そしてこのデバイスを /mnt にマウントする。 このタイプのマウントの際には三つのオプションが指定できる。 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 内部のバグ、または mount が nfs に対応していない。

8   ユーザーによる中断。

16  /etc/mtab の書き込み時またはロック時の問題がある。

32  マウントに失敗した。

64  マウントに成功した。

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

関連項目
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 では gid や umask を変更できない)。

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