日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
MOUNT(2) FreeBSD システムコールマニュアル MOUNT(2)
名称
mount, nmount, unmount -- ファイルシステムをマウントまたはマウント解除す
る
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#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);
#include <sys/uio.h>
int
nmount(struct iovec *iov, u_int niov, int flags);
解説
mount() システムコールは、ファイルシステムオブジェクトをポイント dir でシ
ステムファイルのツリーに接ぎ木します。引数 data は、マウントされるファイ
ルシステムオブジェクトを表現しています。引数 type は、どのように data を
解釈するかをカーネルに伝えます (下記の type を参照)。ファイルシステムの内
容は、新しいマウントポイント dir を通して利用可能となります。成功したマウ
ント時の dir にあるあらゆるファイルは、いわば隠されて、ファイルシステムが
マウント解除されるまで、利用できません。
nmount() システムコールは、マウントオプション (ファイルシステムタイプ名、
マウントするデバイス、マウントポイント名など) が niov 要素を含んでいる配
列 iov の名前と値ペアの配列として渡されることを除いて、mount() と同様に振
る舞います。次のオプションは、すべてのファイルシステムによって要求されま
す:
fstype ファイルシステムのタイプ名 (例えば、``procfs'')
fspath マウントポイントのパス名 (例えば、``/proc'')
ファイルシステムタイプに依存して、他のオプションが、認識されるか、または
要求されます。例えば、ほとんどのディスクベースのファイルシステムは、上記
にリストされたオプションに加えて特殊デバイスのパス名を含んでいる ``from''
オプションを必要とします。
デフォルトで、スーパユーザだけが、mount() システムコールを呼び出します。
この制限は、vfs.usermount sysctl(8) 変数を 0 でない値に設定することによっ
て解除することができます。詳細については、「バグ」セクションを参照してく
ださい。
次の flags は、ファイルシステムのアクセスに影響するデフォルトのセマンティ
クスを抑制するために指定されます。
MNT_RDONLY ファイルシステムは、読み込み専用として扱われるべきです。
スーパユーザでさえ、それに書き込むことはできません。この
オプションなしで MNT_UPDATE を指定することは、読み込み専
用のファイルシステムを読み込み/書き込みにアップグレード
します。
MNT_NOEXEC ファイルをそのファイルシステムから実行することができませ
ん。
MNT_NOSUID それらを実行しているとき、ファイルの setuid または set
gid ビットを尊重しません。このフラグは、呼び出し側がスー
パユーザではないとき、自動的に設定されます。
MNT_NOATIME ファイルのアクセス時刻の更新を無効にします。
MNT_SNAPSHOT ファイルシステムのスナップショットを作成します。これは、
現在、UFS2 ファイルシステムでのみサポートされます、詳細
については、mksnap_ffs(8) を参照してください。
MNT_SUIDDIR SUID ビットの設定があるディレクトリは、新しいファイルを
それら自体の所有者に chown (所有者の変更) します。このフ
ラグは、あらゆる効果を持たせるために、カーネルにコンパイ
ルされた SUIDDIR オプションを必要とします。詳細について
は、mount(8) と chmod(2) マニュアルページを参照してくだ
さい。
MNT_SYNCHRONOUS ファイルシステムへのすべての I/O は、同期的に行なわれる
べきです。
MNT_ASYNC ファイルシステムへのすべての I/O は、非同期的に行なわれ
るべきです。
MNT_FORCE たとえファイルシステムがクリーンでないとおもわれても、読
み込み書き込みマウントを強制します。危険。MNT_UPDATE と
MNT_RDONLY とともに、たとえいくつかのファイルが書き込み
のためにオープンされても、ファイルシステムが読み込み専用
のマウントを強制的にダウングレードされることを指定しま
す。
MNT_NOCLUSTERR 読み込みクラスタリングを無効にします。
MNT_NOCLUSTERW 書き込みクラスタリングを無効にします。
MNT_NOCOVER 別のマウントポイントのルートを越えてマウントしません。
MNT_EMPTYDIR マウントポイントのディレクトリのための空のディレクトリを
必要とします。
フラグ MNT_UPDATE は、マウントコマンドが、すでにマウントされてたファイル
システムに適用されていることを示します。これによって、マウントフラグは、
ファイルシステムがアンマウントされて、再びマウントされることを必要とせず
に変更されることができます。いくつかのファイルシステムは、すべてのフラグ
が変更されることを許可されません。例えば、多くのファイルシステムは、読み
込み書き込みから読み込み専用に変更することを許可されません。
フラグ MNT_RELOAD によって、vfs サブシステムは、付随しているそのデータ構
造をすでに指定されたマウントされたファイルシステムに更新します。
type 引数は、ファイルシステムを指定します。システムに知られているファイル
システムのタイプは、lsvfs(1) で取得することができます。
data 引数は、マウントするタイプに特有の引数を含んでいる構造体へのポインタ
です。これらの引数の構造体のための形式は、ファイルシステムごとのマニュア
ルページで説明されています。慣例により、ファイルシステムのマニュアルペー
ジは、lsvfs(1) によって返されるようにファイルシステムの名前に ``mount_''
を前に付けることによって指定されます。したがって、NFS ファイルシステム
は、mount_nfs(8) マニュアルページによって説明されています。UFS と UFS2 と
して知られている、デフォルトのファイルシステムのためのマニュアルページが
存在しないことに注意されるべきです。
unmount() システムコールは、指定されたマウントポイント dir からファイルシ
ステムを分離します。
flags 引数は、たとえファイルがまだアクティブでも、ファイルシステムが強制
的にアンマウントされるべきであることを指定するために MNT_FORCE を含みま
す。アクティブな特殊デバイスは、動作し続けますが、あらゆる他のアクティブ
なファイルへのあらゆるさらなるアクセスは、たとえファイルシステムが後で再
マウントされても、エラーの結果となります。
MNT_BYFSID フラグが指定されるなら、dir は、代わりに、``FSID:val0:val1''
としてエンコードされたファイルシステム ID であるべきです、ここで、val0 と
val1 は、10 進数の fsid_t val[] 配列の内容です。指定されたファイルシステ
ム ID があるファイルシステムは、アンマウントされます。
戻り値
成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、
グローバル変数 errno にエラーを示す値が設定されます。
エラー
mount() と nmount() システムコールは、次の 1 つが起こるときに失敗します:
[EPERM] 呼び出し側が、スーパユーザでも dir の所有者でもありま
せん。
[ENAMETOOLONG] パス名の構成要素が 255 文字を越えているか、または、全
体のパス名が 1023 文字を越えました。
[ELOOP] パス名を変換するときに検出されたシンボリックリンクが多
すぎます。
[ENOENT] dir の構成要素が、存在しません。
[ENOTDIR] name の構成要素が、ディレクトリではないか、または、
special のパス接頭辞が、ディレクトリではありません。
[EBUSY] 別のプロセスが、現在 dir への参照を保持しています。
[EBUSY] MNT_NOCOVER オプションが、与えられ、要求されたマウント
ポイントが、すでに別のマウントポイントのルートです。
[EFAULT] dir 引数が、プロセスの割り付けられたアドレス空間の外側
を指しています。
次のエラーが、ufs ファイルシステムのマウントのために起こるかもしれません:
[ENODEV] ufs_args fspec の構成要素が、存在しません。
[ENOTBLK] fspec 引数が、ブロックデバイスではありません。
[ENOTEMPTY] MNT_EMPTYDIR オプションが指定され、要求されたマウント
ポイントが、空のディレクトリではありません。
[ENXIO] fspec のメジャーデバイス番号が、範囲外です (これは、関
連したハードウェアのためにデバイスドライバが存在しない
ことを示します)。
[EBUSY] fspec が、すでにマウントされています。
[EMFILE] マウントテーブルの空間が残っていません。
[EINVAL] ファイルシステムのためのスーパブロックに、不正なマジッ
ク番号があるか、またはブロックサイズの範囲外です。
[EINTEGRITY] ファイルシステムのためのスーパブロックが、ひどいチェッ
クのハッシュがあります。チェックのハッシュは、通常、
fsck(8) を実行することによって訂正することができます。
[ENOMEM] ファイルシステムのためのシリンダグループ情報を読み込む
ための十分なメモリが、ありませんでした。
[EIO] I/O エラーが、スーパブロックまたはシリンダグループ情報
を読み込む間に起こりました。
[EFAULT] fspec 引数が、プロセスの割り付けられたアドレス空間の外
側を指しています。
[EIO] special からデータを読み込む間に I/O エラーが起こりま
した。
[EINTEGRITY] 読み込み間に破損したデータを検出された special のため
の外部記憶装置。
次のエラーが、nfs ファイルシステムのマウントのために起こるかもしれません:
[ETIMEDOUT] nfs が、サーバに接続しようとしてタイムアウトしました。
[EFAULT] nfs_args によって記述された情報のいくらかの部分が、プ
ロセスの割り付けられたアドレス空間の外側を指していま
す。
unmount() システムコールは、次のエラーの 1 つで失敗します:
[EPERM] 呼び出し側が、スーパユーザでも対応している mount() 呼
び出しを発行したユーザでもありません。
[ENAMETOOLONG] パス名の長さが、1023 文字を越えていました。
[EINVAL] 要求されたディレクトリが、マウントテーブルにありませ
ん。
[ENOENT] MNT_BYFSID を使用して指定されたファイルシステム ID
が、マウントテーブルに見つけられませんでした。
[EINVAL] MNT_BYFSID を使用して指定されたファイルシステム ID
が、デコードできませんでした。
[EINVAL] 指定されたファイルシステムが、ルートファイルシステムで
す。
[EBUSY] プロセスが、ファイルシステムに位置するファイルへの参照
を保持しています。
[EIO] I/O エラーが、キャッシュされたファイルシステム情報を書
き込む間に起こりました。
[EFAULT] dir 引数が、プロセスの割り付けられたアドレス空間の外側
を指しています。
関連項目
lsvfs(1), mksnap_ffs(8), mount(8), umount(8)
歴史
mount() と unmount() 関数は、Version 1 AT&T UNIX で登場しました。nmount()
システムコールは、FreeBSD 5.0 ではじめて登場しました。
バグ
エラーコードのいくつかは、より明らかなメッセージに変換する必要がありま
す。
例えば、vfs.usermount を有効することによって、任意のメディアをマウントす
る信頼できないユーザを許可することは、安全と見なされるべきではありませ
ん。FreeBSD のほとんどのファイルシステムは、悪意のあるデバイスに対して保
護手段を構築しませんでした。
FreeBSD 13.2 March 30, 2020 FreeBSD 13.2