OSDN Git Service

(split) LDP: draft snapshot generated from latest ja.po files.
[linuxjm/LDP_man-pages.git] / draft / man2 / mount.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (C) 1993 Rickard E. Faith <faith@cs.unc.edu>
4 .\" and Copyright (C) 1994 Andries E. Brouwer <aeb@cwi.nl>
5 .\" and Copyright (C) 2002, 2005 Michael Kerrisk <mtk.manpages@gmail.com>
6 .\"
7 .\" Permission is granted to make and distribute verbatim copies of this
8 .\" manual provided the copyright notice and this permission notice are
9 .\" preserved on all copies.
10 .\"
11 .\" Permission is granted to copy and distribute modified versions of this
12 .\" manual under the conditions for verbatim copying, provided that the
13 .\" entire resulting derived work is distributed under the terms of a
14 .\" permission notice identical to this one.
15 .\"
16 .\" Since the Linux kernel and libraries are constantly changing, this
17 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
18 .\" responsibility for errors or omissions, or for damages resulting from
19 .\" the use of the information contained herein.  The author(s) may not
20 .\" have taken the same level of care in the production of this manual,
21 .\" which is licensed free of charge, as they might when working
22 .\" professionally.
23 .\"
24 .\" Formatted or processed versions of this manual, if unaccompanied by
25 .\" the source, must acknowledge the copyright and authors of this work.
26 .\"
27 .\" Modified 1996-11-04 by Eric S. Raymond <esr@thyrsus.com>
28 .\" Modified 2001-10-13 by Michael Kerrisk <mtk.manpages@gmail.com>
29 .\"     Added note on historical behavior of MS_NOSUID
30 .\" Modified 2002-05-16 by Michael Kerrisk <mtk.manpages@gmail.com>
31 .\"     Extensive changes and additions
32 .\" Modified 2002-05-27 by aeb
33 .\" Modified 2002-06-11 by Michael Kerrisk <mtk.manpages@gmail.com>
34 .\"     Enhanced descriptions of MS_MOVE, MS_BIND, and MS_REMOUNT
35 .\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
36 .\" 2005-05-18, mtk, Added MNT_EXPIRE, plus a few other tidy-ups.
37 .\" 2008-10-06, mtk: move umount*() material into separate umount.2 page.
38 .\" 2008-10-06, mtk: Add discussion of namespaces.
39 .\"
40 .\"*******************************************************************
41 .\"
42 .\" This file was generated with po4a. Translate the source file.
43 .\"
44 .\"*******************************************************************
45 .TH MOUNT 2 2012\-01\-18 Linux "Linux Programmer's Manual"
46 .SH 名前
47 mount \- ファイルシステムをマウント/アンマウントする
48 .SH 書式
49 .nf
50 \fB#include <sys/mount.h>\fP
51 .sp
52 \fBint mount(const char *\fP\fIsource\fP\fB, const char *\fP\fItarget\fP\fB,\fP
53 \fB          const char *\fP\fIfilesystemtype\fP\fB, unsigned long \fP\fImountflags\fP\fB,\fP
54 \fB          const void *\fP\fIdata\fP\fB);\fP
55 .fi
56 .SH 説明
57 \fBmount\fP()  は \fIsource\fP で指定されたファイルシステム (デバイス名であることが多いが、 ディレクトリ名やダミーの場合もある) を
58 \fItarget\fP で指定されたディレクトリに結びつける。
59
60 ファイルシステムのマウントを行うには、 適切な権限 (Linux では \fBCAP_SYS_ADMIN\fP ケーパビリティ) が必要である。
61
62 .\" Multiple mounts on same mount point: since 2.3.99pre7.
63 Linux 2.4 以降、ひとつのファイルシステムを複数のマウントポイントに 結びつけることができ、同じマウントポイントに複数のマウントをスタック
64 させることもできる。
65
66 引き数 \fIfilesystemtype\fP としてカーネルが対応している値は、 \fI/proc/filesystems\fP で参照できる (例えば
67 "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", "msdos", "proc", "nfs",
68 "iso9660" 等)。 適切なモジュールが読み込まれると、さらに別の値が利用可能になるかもしれない。
69
70 .\" FIXME 2.6.15 added flags for "shared subtree" functionality:
71 .\" MS_UNBINDABLE, MS_PRIVATE, MS_SHARED, MS_SLAVE
72 .\" These need to be documented on this page.
73 .\" See:
74 .\" Documentation/filesystems/sharedsubtree.txt
75 .\"
76 .\" http://lwn.net/Articles/159077/
77 .\"
78 .\" http://myweb.sudhaa.com:2022/~ram/sharedsubtree/paper/sharedsubtree.1.pdf
79 .\" Shared-Subtree Concept, Implementation, and Applications in Linux
80 .\" Al Viro viro@ftp.linux.org.uk
81 .\" Ram Pai linuxram@us.ibm.com
82 .\"
83 .\" http://foss.in/2005/slides/sharedsubtree1.pdf
84 .\" Shared Subtree Concept and Implementation in the Linux Kernel
85 .\" Ram Pai
86 .\"
87 .\" 2.6.25 Added MS_I_VERSION, which needs to be documented.
88 .\"
89 引き数 \fImountflags\fP は、先頭 16 ビットはマジックナンバー 0xC0ED (\fBMS_MGC_VAL\fP) で、 残りの 16
90 ビットがマウントフラグである。 マジックナンバーは、カーネルバージョン 2.4 より前では必須であったが、 現在は必要なく、指定されても無視される。
91 マウントフラグは libc4 と libc5 では \fI<linux/fs.h>\fP 、 glibc2 では
92 \fI<sys/mount.h>\fP で定義されており、以下の通りである:
93 .TP 
94 \fBMS_BIND\fP (Linux 2.4 以降)
95 .\" since 2.4.0-test9
96 .\" with the exception of the "hidden" MS_REC mountflags bit
97 バインドマウントを行う。これはファイルやディレクトリの部分木を ファイルシス
98 テム内部の別の場所で見えるようにするものである。 バインドマウントを使うと、
99 ファイルシステムをまたいで \fBchroot\fP(2) jail を構成することが可能になる。
100 引き数 \fIfilesystemtype\fP と \fIdata\fP は無視される。 Linux 2.6.26 より前では
101 \fImountflags\fP も無視されていた (バインドマウントでは、マウントポイントとなる
102 ファイルシステムと同じマウントオプションが使用される)。
103 .TP 
104 \fBMS_DIRSYNC\fP (Linux 2.5.19 以降)
105 このファイルシステムへのディレクトリ変更を同期的に行う。 (この特性は個々のディレクトリ、または \fBchattr\fP(1)
106 を使った部分木毎に設定できる。)
107 .TP 
108 \fBMS_MANDLOCK\fP
109 .\" FIXME Say more about MS_MOVE
110 このファイルシステムのファイルに対して強制ロックを認める。 (強制ロックを有効にするには、 \fBfcntl\fP(2)
111 で述べられている方法でファイル単位で許可をしなければならない)
112 .TP 
113 \fBMS_MOVE\fP
114 部分木を移動する。 \fIsource\fP にはすでに存在するマウントポイントを指定し、 \fItarget\fP には新しい場所を指定する。
115 移動はアトミックである。 操作の実行中、部分ツリーがアンマウントされることはない。 \fIfilesystemtype\fP, \fImountflags\fP,
116 \fIdata\fP 引き数は無視される。
117 .TP 
118 \fBMS_NOATIME\fP
119 このファイルシステムの (全ての種類の) ファイルのアクセス時刻を更新しない。
120 .TP 
121 \fBMS_NODEV\fP
122 このファイルシステムのデバイス (スペシャルファイル) へのアクセスを許可しない。
123 .TP 
124 \fBMS_NODIRATIME\fP
125 このファイルシステムのディレクトリのアクセス時刻を更新しない。 このフラグは \fBMS_NOATIME\fP
126 で提供される機能のサブセットを提供する。つまり、 \fBMS_NOATIME\fP では \fBMS_NODIRATIME\fP が暗黙のうち設定される。
127 .TP 
128 \fBMS_NOEXEC\fP
129 .\" (Possibly useful for a file system that contains non-Linux executables.
130 .\" Often used as a security feature, e.g., to make sure that restricted
131 .\" users cannot execute files uploaded using ftp or so.)
132 このファイルシステムにあるプログラムの実行を許可しない。
133 .TP 
134 \fBMS_NOSUID\fP
135 .\" (This is a security feature to prevent users executing set-user-ID and
136 .\" set-group-ID programs from removable disk devices.)
137 このファイルシステムのプログラムを実行するときに、 set\-user\-ID ビットと set\-group\-ID ビットを無視する。
138 .TP 
139 \fBMS_RDONLY\fP
140 .\"
141 .\" FIXME Document MS_REC, available since 2.4.11.
142 .\" This flag has meaning in conjunction with MS_BIND and
143 .\" also with the shared subtree flags.
144 ファイルシステムを読み込み専用でマウントする。
145 .TP 
146 \fBMS_RELATIME\fP (Linux 2.6.20 以降)
147 .\" Matthew Garrett notes in the patch that added this behavior
148 .\" that this lets utilities such as tmpreaper (which deletes
149 .\" files based on last acces time) work correctly.
150 このファイルシステム上のファイルがアクセスされた際、 そのファイルの最終アクセス時刻 (atime) の現在値が 最終修正時刻 (mtime)
151 や最終状態変更時刻 (ctime) と 等しいか小さい場合にのみ、atime を更新する。 このオプションは、 \fBmutt\fP(1)
152 のように、最後の内容修正以降にファイルがいつ読み出されたかを知る 必要があるプログラムで有用である。 Linux 2.6.30 以降では、
153 \fBMS_NOATIME\fP が指定されていない場合には、このフラグの動作が カーネルのデフォルト動作となっており、 Linux 2.6.30
154 より前の動作をさせるためには \fBMS_STRICTATIME\fP フラグを指定する必要がある。 これに加えて、Linux 2.6.30 以降では、
155 ファイルの最終アクセス時刻が 1 日以上前の場合、 ファイルの最終アクセス時刻は常に更新される。
156 .TP 
157 \fBMS_REMOUNT\fP
158 すでに存在するマウントを再マウントする。 これにより、すでに存在するマウントの \fImountflags\fP と \fIdata\fP
159 を、一度アンマウントしてから再マウントするという作業をせずに 変更できる。 \fIsource\fP と \fItarget\fP は最初の \fBmount\fP()
160 呼び出しと同じ値を指定する必要がある。 \fIfilesystemtype\fP は無視される。
161
162 \fImountflags\fP のうち \fBMS_RDONLY\fP, \fBMS_SYNCHRONOUS\fP, \fBMS_MANDLOCK\fP は変更可能である。
163 カーネル 2.6.16 より前では、 \fBMS_NOATIME\fP, \fBMS_NODIRATIME\fP も変更可能であった。 カーネル 2.4.10
164 より前では、上記に加えて、 \fBMS_NOSUID\fP, \fBMS_NODEV\fP, \fBMS_NOEXEC\fP も変更可能であった。
165 .TP 
166 \fBMS_SILENT\fP (Linux 2.6.17 以降)
167 カーネルのログ内のある種の (\fIprintk\fP())  警告メッセージの表示を抑制する。 このフラグは、名前が不適切で廃止された
168 \fBMS_VERBOSE\fP フラグ (Linux 2.4.12 以降で利用可能) を置き換えるもので、同じ意味を持つ。
169 .TP 
170 \fBMS_STRICTATIME\fP (Linux 2.6.30 以降)
171 このファイルシステムがアクセスされた際に最終アクセス時刻 (atime)  を常に更新する (Linux 2.6.30
172 より前では、これがデフォルトの動作 であった)。 このフラグを指定することで、 \fBMS_NOATIME\fP と \fBMS_RELATIME\fP
173 の両フラグを設定した際の影響を上書きすることができる。
174 .TP 
175 \fBMS_SYNCHRONOUS\fP
176 ファイルシステムに対して同期的に書き込みを行う。 (このファイルシステムの全てのオープンされたファイルに対して、 \fBopen\fP(2)  のフラグに
177 \fBO_SYNC\fP を指定したような動作となる)
178 .PP
179 Linux 2.4 以降では、 \fBMS_NODEV\fP, \fBMS_NOEXEC\fP, \fBMS_NOSUID\fP はマウントポイント単位で指定できる。
180 カーネル 2.6.16 以降では、 \fBMS_NOATIME\fP と \fBMS_NODIRATIME\fP もマウントポイント単位で指定できる。 また、
181 \fBMS_RELATIME\fP フラグもマウントポイント単位で設定できる。
182 .PP
183 引き数 \fIdata\fP がどのように解釈されるかは、ファイルシステムによって異なる。 たいていは、指定されたファイルシステムで利用可能なオプションが
184 コンマ区切りで並べられた文字列である。 各ファイルシステムに対して指定可能なオプションの詳細については \fBmount\fP(8)  を参照のこと。
185 .SH 返り値
186 成功した場合、0 が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
187 .SH エラー
188 以下に示すエラーは、ファイルシステムに依存しないものである。 それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、
189 独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。
190 .TP 
191 \fBEACCES\fP
192 .\" mtk: Probably: write permission is required for MS_BIND, with
193 .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required.
194 パスに含まれるディレクトリに検索 (実行) 許可がない (\fBpath_resolution\fP(7)  も参照)。 または、 \fBMS_RONLY\fP
195 フラグを指定せずに読み込み専用のファイルシステムを マウントしようとした。 または、ブロックデバイス \fIsource\fP が \fBMS_NODEV\fP
196 オプションでマウントされたファイルシステム上にある。
197 .TP 
198 \fBEBUSY\fP
199 \fIsource\fP は既にマウントされている。 または、書き込み用にオープンされたファイルがあり、 読み込み専用で再マウントすることができない。
200 または、 \fItarget\fP が使用中 (busy) のため、 \fItarget\fP にマウントできない。 \fItarget\fP
201 が使用中の例としては、あるスレッドの動作ディレクトリ (working directory) であるとか、別のデバイスのマウントポイントであるとか、
202 オープンされたファイルが存在する、などがある。
203 .TP 
204 \fBEFAULT\fP
205 場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。
206 .TP 
207 \fBEINVAL\fP
208 \fIsource\fP に不正なスーパーブロックがある。 または、 \fIsource\fP が \fItarget\fP にマウントされていないのに、再マウント
209 (\fBMS_REMOUNT\fP)  が要求された。 または、 \fIsource\fP がマウントポイントではないか、\(aq/\(aq なのに、移動
210 (\fBMS_MOVE\fP)  が要求された。
211 .TP 
212 \fBELOOP\fP
213 パス名の解決中に登場したリンクが多すぎた。 または、 \fItarget\fP が \fIsource\fP の子孫なのに移動が要求された。
214 .TP 
215 \fBEMFILE\fP
216 (ブロックデバイスが必要でない場合)  ダミーデバイスのテーブルが一杯になった。
217 .TP 
218 \fBENAMETOOLONG\fP
219 パス名の長さが \fBMAXPATHLEN\fP より長かった。
220 .TP 
221 \fBENODEV\fP
222 \fIfilesystemtype\fP がカーネル中で定義 (config) されていない。
223 .TP 
224 \fBENOENT\fP
225 パス名が空である。もしくは指定されたパスが存在しない。
226 .TP 
227 \fBENOMEM\fP
228 カーネルがファイル名やデータをコピーするための空きページを確保できなかった。
229 .TP 
230 \fBENOTBLK\fP
231 (ブロックデバイスが必要だが)  \fIsource\fP がブロックデバイスではない。
232 .TP 
233 \fBENOTDIR\fP
234 \fItarget\fP か、 \fIsource\fP のプレフィックスがディレクトリではない。
235 .TP 
236 \fBENXIO\fP
237 ブロックデバイス \fIsource\fP のメジャー番号が範囲外である。
238 .TP 
239 \fBEPERM\fP
240 呼び出し元が必要な権限を持っていない。
241 .SH バージョン
242 .\" FIXME: Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE,
243 .\"  MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12.
244 \fBMS_DIRSYNC\fP, \fBMS_MOVE\fP, \fBMS_REC\fP, \fBMS_RELATIME\fP, \fBMS_STRICTATIME\fP の定義が
245 glibc のヘッダに追加されたのは バージョン 2.12 においてのみである。
246 .SH 準拠
247 この関数は Linux 固有の関数であり、移植を考慮したプログラムでは 使用すべきでない。
248 .SH 注意
249 元の \fBMS_SYNC\fP フラグは、別の \fBMS_SYNC\fP が \fI<mman.h>\fP に追加されたので 1.1.69 から
250 \fBMS_SYNCHRONOUS\fP に名前が変わった。
251 .LP
252 .\" The change is in patch-2.4.0-prerelease.
253 Linux 2.4 より前のバージョンでは、 \fBMS_NOSUID\fP オプション付きでマウントされたファイルシステム上の set\-UID や
254 set\-GID のプログラムを実行しようとすると、 \fBEPERM\fP エラーとなった。 Linux 2.4 以降では、このような場合は set\-UID
255 ビットや set\-GID ビットが 無視されるだけである。
256 .SS プロセス単位の名前空間
257 カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 (mount namespace)
258 が提供されている。マウント名前空間とは、 あるプロセスに見えているファイルシステムのマウントの集合である。
259 マウントポイントの名前空間は複数のプロセスで共有することができ、 普通は共有されている。 一つのプロセスによる名前空間の変更
260 (すなわち、マウントやアンマウント) は 同じ名前空間を共有する他の全てのプロセスにも見える。 (2.4.19 より前の Linux
261 は、一つの名前空間がシステム上の全プロセスで 共有される状況とみなすことができる。)
262
263 \fBfork\fP(2)  経由で作成された子プロセスは親プロセスのマウント名前空間を共有する。 \fBexecve\fP(2)
264 の前後でマウント名前空間は保持される。
265
266 プロセスは自分用 (private) のマウント名前空間を持つことができる。 自分用の名前空間を持つことができるのは、 そのプロセスが
267 \fBclone\fP(2)  \fBCLONE_NEWNS\fP フラグを使って作成された場合と、 そのプロセスが \fBCLONE_NEWNS\fP フラグ付きで
268 \fBunshare\fP(2)  を呼び出した場合である。 前者の場合、作成されたプロセスの新しい名前空間は \fBclone\fP(2)
269 を呼び出したプロセスの名前空間の「コピー」で初期化される。 後者の場合、 \fBunshare\fP(2)
270 を呼び出すと、呼び出し元のプロセスのマウント名前空間が、 それまでは他のプロセスと共有していた名前空間の自分用のコピーとなる。
271 これにより、呼び出し元のプロセスがこれ以後に行うマウント/アンマウントは 他のプロセスから見えなくなる (ただし、呼び出し元のプロセスが
272 \fBunshare\fP(2)  の呼び出し以降に作成した子プロセスには見える)。
273 また、その逆の、他のプロセスが行ったマウント/アンマウントも呼び出し元のプロセスには 見えなくなる。
274
275 Linux 独自のファイル \fI/proc/PID/mounts\fP では、指定された ID を持つプロセスのマウント名前空間における
276 マウントポイントのリストが公開されている。詳細は \fBproc\fP(5)  を参照のこと。
277 .SH 関連項目
278 \fBumount\fP(2), \fBpath_resolution\fP(7), \fBmount\fP(8), \fBumount\fP(8)