.\" Copyright (c) 1980, 1989, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mount.2 8.3 (Berkeley) 5/24/95 .\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.29 2002/12/12 17:25:53 ru Exp % .\" .\" $FreeBSD$ .Dd May 24, 1995 .Dt MOUNT 2 .Os .Sh 名称 .Nm mount , .Nm unmount .Nd ファイルシステムをマウントまたはマウント解除する .Sh ライブラリ .Lb libc .Sh 書式 .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" .Sh 解説 .Fn mount 関数は、ファイルシステムオブジェクトをシステムファイルツリーのマウントポイント .Ar dir に付けます。 引数 .Ar data はマウントされるファイルシステムオブジェクトを記述します。 引数 .Ar type は .Ar data をどのように解釈するかをカーネルに通知します (後述の .Ar type を参照)。 ファイルシステムの内容は、新しいマウントポイント .Ar dir を通して利用できるようになります。 マウントが成功すると .Ar dir にあるすべてのファイルが覆い隠された状態になり、 ファイルシステムがマウント解除されるまで利用できなくなります。 .Pp 次の .Ar flags は、ファイルシステムアクセスに影響のあるデフォルト値を抑制するように 指定できます。 .Bl -tag -width MNT_SYNCHRONOUS .It Dv MNT_RDONLY ファイルシステムを読取り専用として取り扱います。 スーパユーザでさえこれに書き込むことはできません。 このオプションなしに MNT_UPDATE を指定すると、 読取り専用ファイルシステムが読取り / 書込みにアップグレードされます。 .It Dv MNT_NOEXEC そのファイルシステムからファイルを実行できないようにします。 .It Dv MNT_NOSUID 実行するときに、ファイルについての setuid ビットまたは setgid ビットを 尊重しません。 .It Dv MNT_NOATIME ファイルアクセス時刻の更新を行いません。 .It Dv MNT_NODEV ファイルシステム上の特殊ファイルを解釈しません。 .It Dv MNT_SUIDDIR SUID ビットが設定されたディレクトリは、新しいファイルの所有者を ディレクトリと同じに設定します。 .It Dv MNT_SYNCHRONOUS ファイルシステムへの入出力はすべて同期的に行われます。 .It Dv MNT_ASYNC ファイルシステムへの入出力はすべて非同期的に行われます。 .It Dv MNT_FORCE ファイルシステムがクリーンでないように見えても、読み書き可でマウントを 強行します。 危険です。 .It Dv MNT_NOCLUSTERR クラスタ読取りを無効にします。 .It Dv MNT_NOCLUSTERW クラスタ書込みを無効にします。 .El .Pp フラグ .Dv MNT_UPDATE は、マウントコマンドがすでにマウントされたファイルシステムに 適用されていることを示します。 これによって、ファイルシステムをマウント解除および再マウントする必要なしに、 マウントフラグを変更できます。 ファイルシステムによっては、すべてのフラグの変更を許容しない場合もあります。 たとえば多くのファイルシステムが、 読み書き可から読取り専用への変更を許容しません。 .Pp vfs サブシステムは、フラグ .Dv MNT_RELOAD によってすでにマウントされているファイルシステムに 関係するデータ構造体を更新します。 .Pp .Fa type 引数でファイルシステムを指定します。 システム上で既知なファイルシステムのタイプは .Xr lsvfs 1 で得ることができます。 .Pp .Fa data は、マウントするタイプに固有の引数が入った構造体を指すポインタです。 これらの引数構造体についての形式は各ファイルシステムに ついてのマニュアルページに記載されています。 慣習によりファイルシステムのマニュアルページは、 .Xr lsvfs 1 によって返されたファイルシステム名に ``mount_'' の接頭辞を付けて 命名されます。 それゆえ、 .Nm NFS ファイルシステムは .Xr mount_nfs 8 マニュアルページに記述されています。 .Pp .Fn unmount 関数呼び出しは、ファイルシステムを指定のマウントポイント .Fa dir から対応付け解除します。 .Pp .Fa flags 引数で .Dv MNT_FORCE を指定することで、ファイルがアクティブであっても、 ファイルシステムが強制的にマウント解除または 読取り専用 (MNT_UPDATE と MNT_RDONLY も指定されている場合) に される必要があることを示します。 アクティブな特殊デバイスは機能し続けますが、 他のアクティブなファイルへのそれ以降のアクセスは、 たとえファイルシステムが後に再マウントされたとしてもエラーを引き起こします。 .Pp .Dv MNT_SUIDDIR オプションを機能させるためには、SUIDDIR オプションがカーネル内に 組み込まれていることが必要です。 詳細については .Xr mount 8 ページと .Xr chmod 2 ページを参照してください。 .Sh 戻り値 .Rv -std .Sh エラー .Fn mount 関数は、次のうちの 1 つでも起きたときには処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザではありません。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOENT .Fa dir の構成要素が存在しません。 .It Bq Er ENOTDIR .Ar name の構成要素がディレクトリでないか、または .Ar special のパスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EBUSY 別のプロセスが現時点で .Fa dir への参照を保持しています。 .It Bq Er EFAULT .Fa dir はプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp 次のエラーは、 .Em ufs ファイルシステムのマウントについて発生する可能性があります。 .Bl -tag -width Er .It Bq Er ENODEV ufs_args の構成要素 .Ar fspec が存在しません。 .It Bq Er ENOTBLK .Ar fspec はブロックデバイスではありません。 .It Bq Er ENXIO .Ar fspec のメジャーデバイス番号が範囲外です (これはハードウェアに 対応するデバイスドライバが存在しないことを示します)。 .It Bq Er EBUSY .Ar fspec は既にマウントされています。 .It Bq Er EMFILE マウントテーブル空間が枯渇しました。 .It Bq Er EINVAL ファイルシステムのスーパブロックに 不都合なマジック番号または範囲外のブロックサイズがありました。 .It Bq Er ENOMEM ファイルシステムについてのシリンダグループ情報を読み取るのに十分な メモリがありませんでした。 .It Bq Er EIO スーパブロックまたはシリンダグループの情報を読み取る間に 入出力エラーが発生しました。 .It Bq Er EFAULT .Ar fspec がプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp 次のエラーは .Em nfs ファイルシステムマウントについて起きる可能性があります: .Bl -tag -width Er .It Bq Er ETIMEDOUT .Em nfs がサーバと接触しようとして時間切れになりました。 .It Bq Er EFAULT nfs_args によって記述された情報の一部が、 プロセスに割り当てられたアドレス空間の範囲外を指しています .El .Pp .Fn unmount 関数は、次のエラーの 1 つでも起きたときには処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザではありません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EINVAL 指定されたディレクトリがマウントテーブル内にありません。 .It Bq Er EBUSY プロセスがファイルシステム上にあるファイルへの参照を保持しています。 .It Bq Er EIO キャッシュされたファイルシステム情報を書き込んでいる間に 入出力エラーが起きました。 .It Bq Er EFAULT .Fa dir がプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp .Em ufs マウントは、最大数のファイルシステムが現時点でマウントされている場合にも 処理を失敗します。 .Sh 関連項目 .Xr lsvfs 1 , .Xr mount 8 , .Xr umount 8 .Sh バグ エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。 .Sh 歴史 .Fn mount 関数と .Fn unmount 関数は .At v6 で登場しました。