OSDN Git Service

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