OSDN Git Service

(split) LDP: release pages (catch up to 3.41).
[linuxjm/LDP_man-pages.git] / release / 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\-05\-10 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 .\" (as defined in \fI<linux/fs.h>\fP for libc4 and libc5
71 .\" and in \fI<sys/mount.h>\fP for glibc2)
72 .\" FIXME 2.6.15 added flags for "shared subtree" functionality:
73 .\" MS_UNBINDABLE, MS_PRIVATE, MS_SHARED, MS_SLAVE
74 .\" These need to be documented on this page.
75 .\" See:
76 .\" Documentation/filesystems/sharedsubtree.txt
77 .\"
78 .\" http://lwn.net/Articles/159077/
79 .\"
80 .\" http://myweb.sudhaa.com:2022/~ram/sharedsubtree/paper/sharedsubtree.1.pdf
81 .\" Shared-Subtree Concept, Implementation, and Applications in Linux
82 .\" Al Viro viro@ftp.linux.org.uk
83 .\" Ram Pai linuxram@us.ibm.com
84 .\"
85 .\" http://foss.in/2005/slides/sharedsubtree1.pdf
86 .\" Shared Subtree Concept and Implementation in the Linux Kernel
87 .\" Ram Pai
88 .\"
89 .\" 2.6.25 Added MS_I_VERSION, which needs to be documented.
90 .\"
91 引き数 \fImountflags\fP の上位 16 ビットには、マジックナンバー 0xC0ED
92 (\fBMS_MGC_VAL\fP) を指定することができる (マジックナンバーは、
93 カーネルバージョン 2.4 より前では必須であったが、
94 現在は必要なく、指定されても無視される)。
95 \fImountflags\fP の下位 16 ビットにマウントフラグを指定する。
96 .TP 
97 \fBMS_BIND\fP (Linux 2.4 以降)
98 .\" since 2.4.0-test9
99 .\" with the exception of the "hidden" MS_REC mountflags bit
100 バインドマウントを行う。これはファイルやディレクトリの部分木を ファイルシス
101 テム内部の別の場所で見えるようにするものである。 バインドマウントを使うと、
102 ファイルシステムをまたいで \fBchroot\fP(2) jail を構成することが可能になる。
103 引き数 \fIfilesystemtype\fP と \fIdata\fP は無視される。 Linux 2.6.26 より前では
104 \fImountflags\fP も無視されていた (バインドマウントでは、マウントポイントとなる
105 ファイルシステムと同じマウントオプションが使用される)。
106 .TP 
107 \fBMS_DIRSYNC\fP (Linux 2.5.19 以降)
108 このファイルシステムへのディレクトリ変更を同期的に行う。 (この特性は個々のディレクトリ、または \fBchattr\fP(1)
109 を使った部分木毎に設定できる。)
110 .TP 
111 \fBMS_MANDLOCK\fP
112 .\" FIXME Say more about MS_MOVE
113 このファイルシステムのファイルに対して強制ロックを認める。 (強制ロックを有効にするには、 \fBfcntl\fP(2)
114 で述べられている方法でファイル単位で許可をしなければならない)
115 .TP 
116 \fBMS_MOVE\fP
117 部分木を移動する。 \fIsource\fP にはすでに存在するマウントポイントを指定し、 \fItarget\fP には新しい場所を指定する。
118 移動はアトミックである。 操作の実行中、部分ツリーがアンマウントされることはない。 \fIfilesystemtype\fP, \fImountflags\fP,
119 \fIdata\fP 引き数は無視される。
120 .TP 
121 \fBMS_NOATIME\fP
122 このファイルシステムの (全ての種類の) ファイルのアクセス時刻を更新しない。
123 .TP 
124 \fBMS_NODEV\fP
125 このファイルシステムのデバイス (スペシャルファイル) へのアクセスを許可しない。
126 .TP 
127 \fBMS_NODIRATIME\fP
128 このファイルシステムのディレクトリのアクセス時刻を更新しない。 このフラグは \fBMS_NOATIME\fP
129 で提供される機能のサブセットを提供する。つまり、 \fBMS_NOATIME\fP では \fBMS_NODIRATIME\fP が暗黙のうち設定される。
130 .TP 
131 \fBMS_NOEXEC\fP
132 .\" (Possibly useful for a file system that contains non-Linux executables.
133 .\" Often used as a security feature, e.g., to make sure that restricted
134 .\" users cannot execute files uploaded using ftp or so.)
135 このファイルシステムにあるプログラムの実行を許可しない。
136 .TP 
137 \fBMS_NOSUID\fP
138 .\" (This is a security feature to prevent users executing set-user-ID and
139 .\" set-group-ID programs from removable disk devices.)
140 このファイルシステムのプログラムを実行するときに、 set\-user\-ID ビットと set\-group\-ID ビットを無視する。
141 .TP 
142 \fBMS_RDONLY\fP
143 .\"
144 .\" FIXME Document MS_REC, available since 2.4.11.
145 .\" This flag has meaning in conjunction with MS_BIND and
146 .\" also with the shared subtree flags.
147 ファイルシステムを読み込み専用でマウントする。
148 .TP 
149 \fBMS_RELATIME\fP (Linux 2.6.20 以降)
150 .\" Matthew Garrett notes in the patch that added this behavior
151 .\" that this lets utilities such as tmpreaper (which deletes
152 .\" files based on last acces time) work correctly.
153 このファイルシステム上のファイルがアクセスされた際、 そのファイルの最終アクセス時刻 (atime) の現在値が 最終修正時刻 (mtime)
154 や最終状態変更時刻 (ctime) と 等しいか小さい場合にのみ、atime を更新する。 このオプションは、 \fBmutt\fP(1)
155 のように、最後の内容修正以降にファイルがいつ読み出されたかを知る 必要があるプログラムで有用である。 Linux 2.6.30 以降では、
156 \fBMS_NOATIME\fP が指定されていない場合には、このフラグの動作が カーネルのデフォルト動作となっており、 Linux 2.6.30
157 より前の動作をさせるためには \fBMS_STRICTATIME\fP フラグを指定する必要がある。 これに加えて、Linux 2.6.30 以降では、
158 ファイルの最終アクセス時刻が 1 日以上前の場合、 ファイルの最終アクセス時刻は常に更新される。
159 .TP 
160 \fBMS_REMOUNT\fP
161 すでに存在するマウントを再マウントする。 これにより、すでに存在するマウントの \fImountflags\fP と \fIdata\fP
162 を、一度アンマウントしてから再マウントするという作業をせずに 変更できる。 \fIsource\fP と \fItarget\fP は最初の \fBmount\fP()
163 呼び出しと同じ値を指定する必要がある。 \fIfilesystemtype\fP は無視される。
164
165 \fImountflags\fP のうち \fBMS_RDONLY\fP, \fBMS_SYNCHRONOUS\fP, \fBMS_MANDLOCK\fP は変更可能である。
166 カーネル 2.6.16 より前では、 \fBMS_NOATIME\fP, \fBMS_NODIRATIME\fP も変更可能であった。 カーネル 2.4.10
167 より前では、上記に加えて、 \fBMS_NOSUID\fP, \fBMS_NODEV\fP, \fBMS_NOEXEC\fP も変更可能であった。
168 .TP 
169 \fBMS_SILENT\fP (Linux 2.6.17 以降)
170 カーネルのログ内のある種の (\fIprintk\fP())  警告メッセージの表示を抑制する。 このフラグは、名前が不適切で廃止された
171 \fBMS_VERBOSE\fP フラグ (Linux 2.4.12 以降で利用可能) を置き換えるもので、同じ意味を持つ。
172 .TP 
173 \fBMS_STRICTATIME\fP (Linux 2.6.30 以降)
174 このファイルシステムがアクセスされた際に最終アクセス時刻 (atime)  を常に更新する (Linux 2.6.30
175 より前では、これがデフォルトの動作 であった)。 このフラグを指定することで、 \fBMS_NOATIME\fP と \fBMS_RELATIME\fP
176 の両フラグを設定した際の影響を上書きすることができる。
177 .TP 
178 \fBMS_SYNCHRONOUS\fP
179 ファイルシステムに対して同期的に書き込みを行う。 (このファイルシステムの全てのオープンされたファイルに対して、 \fBopen\fP(2)  のフラグに
180 \fBO_SYNC\fP を指定したような動作となる)
181 .PP
182 Linux 2.4 以降では、 \fBMS_NODEV\fP, \fBMS_NOEXEC\fP, \fBMS_NOSUID\fP はマウントポイント単位で指定できる。
183 カーネル 2.6.16 以降では、 \fBMS_NOATIME\fP と \fBMS_NODIRATIME\fP もマウントポイント単位で指定できる。 また、
184 \fBMS_RELATIME\fP フラグもマウントポイント単位で設定できる。
185 .PP
186 引き数 \fIdata\fP がどのように解釈されるかは、ファイルシステムによって異なる。 たいていは、指定されたファイルシステムで利用可能なオプションが
187 コンマ区切りで並べられた文字列である。 各ファイルシステムに対して指定可能なオプションの詳細については \fBmount\fP(8)  を参照のこと。
188 .SH 返り値
189 成功した場合、0 が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
190 .SH エラー
191 以下に示すエラーは、ファイルシステムに依存しないものである。 それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、
192 独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。
193 .TP 
194 \fBEACCES\fP
195 .\" mtk: Probably: write permission is required for MS_BIND, with
196 .\" the error EPERM if not present; CAP_DAC_OVERRIDE is required.
197 パスに含まれるディレクトリに検索 (実行) 許可がない (\fBpath_resolution\fP(7)  も参照)。 または、 \fBMS_RONLY\fP
198 フラグを指定せずに読み込み専用のファイルシステムを マウントしようとした。 または、ブロックデバイス \fIsource\fP が \fBMS_NODEV\fP
199 オプションでマウントされたファイルシステム上にある。
200 .TP 
201 \fBEBUSY\fP
202 \fIsource\fP は既にマウントされている。 または、書き込み用にオープンされたファイルがあり、 読み込み専用で再マウントすることができない。
203 または、 \fItarget\fP が使用中 (busy) のため、 \fItarget\fP にマウントできない。 \fItarget\fP
204 が使用中の例としては、あるスレッドの動作ディレクトリ (working directory) であるとか、別のデバイスのマウントポイントであるとか、
205 オープンされたファイルが存在する、などがある。
206 .TP 
207 \fBEFAULT\fP
208 場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。
209 .TP 
210 \fBEINVAL\fP
211 \fIsource\fP に不正なスーパーブロックがある。 または、 \fIsource\fP が \fItarget\fP にマウントされていないのに、再マウント
212 (\fBMS_REMOUNT\fP)  が要求された。 または、 \fIsource\fP がマウントポイントではないか、\(aq/\(aq なのに、移動
213 (\fBMS_MOVE\fP)  が要求された。
214 .TP 
215 \fBELOOP\fP
216 パス名の解決中に登場したリンクが多すぎた。 または、 \fItarget\fP が \fIsource\fP の子孫なのに移動が要求された。
217 .TP 
218 \fBEMFILE\fP
219 (ブロックデバイスが必要でない場合)  ダミーデバイスのテーブルが一杯になった。
220 .TP 
221 \fBENAMETOOLONG\fP
222 パス名の長さが \fBMAXPATHLEN\fP より長かった。
223 .TP 
224 \fBENODEV\fP
225 \fIfilesystemtype\fP がカーネル中で定義 (config) されていない。
226 .TP 
227 \fBENOENT\fP
228 パス名が空である。もしくは指定されたパスが存在しない。
229 .TP 
230 \fBENOMEM\fP
231 カーネルがファイル名やデータをコピーするための空きページを確保できなかった。
232 .TP 
233 \fBENOTBLK\fP
234 (ブロックデバイスが必要だが)  \fIsource\fP がブロックデバイスではない。
235 .TP 
236 \fBENOTDIR\fP
237 \fItarget\fP か、 \fIsource\fP のプレフィックスがディレクトリではない。
238 .TP 
239 \fBENXIO\fP
240 ブロックデバイス \fIsource\fP のメジャー番号が範囲外である。
241 .TP 
242 \fBEPERM\fP
243 呼び出し元が必要な権限を持っていない。
244 .SH バージョン
245 .\" FIXME: Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE,
246 .\"  MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12.
247 \fBMS_DIRSYNC\fP, \fBMS_MOVE\fP, \fBMS_REC\fP, \fBMS_RELATIME\fP, \fBMS_STRICTATIME\fP の定義が
248 glibc のヘッダに追加されたのは バージョン 2.12 においてのみである。
249 .SH 準拠
250 この関数は Linux 固有の関数であり、移植を考慮したプログラムでは 使用すべきでない。
251 .SH 注意
252 元の \fBMS_SYNC\fP フラグは、別の \fBMS_SYNC\fP が \fI<mman.h>\fP に追加されたので 1.1.69 から
253 \fBMS_SYNCHRONOUS\fP に名前が変わった。
254 .LP
255 .\" The change is in patch-2.4.0-prerelease.
256 Linux 2.4 より前のバージョンでは、 \fBMS_NOSUID\fP オプション付きでマウントされたファイルシステム上の set\-UID や
257 set\-GID のプログラムを実行しようとすると、 \fBEPERM\fP エラーとなった。 Linux 2.4 以降では、このような場合は set\-UID
258 ビットや set\-GID ビットが 無視されるだけである。
259 .SS プロセス単位の名前空間
260 カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 (mount namespace)
261 が提供されている。マウント名前空間とは、 あるプロセスに見えているファイルシステムのマウントの集合である。
262 マウントポイントの名前空間は複数のプロセスで共有することができ、 普通は共有されている。 一つのプロセスによる名前空間の変更
263 (すなわち、マウントやアンマウント) は 同じ名前空間を共有する他の全てのプロセスにも見える。 (2.4.19 より前の Linux
264 は、一つの名前空間がシステム上の全プロセスで 共有される状況とみなすことができる。)
265
266 \fBfork\fP(2)  経由で作成された子プロセスは親プロセスのマウント名前空間を共有する。 \fBexecve\fP(2)
267 の前後でマウント名前空間は保持される。
268
269 プロセスは自分用 (private) のマウント名前空間を持つことができる。 自分用の名前空間を持つことができるのは、 そのプロセスが
270 \fBclone\fP(2)  \fBCLONE_NEWNS\fP フラグを使って作成された場合と、 そのプロセスが \fBCLONE_NEWNS\fP フラグ付きで
271 \fBunshare\fP(2)  を呼び出した場合である。 前者の場合、作成されたプロセスの新しい名前空間は \fBclone\fP(2)
272 を呼び出したプロセスの名前空間の「コピー」で初期化される。 後者の場合、 \fBunshare\fP(2)
273 を呼び出すと、呼び出し元のプロセスのマウント名前空間が、 それまでは他のプロセスと共有していた名前空間の自分用のコピーとなる。
274 これにより、呼び出し元のプロセスがこれ以後に行うマウント/アンマウントは 他のプロセスから見えなくなる (ただし、呼び出し元のプロセスが
275 \fBunshare\fP(2)  の呼び出し以降に作成した子プロセスには見える)。
276 また、その逆の、他のプロセスが行ったマウント/アンマウントも呼び出し元のプロセスには 見えなくなる。
277
278 Linux 独自のファイル \fI/proc/PID/mounts\fP では、指定された ID を持つプロセスのマウント名前空間における
279 マウントポイントのリストが公開されている。詳細は \fBproc\fP(5)  を参照のこと。
280 .SH 関連項目
281 \fBumount\fP(2), \fBpath_resolution\fP(7), \fBmount\fP(8), \fBumount\fP(8)
282 .SH この文書について
283 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
284 である。プロジェクトの説明とバグ報告に関する情報は
285 http://www.kernel.org/doc/man\-pages/ に書かれている。