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

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
バグ
歴史

jman



Time: 07:06:28 GMT, January 12, 2009