OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man4 / initrd.4
1 .\" -*- nroff -*-
2 .\" This man-page is Copyright (C) 1997 John S. Kallal
3 .\"
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein.  The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and author(s) of this work.
23 .\"
24 .\" If the you wish to distribute versions of this work under other
25 .\" conditions than the above, please contact the author(s) at the following
26 .\" for permission:
27 .\"
28 .\"  John S. Kallal -
29 .\"     email: <kallal@voicenet.com>
30 .\"     mail: 518 Kerfoot Farm RD, Wilmington, DE 19803-2444, USA
31 .\"     phone: (302)654-5478
32 .\"
33 .\" $Id: initrd.4,v 0.9 1997/11/07 05:05:32 kallal Exp kallal $
34 .\"*******************************************************************
35 .\"
36 .\" This file was generated with po4a. Translate the source file.
37 .\"
38 .\"*******************************************************************
39 .TH INITRD 4 2010\-09\-04 Linux "Linux Programmer's Manual"
40 .SH 名前
41 initrd \- ブートローダによって初期化された RAM ディスク
42 .SH 設定
43 \fI/dev/initrd\fP は、メジャー番号 1、マイナー番号 250 が割り当てられた 読み込み専用のブロックデバイスである。 普通、
44 \fI/dev/initrd\fP の所有者は \fIroot.disk\fP であり、モードは 400 (root のみが読み出し可能) である。
45 もし、Linux システムに作成済の \fI/dev/initrd\fP ファイルがなかった場合、以下のコマンドで作成することができる:
46 .nf
47 \fB
48         mknod \-m 400 /dev/initrd b 1 250
49         chown root:disk /dev/initrd\fP
50
51 .fi
52 .PP
53 .\"
54 .\"
55 .\"
56 また、 \fI/dev/initrd\fP を使用するためには、 "RAM disk" と "Initial RAM disk" の両方の機能が Linux
57 カーネルに直接組み込まれていなければならない (例えば、カーネルのコンパイル時の設定で \fBCONFIG_BLK_DEV_RAM=y\fP かつ
58 \fBCONFIG_BLK_DEV_INITRD=y\fP とする)。 \fI/dev/initrd\fP を使用する場合には、RAM
59 ディスクドライバをモジュールとして ロードすることはできない。
60 .SH 説明
61 \fI/dev/initrd\fP スペシャルファイルは読み込み専用のブロックデバイスである。 このデバイスはカーネルが起動される前にブートローダ (boot
62 loader)  によって初期化 (例えば、ロード) される RAM ディスクである。 その後、カーネルは \fI/dev/initrd\fP
63 の内容を二段階のシステム起動 (two\-phase system boot\-up)  で利用することができる。
64 .PP
65 .\"
66 .\"
67 .\"
68 最初のブートアップ段階 (first boot\-up phase) では、カーネルは (例えば、ブートローダによって初期化された RAM disk
69 である)  \fI/dev/initrd\fP の内容を初期ルートファイルシステム (root file\-system) としてマウント して起動する。
70 第二段階では初期ルートデバイスに含まれているものから、追加のドライ バやその他のモジュールがロードされる。
71 追加のモジュールがロードされた後、新しいルートファイルシステム (すなわち、通常時のルートファイルシステム)  が別のデバイスからマウントされる。
72 .SS ブートアップ作業
73 \fBinitrd\fP を利用した時は、システムは次のようにブートする:
74 .IP 1. 3
75 ブートローダはカーネルプログラムと \fI/dev/initrd\fP の内容をメモリにロードする。
76 .IP 2.
77 カーネル起動時、カーネルは \fI/dev/initrd\fP デバイスの内容を展開 (uncompress) し、 \fI/dev/ram0\fP
78 にコピーする。さらに、 \fI/dev/initrd\fP の使っていたメモリを解放する。
79 .IP 3.
80 カーネルは \fI/dev/ram0\fP デバイスを初期のルートファイルシステムとして読み書き可能な形式でマウン トする。
81 .IP 4.
82 指示されたルートファイルシステムが初期ルートファイルシステム (例えば \fI/dev/ram0\fP)
83 と同一の場合は、カーネルは普通のブートシーケンスのための最後のステップを 省略する。
84 .IP 5.
85 \fI/linuxrc\fP という実行可能なファイルが初期ルートファイルシステムに存在すれば、 \fI/linuxrc\fP を UID 0
86 (すなわち、root) の権限で実行する。 (\fI/linuxrc\fP ファイルは実行可能パーミッションが与えられていなければならない。
87 \fI/linuxrc\fP は正当な実行ファイルであればよく、シェルスクリプトでも構わない。)
88 .IP 6.
89 \fI/linuxrc\fP が実行されない、または、 \fI/linuxrc\fP の実行が終了した時は、通常時ルートファイルシステムがマウントされる。
90 (\fI/linuxrc\fP を終了した時、何らかのファイルシステムが初期ルートファイルシステム上に マウントされている場合のカーネルの動作は
91 \fB決められていない (不定である)\fP。 現在のカーネルがどのように動作するかは、 「注意」のセクションを参照のこと。)
92 .IP 7.
93 通常時ルートファイルシステムに ディレクトリ \fI/initrd\fP があれば、 \fI/dev/ram0\fP デバイスは \fI/\fP から
94 \fI/initrd\fP に移動される。 \fI/initrd\fP ディレクトリが存在しない場合は、 \fI/dev/ram0\fP はアンマウントされる。
95 (\fI/\fP が \fI/initrd\fP に移動された場合には、 \fI/dev/ram0\fP はアンマウントされず、その結果、 \fI/dev/ram0\fP
96 で走り始めたプロセスはそのまま残る事ができる。 もし、 \fI/initrd\fP ディレクトリが通常時ルートファイルシステムに存在せず、
97 \fI/linuxrc\fP が終了した時に \fI/dev/ram0\fP 上で実行された、なんらかのプロセスが走り続けていた場合の カーネルの動作は
98 \fB決められていない (不定である)\fP。 現在のカーネルが、この時どのような動作をするかについては、 「注意」を参照のこと。)
99 .IP 8.
100 .\"
101 .\"
102 .\"
103 普通のブートシーケンス (例えば、 \fI/sbin/init\fP の起動) が通常時ルートファイルシステム上で行われる。
104 .SS オプション
105 \fBinitrd\fP を用いる場合に、カーネルのブートアップ操作に影響を与える ブートローダ・オプションは次のようなものがある、
106 .TP 
107 \fBinitrd=\fP\fIfilename\fP
108 \fI/dev/initrd\fP の内容としてロードするファイルを指定する。 \fBLOADLIN\fP では、これはコマンドラインオプションである。
109 \fBLILO\fP では、 \fBLILO\fP の設定ファイル \fI/etc/lilo.config\fP 内でコマンドとして使用しなければならない。
110 このオプションで指定されるファイルは、多くの場合 gzip 圧縮された ファイルシステムイメージである。
111 .TP 
112 \fBnoinitrd\fP
113 この起動オプションは二段階の起動操作を無効にする。 カーネルは \fI/dev/initrd\fP
114 が初期化されていない場合と同様の、通常のブートアップ動作を行う。 このオプションを用いると、ブートローダによってメモリ上にロードされた
115 \fI/dev/initrd\fP の内容はそのまま保存される。 つまり、このオプションを用いることによって、 \fI/dev/initrd\fP の内容を
116 (ブート以外の目的に) 利用することが可能になる。また、その内容は ファイルシステムイメージに限定されない。 しかし、 \fI/dev/initrd\fP
117 デバイスは読みだしのみ可能であり、システムの起動後 1 度しか読み出す事 ができない。
118 .TP 
119 \fBroot=\fP\fIdevice\-name\fP
120 .\"
121 .\"
122 .\"
123 通常時ルートファイルシステムとして使われるデバイスを指定する。 \fBLOADLIN\fP では、これはコマンドラインオプションである。 \fBLILO\fP
124 ではコマンドラインオプション、または、 \fBLILO\fP の設定ファイルである \fI/etc/lilo.config\fP のオプションラインとして使用する。
125 このオプションで指定されるデバイスは、適切なルートファイルシステムとし てマウント可能なデバイスでなければならない。
126 .SS 通常時ルートファイルシステムの変更
127 デフォルトでは、カーネルの設定 (例えば、 \fBrdev\fP(8)  を用いてカーネルファイル内にセットされたもの、または、コンパイル時にカー
128 ネルファイル内に埋め込まれたもの)、 または、ブートローダのオプション設定によって指定されたものが通常時ルー トファイルシステムとして使われる。 NFS
129 マウントされた通常時ルートファイルシステムを利用する場合、 \fBnfs_root_name\fP と \fBnfs_root_addrs\fP
130 ブートオプションを使って NFS の設定を与えなければならない。 NFS マウントされたルート (ファイルシステム) についての
131 より詳しい情報は、カーネルのドキュメントファイル \fBDocumentation/filesystems/nfsroot.txt\fP を参照のこと。
132 ルートファイルシステムの設定についてのより詳しい情報は、 \fBLILO\fP と \fBLOADLIN\fP のドキュメントも参照のこと。
133 .PP
134 また、 \fI/linuxrc\fP を用いる事によっても通常時ルートファイルシステムデバイスを変更すること ができる。 \fI/linuxrc\fP
135 を用いて、通常時ルートデバイスを変更するためには、 \fI/proc\fP がマウントされていなければならない。 \fI/proc\fP をマウントした後で、
136 \fI/linuxrc\fP は proc ファイル \fI/proc/sys/kernel/real\-root\-dev\fP,
137 \fI/proc/sys/kernel/nfs\-root\-name\fP, \fI/proc/sys/kernel/nfs\-root\-addrs\fP
138 に書き込みを行い、通常時ルートデバイスを変更する。 (NFS ではない) 物理的なルートデバイスの場合、 \fI/linuxrc\fP
139 が新しいルートファイルシステムのデバイス番号を \fI/proc/sys/kernel/real\-root\-dev\fP
140 に書き込むことで、ルートデバイスが変更される。 NFS ルートファイルシステムの場合、 \fI/linuxrc\fP が NFS の設定を
141 \fI/proc/sys/kernel/nfs\-root\-name\fP と \fI/proc/sys/kernel/nfs\-root\-addrs\fP
142 に書き込み、それから \fI/proc/sys/kernel/real\-root\-dev\fP に (疑似 NFS デバイスナンバーである) 0xff
143 を書き込むことで、 ルートデバイスが変更される。 例えば、次のシェルコマンドラインにより、通常時ルートデバイスを \fI/dev/hdb1\fP
144 に変更できるだろう:
145 .nf
146
147     echo 0x365 >/proc/sys/kernel/real\-root\-dev
148
149 .fi
150 また、NFS の場合、次のようなシェルコマンドラインにより、 193.8.232.2 という IP アドレスを持つ "idefix" という名前の
151 システムの、通常時ルートデバイスとして、 ローカルネットワークの 193.8.232.2 という IP アドレスを持つ NFS サーバの NFS
152 ディレクトリ \fI/var/nfsroot\fP をマウントするように変更できる:
153 .nf
154
155     echo /var/nfsroot >/proc/sys/kernel/nfs\-root\-name
156     echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \e
157         >/proc/sys/kernel/nfs\-root\-addrs
158     echo 255 >/proc/sys/kernel/real\-root\-dev
159 .fi
160
161 .\" FIXME the manual page should describe the pivot_root mechanism.
162 .\"
163 .\"
164 .\"
165 \fB注意\fP: ルートファイルシステムを変更するために \fI/proc/sys/kernel/real\-root\-dev\fP を使うのは以前の方法である。
166 ルートファイルシステムを変更する新しい方法についての情報は、 カーネルソースに含まれる \fIDocumentation/initrd.txt\fP
167 ファイルや、 \fBpivot_root\fP(2)  や \fBpivot_root\fP(8)  を参照してほしい。
168 .SS 使い方
169 \fBinitrd\fP が実装された主な目的は、システムインストール時に、モジュール化されたカー ネルの設定を可能にすることであった。
170 .PP
171 次のような流れのシステムインストールが可能になる:
172 .IP 1. 3
173 ローダプログラムは、フロッピーやその他のメディアから、 最小限のカーネル (例えば、 \fI/dev/ram\fP, \fI/dev/initrd\fP, ext2
174 ファイルシステムのみのサポートしたカーネル) をブートし、 gzip 圧縮された初期ファイルシステムイメージを \fI/dev/initrd\fP
175 にロードする。
176 .IP 2.
177 実行ファイル \fI/linuxrc\fP は、(1) 通常時ルートファイルシステムのマウントに何が必要か
178 (すなわち、デバイスタイプ、デバイスドライバ、ファイルシステム)、 (2) 配布メディアに何が必要か (例えば、CD\-ROM,
179 ネットワーク、テープなど)  を決定する。決定は、ユーザへの問い合わせ、自動検出、あるいはその両者の 方法を組み合わせて行われる。
180 .IP 3.
181 実行ファイル \fI/linuxrc\fP は、初期ルートファイルシステムから必要なモジュールをロードする。
182 .IP 4.
183 実行ファイル \fI/linuxrc\fP は、ルートファイルシステムを作成し、配置する (この段階では、通常時ルー
184 トファイルシステムは完全なシステムである必要はない)。
185 .IP 5.
186 実行ファイル \fI/linuxrc\fP は、 \fI/proc/sys/kernel/real\-root\-dev\fP を設定し、 \fI/proc\fP、
187 マウントされている通常時ファイルシステム及びその他のファイルシステム をアンマウントし、 実行を終了する。
188 .IP 6.
189 次に、カーネルは、通常時ルートファイルシステムをマウントする。
190 .IP 7.
191 この段階で、ファイルシステムは全く変更が行われていない状態で、 アクセスできる状態になる。 また、ブートローダをインストールすることができる。
192 .IP 8.
193 ブートローダを設定し、システム起動時に使用されるカーネルモジュールのセッ トを含んだファイルシステムを \fI/dev/initrd\fP にロードする
194 (例えば、 \fI/dev/ram0\fP デバイスの内容を修正し、アンマウントする。最後に、 \fI/dev/ram0\fP のイメージをファイルに書き出す)。
195 .IP 9.
196 これで、システムがブート可能になる。この後、さらにその他のインストール の作業を実行できる。
197 .PP
198 上記の動作での \fI/dev/initrd\fP の役割のキーポイントは、初期カーネルの選択や大きなジェネリックカーネル、
199 カーネルの再構築なしに、通常のシステム操作で再利用可能な設定データを利 用することにある。
200 .PP
201 2 番目のケースは、一つの管理上のネットワークにおいて、異なる設定のハー ドウェアのシステム上で Linux を動作させるためのインストールを行う場合
202 である。 このようなケースの場合、ごく小数のカーネルのセット (理想的にはたった一 つのカーネル)
203 のみを利用し、システム固有の設定情報は可能な限り小さくす ることが望ましいであろう。 この場合、全ての必要なモジュールが入った共通ファイルを作成する。
204 そして、 \fI/linuxrc\fP ファイル、または、 \fI/linuxrc\fP から実行されるファイルのみを異なったものにしておく。
205 .PP
206 3 番目のケースは、より便利な復旧用ディスクを作る場合である。 ルートファイルシステムのパーティションの位置といった情報は ブート時に必要ないため、
207 \fI/dev/initrd\fP からロードされたシステムは、 必要な正常性チェックを行った後で、ユーザへの問い合わせや自動検出 (もしくはその両方)
208 を行うことができるようになる。
209 .PP
210 .\"
211 .\"
212 .\"
213 (他にもたくさん例があるだろうが) 最後の例としては、 \fBinitrd\fP を利用すると、CD\-ROM 上の Linux ディストリビューションを
214 より簡単に CD\-ROM からインストールすることができるだろう。 ディストリビューションは、 \fBLOADLIN\fP
215 を使って、フロッピーを全く利用せずに CD\-ROM から \fI/dev/initrd\fP を直接ロードすることができる。 また、 \fBLILO\fP
216 ブートフロッピーを使ってブートを行い、 \fI/dev/initrd\fP を通して CD\-ROM からより大きな RAM ディスクを起動することもできる。
217 .SH ファイル
218 \fI/dev/initrd\fP
219 .br
220 \fI/dev/ram0\fP
221 .br
222 \fI/linuxrc\fP
223 .br
224 .\"
225 .\"
226 .\"
227 \fI/initrd\fP
228 .SH 注意
229 .IP 1. 3
230 現在のカーネルでは、 \fI/dev/ram0\fP が \fI/\fP から \fI/initrd\fP
231 に移動された際に、移動時にマウントされていたファイルシステムは、 その後も継続的にアクセス可能である。しかし、 \fI/proc/mounts\fP
232 のエントリは更新されない。
233 .IP 2.
234 現在のカーネルでは、ディレクトリ \fI/initrd\fP が存在しない場合、 \fI/dev/ram0\fP
235 を何らかのプロセスが利用していたり、何らかのファイルシステムが \fI/dev/ram0\fP 上にマウントされていると、 \fI/dev/ram0\fP
236 は完全にはアンマウント「されない」。 \fI/dev/ram0\fP が、完全にアンマウント「されなければ」、 \fI/dev/ram0\fP
237 はメモリ上に残ってしまうはずである。
238 .IP 3.
239 .\"
240 .\"
241 .\"
242 .\" .SH AUTHORS
243 .\" The kernel code for device
244 .\" .BR initrd
245 .\" was written by Werner Almesberger <almesber@lrc.epfl.ch> and
246 .\" Hans Lermen <lermen@elserv.ffm.fgan.de>.
247 .\" The code for
248 .\" .BR initrd
249 .\" was added to the baseline Linux kernel in development version 1.3.73.
250 \fI/dev/initrd\fP の利用者は、上記の注意事項で述べた動作に依存しないようにすべきである。 これらの動作は Linux
251 カーネルの将来のバージョンでは変更される かもしれないからだ。
252 .SH 関連項目
253 \fBchown\fP(1), \fBmknod\fP(1), \fBram\fP(4), \fBfreeramdisk\fP(8), \fBrdev\fP(8)
254
255 カーネルソースパッケージに含まれるドキュメントファイル \fIinitrd.txt\fP、 LILO のドキュメント、LOADLIN
256 のドキュメント、SYSLINUX のドキュメント。