1 .\" Copyright (C) 2000 by Werner Almesberger
2 .\" May be distributed under GPL
4 .\" Written 2000-02-23 by Werner Almesberger
5 .\" Modified 2004-06-17 Michael Kerrisk <mtk.manpages@gmail.com>
7 .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
8 .\" Translated Wed Jun 14 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
10 .TH PIVOT_ROOT 2 2007-06-01 "Linux" "Linux Programmer's Manual"
12 pivot_root \- root ファイルシステムを変更する
14 .BI "int pivot_root(const char *" new_root ", const char *" put_old );
17 は呼び出し元のプロセスの root ファイルシステムを
21 を呼び出し元のプロセスの新しい root ファイルシステムにする。
27 の典型的な利用法は、システムの起動中にシステムが一時的な
30 をマウントし、これに続いて本当の root ファイルシステムをマウントし、
32 カレント root に変更するような場合である。
34 古い root ディレクトリを使っていた全てのプロセスやスレッドの
35 カレント root とカレントワーキングディレクトリを、
39 の呼びだしプロセスは、古い root やカレントワーキングディレクトリを使っていた
40 プロセスが、いずれの場合でも正しく動作することを保証しなければならない。
41 これを簡単に行うには、それらのプロセスの root と
50 が変更されるかも知れないことを鑑みて、わざと曖昧に書いてある。
53 は古い root ディレクトリを用いている全てのプロセス・スレッドの root と
56 に変更する。これはカーネルのスレッドが古い root ディレクトリを
57 busy 状態にしないために必要である。これらのスレッドが
58 古いディレクトリを root やカレントワーキングディレクトリとしていると、
59 ファイルシステムに一切アクセスしない場合でも
60 古い root が busy になってしまうからである。
62 将来は、カーネルスレッドがあらゆるファイルシステムへのアクセスを
63 明示的に放棄するメカニズムができ、このでしゃばりな機能は
67 これは呼び出し元のプロセスについても当てはまることに注意。
69 がカレントプロセスのカレントワーキングディレクトリに影響するかどうかは
76 .IR new_root " および " put_old
81 .IR new_root " と " put_old
82 は現在の root と同じファイルシステムにあってはならない。
84 .IR put_old " は " new_root
91 と同じディレクトリが得られなければならない。
101 現在の root がマウントポイントではない
119 とするファイルシステムのマウントポイントを表示する。
121 成功すると 0 を返す。エラーが起ると \-1 を返し、
130 に) 返す可能性がある。さらに以下を返すことがある:
133 .IR new_root " または " put_old
134 が、現在の root ファイルシステム上にあるか、既に
136 になんらかのファイルシステムがマウントされている。
139 .IR put_old " が " new_root
143 .IR new_root " または " put_old
152 は Linux 2.3.41 で導入された。
155 は Linux に固有のものなので、移植性はない。
157 glibc はこのシステムコールに対するラッパー関数を提供していない。
162 はシステムの他のプロセス全ての root と
163 カレントワーキングディレクトリとを変更しなくてもよいはずである。
167 あっという間にわけのわからない状態になってしまうだろう