MOUNT
Section: System Calls (2)
索引
jman
BSD mandoc
索引
名称
mount
nmount
unmount
- ファイルシステムをマウントまたはマウント解除する
索引
ライブラリ
Lb libc
索引
書式
In sys/param.h
In sys/mount.h
Ft int
Fn mount const char *type const char *dir int flags void *data
Ft int
Fn unmount const char *dir int flags
In sys/uio.h
Ft int
Fn nmount struct iovec *iov u_int niov int flags
索引
解説
Fn mount
システムコールは、ファイルシステムオブジェクトをシステムファイルツリーの
マウントポイント
Fa dir
に付けます。
引数
Fa data
はマウントされるファイルシステムオブジェクトを記述します。
引数
Fa type
は
Fa data
をどのように解釈するかをカーネルに通知します (後述の
Fa type
を参照)。
ファイルシステムの内容は、新しいマウントポイント
Fa dir
を通して利用できるようになります。
マウントが成功すると
Fa dir
にあるすべてのファイルが覆い隠された状態になり、
ファイルシステムがマウント解除されるまで利用できなくなります。
Fn nmount
システムコールは、マウントオプション (ファイルシステムタイプ名称、
マウントされるデバイス、マウントポイントなど) が、
Fa niov
個の要素を持つ
Fa iov
配列によって名前と値の組の配列として渡されることを除いては、
Fn mount
と同様に動作します。
以下のオプションは全てのファイルシステムで要求されます:
- fstype Ta ファイルシステムタイプ名称 (例えば ``procfs
''
-
- fspath Ta マウントポイントのパス名 (例えば ``/proc
''
-
ファイルシステムタイプに依存して、その他のオプションが認識あるいは要求
されます。
例えば、殆どのディスクベースのファイルシステムは、上記のオプションに加えて
スペシャルデバイスのパス名を格納する
``from
''
オプションを要求します。
デフォルトではスーパユーザのみが
Fn mount
システムコールを呼び出すことができます。
この制約は
sysctl(8)
の
vfs.usermount
変数を 0 ではない値に設定することで解除することが可能です。
次の
Fa flags
は、ファイルシステムアクセスに影響のあるデフォルト値を抑制するように
指定できます。
- MNT_RDONLY
-
ファイルシステムを読取り専用として取り扱います。
スーパユーザでさえこれに書き込むことはできません。
このオプションなしに MNT_UPDATE を指定すると、
読取り専用ファイルシステムが読取り / 書込みにアップグレードされます。
- MNT_NOEXEC
-
そのファイルシステムからファイルを実行できないようにします。
- MNT_NOSUID
-
実行するときに、ファイルについての setuid ビットまたは setgid ビットを
尊重しません。
このフラグは、呼び出し側がスーパユーザでないときに、自動的に設定されます。
- MNT_NOATIME
-
ファイルアクセス時刻の更新を行いません。
- MNT_NODEV
-
ファイルシステム上の特殊ファイルを解釈しません。
このフラグは、呼び出し側がスーパユーザでないときに、自動的に設定されます。
- MNT_SNAPSHOT
-
ファイルシステムのスナップショットを作成します。
これは現状では UFS2 ファイルシステムのみをサポートします。
詳細については
mksnap_ffs8
を参照して下さい。
- MNT_SUIDDIR
-
SUID ビットが設定されたディレクトリは、新しいファイルの所有者を
ディレクトリと同じに設定します。
このフラグに効果を持たせるためには、カーネルが SUIDDIR オプションを
付けてコンパイルされていることが必要です。
より多くの情報のため
mount(8)
および
chmod(2)
のマニュアルページを参照してください。
- MNT_SYNCHRONOUS
-
ファイルシステムへの入出力はすべて同期的に行われます。
- MNT_ASYNC
-
ファイルシステムへの入出力はすべて非同期的に行われます。
- MNT_FORCE
-
ファイルシステムがクリーンでないように見えても、読み書き可でマウントを
強行します。
危険です。
MNT_UPDATE
および
MNT_RDONLY
と一緒に指定することで、たとえ幾つかのファイルが書込みのためにオープンされて
いたとしても、ファイルシステムは強制的に読込み専用にダウングレードされます。
- MNT_NOCLUSTERR
-
クラスタ読取りを無効にします。
- MNT_NOCLUSTERW
-
クラスタ書込みを無効にします。
フラグ
MNT_UPDATE
は、マウントコマンドがすでにマウントされたファイルシステムに
適用されていることを示します。
これによって、ファイルシステムをマウント解除および再マウントする必要なしに、
マウントフラグを変更できます。
ファイルシステムによっては、すべてのフラグの変更を許容しない場合もあります。
たとえば多くのファイルシステムが、
読み書き可から読取り専用への変更を許容しません。
vfs サブシステムは、フラグ
MNT_RELOAD
によってすでにマウントされているファイルシステムに
関係するデータ構造体を更新します。
Fa type
引数でファイルシステムを指定します。
システム上で既知なファイルシステムのタイプは
lsvfs(1)
で得ることができます。
Fa data
引数は、マウントするタイプに固有の引数が入った構造体を指すポインタです。
これらの引数構造体についての形式は各ファイルシステムに
ついてのマニュアルページに記載されています。
慣習によりファイルシステムのマニュアルページは、
lsvfs(1)
によって返されたファイルシステム名に ``mount_'' の接頭辞を付けて
命名されます。
それゆえ、
NFS
ファイルシステムは
mount_nfs8
マニュアルページに記述されています。
UFS と UFS2 として知られているデフォルトのファイルシステムのための
マニュアルページが存在しないことに注意しなくてはなりません。
Fn unmount
システムコールは、ファイルシステムを指定のマウントポイント
Fa dir
から対応付け解除します。
Fa flags
引数が
MNT_FORCE
を含むことで、ファイルがアクティブであっても、
ファイルシステムが強制的にマウント解除される必要があることを示します。
アクティブな特殊デバイスは機能し続けますが、
他のアクティブなファイルへのそれ以降のアクセスは、
たとえファイルシステムが後に再マウントされたとしてもエラーを引き起こします。
MNT_BYFSID
フラグが指定されている場合には、
Fa dir
は
``FSID : val0 : val1
''
としてエンコードされたファイルシステム ID に置き換えられるべきです。
ここで
val0
および
val1
は
Vt fsid_t
val[]
配列の内容の 10 進数表現です。
明示されたファイルシステム ID を持っているファイルシステムは、
マウント解除されます。
索引
戻り値
Rv -std
索引
エラー
Fn mount
および
Fn nmount
システムコールは、次のうちの 1 つでも起きたときには処理を失敗します:
- Bq Er EPERM
-
呼び出し側がスーパユーザでも
Fa dir
の所有者でもありません。
- Bq Er ENAMETOOLONG
-
パス名の構成要素が 255 文字を越えているか、
またはパス名全体が 1023 文字を越えています。
- Bq Er ELOOP
-
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
- Bq Er ENOENT
-
Fa dir
の構成要素が存在しません。
- Bq Er ENOTDIR
-
Fa name
の構成要素がディレクトリでないか、または
Fa special
のパスの構成要素中にディレクトリ以外のものが含まれています。
- Bq Er EBUSY
-
別のプロセスが現時点で
Fa dir
引数への参照を保持しています。
- Bq Er EFAULT
-
Fa dir
はプロセスに割り当てられたアドレス空間の範囲外を指しています。
次のエラーは、
ufs
ファイルシステムのマウントについて発生する可能性があります。
- Bq Er ENODEV
-
ufs_args の構成要素
Fa fspec
が存在しません。
- Bq Er ENOTBLK
-
Fa fspec
引数はブロックデバイスではありません。
- Bq Er ENXIO
-
Fa fspec
のメジャーデバイス番号が範囲外です (これはハードウェアに
対応するデバイスドライバが存在しないことを示します)。
- Bq Er EBUSY
-
Fa fspec
は既にマウントされています。
- Bq Er EMFILE
-
マウントテーブル空間が枯渇しました。
- Bq Er EINVAL
-
ファイルシステムのスーパブロックに
不都合なマジック番号または範囲外のブロックサイズがありました。
- Bq Er ENOMEM
-
ファイルシステムについてのシリンダグループ情報を読み取るのに十分な
メモリがありませんでした。
- Bq Er EIO
-
スーパブロックまたはシリンダグループの情報を読み取る間に
入出力エラーが発生しました。
- Bq Er EFAULT
-
Fa fspec
がプロセスに割り当てられたアドレス空間の範囲外を指しています。
次のエラーは
nfs
ファイルシステムマウントについて起きる可能性があります:
- Bq Er ETIMEDOUT
-
nfs
がサーバと接触しようとして時間切れになりました。
- Bq Er EFAULT
-
nfs_args によって記述された情報の一部が、
プロセスに割り当てられたアドレス空間の範囲外を指しています
Fn unmount
システムコールは、次のエラーの 1 つでも起きたときには処理を失敗します:
- Bq Er EPERM
-
呼び出し側がスーパユーザでも該当する
Fn mount
の呼び出しを実行したユーザでもありません。
- Bq Er ENAMETOOLONG
-
パス名の長さが 1023 文字を越えていました。
- Bq Er EINVAL
-
指定されたディレクトリがマウントテーブル内にありません。
- Bq Er ENOENT
-
MNT_BYFSID
を使用して指定されたファイルシステム ID がマウントテーブルの中に
見つかりませんでした。
- Bq Er EINVAL
-
MNT_BYFSID
を使用して指定されたファイルシステム ID がデコードされることが
できませんでした。
- Bq Er EINVAL
-
指定されたファイルシステムがルートファイルシステムではありません。
- Bq Er EBUSY
-
プロセスがファイルシステム上にあるファイルへの参照を保持しています。
- Bq Er EIO
-
キャッシュされたファイルシステム情報を書き込んでいる間に
入出力エラーが起きました。
- Bq Er EFAULT
-
Fa dir
引数がプロセスに割り当てられたアドレス空間の範囲外を指しています。
ufs
マウントは、最大数のファイルシステムが現時点でマウントされている場合にも
処理を失敗します。
索引
関連項目
lsvfs(1),
mksnap_ffs8,
mount(8),
umount(8)
索引
バグ
エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。
索引
歴史
Fn mount
関数と
Fn unmount
関数は
AT&T System
v6
で登場しました。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- バグ
-
- 歴史
-
Time: 07:06:32 GMT, January 12, 2009