mount(2) FreeBSD 一般コマンドマニュアル

mount

前のページ 上に戻る 次のページ

mount




書式

     #include <sys/param.h>
     #include <sys/mount.h>

     int
     mount(const char *type, const char *dir, int flags, void *data);

     int
     unmount(const char *dir, int flags);


解説

     mount() 関数は、ファイルシステムオブジェクトをシステムファイルツリーのマ
     ウントポイント dir に付けます。引数 data はマウントされるファイルシステム
     オブジェクトを記述します。引数 typedata をどのように解釈するかをカー
     ネルに通知します (後述の type を参照)。ファイルシステムの内容は、新しいマ
     ウントポイント dir を通して利用できるようになります。マウントが成功すると
     dir にあるすべてのファイルが覆い隠された状態になり、ファイルシステムがマ
     ウント解除されるまで利用できなくなります。

     次の flags は、ファイルシステムアクセスに影響のあるデフォルト値を抑制する
     ように指定できます。

     MNT_RDONLY       ファイルシステムを読取り専用として取り扱います。スーパユ
                      ーザでさえこれに書込むことはできません。このオプションな
                      しに MNT_UPDATE を指定すると、読取り専用ファイルシステム
                      が読取り / 書込みにアップグレードされます。

     MNT_NOEXEC       そのファイルシステムからファイルを実行できないようにしま
                      す。

     MNT_NOSUID       実行するときに、ファイルについての setuid ビットまたは
                      setgid ビットを尊重しません。

     MNT_NOATIME      ファイルアクセス時刻の更新を行いません。

     MNT_NODEV        ファイルシステム上の特殊ファイルを解釈しません。

     MNT_SUIDDIR      SUID ビットが設定されたディレクトリは、新しいファイルの
                      所有者をディレクトリと同じに設定します。

     MNT_SYNCHRONOUS  ファイルシステムへの入出力はすべて同期的に行なわれます。

     MNT_ASYNC        ファイルシステムへの入出力はすべて非同期的に行なわれま
                      す。

     MNT_FORCE        ファイルシステムがクリーンでないように見えても、読み書き
                      可でマウントを強行します。危険です。

     MNT_NOCLUSTERR   クラスタ読取りを無効にします。

     MNT_NOCLUSTERW   クラスタ書込みを無効にします。
     data は、マウントするタイプに固有の引数が入った構造体を指すポインタです。
     これらの引数構造体についての形式は各ファイルシステムについてのマニュアル
     ページに記載されています。慣習によりファイルシステムのマニュアルページ
     は、 lsvfs(1) によって返されたファイルシステム名に ``mount_'' の接頭辞を
     付けて命名されます。それゆえ、 NFS ファイルシステムは mount_nfs(8) マニュ
     アルページに記述されています。

     unmount() 関数呼び出しは、ファイルシステムを指定のマウントポイント dir か
     ら対応付け解除します。

     flags 引数で MNT_FORCE を指定することで、ファイルがアクティブであっても、
     ファイルシステムが強制的にマウント解除または読取り専用 (MNT_UPDATE と
     MNT_RDONLY も指定されている場合) にされる必要があることを示します。アク
     ティブな特殊デバイスは機能し続けますが、他のアクティブなファイルへのそれ
     以降のアクセスは、たとえファイルシステムが後に再マウントされたとしてもエ
     ラーを引き起こします。

     MNT_SUIDDIR オプションを機能させるためには、SUIDDIR オプションがカーネル
     内に組み込まれていることが必要です。詳細については mount(8) ページと
     chmod(2) ページを参照してください。


戻り値

     成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、
     グローバル変数 errno が設定されてエラーを示します。


エラー

     mount() 関数は、次のうちの 1 つでも起きたときには処理を失敗します。

     [EPERM]            呼び出し側がスーパユーザではありません。

     [ENAMETOOLONG]     パス名の構成要素が 255 文字を越えているか、またはパス
                        名全体が 1023 文字を越えています。

     [ELOOP]            パス名を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [ENOENT]           dir の構成要素が存在しません。

     [ENOTDIR]          name の構成要素がディレクトリでないか、または special
                        のパスの構成要素中にディレクトリ以外のものが含まれてい
                        ます。

     [EBUSY]            別のプロセスが現時点で dir への参照を保持しています。

     [EFAULT]           dir はプロセスに割り当てられたアドレス空間の範囲外を指
                        しています。

     次のエラーは、 ufs ファイルシステムのマウントについて発生する可能性があり
     ます。

     [ENODEV]           ufs_args の構成要素 fspec が存在しません。

                        るのに十分なメモリがありませんでした。

     [EIO]              スーパーブロックまたはシリンダーグループの情報を読取る
                        間に入出力エラーが発生しました。

     [EFAULT]           fspec がプロセスに割り当てられたアドレス空間の範囲外を
                        指しています。

     次のエラーは nfs ファイルシステムマウントについて起きる可能性があります。

     [ETIMEDOUT]        nfs がサーバと接触しようとして時間切れになりました。

     [EFAULT]           nfs_args によって記述された情報の一部が、プロセスに割
                        り当てられたアドレス空間の範囲外を指しています

     次のエラーは mfs ファイルシステムについて起きる可能性があります。

     [EMFILE]   マウントテーブル空間が枯渇しました。

     [EINVAL]   ファイルシステムのスーパーブロックに不都合なマジック番号または
                範囲外のブロックサイズがありました。

     [ENOMEM]   ファイルシステムについてのシリンダーグループ情報を読取るのに十
                分なメモリがありませんでした。

     [EIO]      スーパーブロックまたはシリンダーグループの情報を読取る間にペー
                ジングエラーが発生しました。

     [EFAULT]   name はプロセスに割り当てられたアドレス空間の範囲外を指してい
                ます。

     unmount() 関数は、次のエラーの 1 つでも起きたときには処理を失敗します。

     [EPERM]            呼び出し側がスーパユーザではありません。

     [ENOTDIR]          パスの構成要素中にディレクトリ以外のものが含まれていま
                        す。

     [ENAMETOOLONG]     パス名の構成要素が 255 文字を越えているか、またはパス
                        名全体が 1023 文字を越えています。

     [ELOOP]            パス名を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [EINVAL]           指定されたディレクトリがマウントテーブル内にありませ
                        ん。

     [EBUSY]            プロセスがファイルシステム上にあるファイルへの参照を保
                        持しています。

     [EIO]              キャッシュされたファイルシステム情報を書込みしている間
                        に入出力エラーが起きました。


歴史

     mount() 関数と unmount() 関数は Version 6 AT&T UNIX で登場しました。

FreeBSD 4.4                      May 24, 1995                      FreeBSD 4.4

ABELNET VPSサービス