Manpages

名 前

initrd − ブ ー ト ロ ー ダ ー に よ っ て 初 期 化 さ れ た RAM デ ィ ス ク

設 定

/dev/initrd は 、 メ ジ ャ ー 番 号 1、 マ イ ナ ー 番 号 250 が 割 り 当 て ら れ た 読 み 込 み 専 用 の ブ ロ ッ ク デ バ イ ス で あ る 。 普 通 、 /dev/initrd の 所 有 者 は root.disk で あ り 、 モ ー ド は 400 (root の み が 読 み 出 し 可 能 ) で あ る 。 も し 、 Linux シ ス テ ム に 作 成 済 の /dev/initrd フ ァ イ ル が な か っ た 場 合 、 以 下 の コ マ ン ド で 作 成 す る こ と が で き る :
mknod −m 400 /dev/initrd b 1 250
chown root:disk /dev/initrd
ま た 、 /dev/initrd を 使 用 す る た め に は 、 "RAM disk" と "Initial RAM disk" の 両 方 の 機 能 が Linux カ ー ネ ル に 直 接 組 み 込 ま れ て い な け れ ば な ら な い (例 え ば 、 カ ー ネ ル の コ ン パ イ ル 時 の 設 定 で CONFIG_BLK_DEV_RAM=y か つ CONFIG_BLK_DEV_INITRD=y と す る )。 /dev/initrd を 使 用 す る 場 合 に は 、 RAM デ ィ ス ク ド ラ イ バ を モ ジ ュ ー ル と し て ロ ー ド す る こ と は で き な い 。

説 明

/dev/initrd ス ペ シ ャ ル フ ァ イ ル は 読 み 込 み 専 用 の ブ ロ ッ ク デ バ イ ス で あ る 。 こ の デ バ イ ス は カ ー ネ ル が 起 動 さ れ る 前 に ブ ー ト ロ ー ダ ー (boot loader) に よ っ て 初 期 化 (例 え ば 、 ロ ー ド ) さ れ る RAM デ ィ ス ク で あ る 。 そ の 後 、 カ ー ネ ル は /dev/initrd の 内 容 を 二 段 階 の シ ス テ ム 起 動 (two−phase system boot−up) で 利 用 す る こ と が で き る 。 最 初 の ブ ー ト ア ッ プ 段 階 (first boot−up phase) で は 、 カ ー ネ ル は (例 え ば 、 ブ ー ト ロ ー ダ ー に よ っ て 初 期 化 さ れ た RAM disk で あ る ) /dev/initrd の 内 容 を 初 期 ル ー ト フ ァ イ ル シ ス テ ム (root file−system) と し て マ ウ ン ト し て 起 動 す る 。 第 二 段 階 で は 初 期 ル ー ト デ バ イ ス に 含 ま れ て い る も の か ら 、 追 加 の ド ラ イ バ や そ の 他 の モ ジ ュ ー ル が ロ ー ド さ れ る 。 追 加 の モ ジ ュ ー ル が ロ ー ド さ れ た 後 、 新 し い ル ー ト フ ァ イ ル シ ス テ ム (す な わ ち 、 通 常 時 の ル ー ト フ ァ イ ル シ ス テ ム ) が 別 の デ バ イ ス か ら マ ウ ン ト さ れ る 。 ブ ー ト ア ッ プ 作 業
initrd
を 利 用 し た 時 は 、 シ ス テ ム は 次 の よ う に ブ ー ト す る :

1. ブ ー ト ロ ー ダ ー は カ ー ネ ル プ ロ グ ラ ム と

/dev/initrd の 内 容 を メ モ リ ー に

ロ ー ド す る 。

2. カ ー ネ ル 起 動 時 、 カ ー ネ ル は

/dev/initrd デ バ イ ス の 内 容 を 展 開

(uncompress) し 、 /dev/ram0 に コ ピ ー す る 。 さ ら に 、 /dev/initrd の 使 っ て い た メ モ リ ー を 解 放 す る 。

3. カ ー ネ ル は

/dev/ram0 デ バ イ ス を 初 期 の ル ー ト フ ァ イ ル シ ス テ ム と し て 読

み 書 き 可 能 な 形 式 で マ ウ ン ト す る 。

4. 指 示 さ れ た ル ー ト フ ァ イ ル シ ス テ ム が 初 期 ル ー ト フ ァ イ ル シ ス テ ム

(例 え ば

/dev/ram0) と 同 一 の 場 合 は 、 カ ー ネ ル は 普 通 の ブ ー ト シ ー ケ ン ス の た め の 最 後 の ス テ ッ プ を 省 略 す る 。

5.

/linuxrc と い う 実 行 可 能 な フ ァ イ ル が 初 期 ル ー ト フ ァ イ ル シ ス テ ム に 存 在 す れ ば 、 /linuxrc を UID 0 (す な わ ち 、 root) の 権 限 で 実 行 す る 。 (/linuxrc フ ァ イ ル は 実 行 可 能 パ ー ミ ッ シ ョ ン が 与 え ら れ て い な け れ ば な ら な い 。 /linuxrc は 正 当 な 実 行 フ ァ イ ル で あ れ ば よ く 、 シ ェ ル ス ク リ プ ト で も 構 わ な い 。 )

6.

/linuxrc が 実 行 さ れ な い 、 ま た は 、 /linuxrc の 実 行 が 終 了 し た 時 は 、 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム が マ ウ ン ト さ れ る 。 (/linuxrc を 終 了 し た 時 、 何 ら か の フ ァ イ ル シ ス テ ム が 初 期 ル ー ト フ ァ イ ル シ ス テ ム 上 に マ ウ ン ト さ れ て い る 場 合 の カ ー ネ ル の 動 作 は 決 め ら れ て い な い (不 定 で あ る )。 現 在 の カ ー ネ ル が ど の よ う に 動 作 す る か は 、 「 注 意 」 の セ ク シ ョ ン を 参 照 の こ と 。 )

7.

通 常 時 ル ー ト フ ァ イ ル シ ス テ ム に デ ィ レ ク ト リ /initrd が あ れ ば 、 /dev/ram0 デ バ イ ス は / か ら /initrd に 移 動 さ れ る 。 /initrd デ ィ レ ク ト リ が 存 在 し な い 場 合 は 、 /dev/ram0 は ア ン マ ウ ン ト さ れ る 。 (//initrd に 移 動 さ れ た 場 合 に は 、 /dev/ram0 は ア ン マ ウ ン ト さ れ ず 、 そ の 結 果 、 /dev/ram0 で 走 り 始 め た プ ロ セ ス は そ の ま ま 残 る 事 が で き る 。 も し 、 /initrd デ ィ レ ク ト リ が 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム に 存 在 せ ず 、 /linuxrc が 終 了 し た 時 に /dev/ram0 上 で 実 行 さ れ た 、 な ん ら か の プ ロ セ ス が 走 り 続 け て い た 場 合 の カ ー ネ ル の 動 作 は 決 め ら れ て い な い (不 定 で あ る )。 現 在 の カ ー ネ ル が 、 こ の 時 ど の よ う な 動 作 を す る か に つ い て は 、 「 注 意 」 を 参 照 の こ と 。 )

8.

普 通 の ブ ー ト シ ー ケ ン ス (例 え ば 、 /sbin/init の 起 動 ) が 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム 上 で 行 わ れ る 。 オ プ シ ョ ン

initrd を 用 い る 場 合 に 、 カ ー ネ ル の ブ ー ト ア ッ プ 操 作 に 影 響 を 与 え る ブ ー ト ロ ー ダ ー オ プ シ ョ ン は 次 の よ う な も の が あ る 、
initrd=
filename

/dev/initrd の 内 容 と し て ロ ー ド す る フ ァ イ ル を 指 定 す る 。 LOADLIN で は 、 こ れ は コ マ ン ド ラ イ ン オ プ シ ョ ン で あ る 。 LILO で は 、 LILO の 設 定 フ ァ イ ル /etc/lilo.config 内 で コ マ ン ド と し て 使 用 し な け れ ば な ら な い 。 こ の オ プ シ ョ ン で 指 定 さ れ る フ ァ イ ル は 、 多 く の 場 合 gzip 圧 縮 さ れ た フ ァ イ ル シ ス テ ム イ メ ー ジ で あ る 。

noinitrd こ の 起 動 オ プ シ ョ ン は 二 段 階 の 起 動 操 作 を 無 効 に す る 。 カ ー ネ ル は /dev/initrd が 初 期 化 さ れ て い な い 場 合 と 同 様 の 、 通 常 の ブ ー ト ア ッ プ 動 作 を 行 う 。 こ の オ プ シ ョ ン を 用 い る と 、 ブ ー ト ロ ー ダ ー に よ っ て メ モ リ ー 上 に ロ ー ド さ れ た /dev/initrd の 内 容 は そ の ま ま 保 存 さ れ る 。 つ ま り 、 こ の オ プ シ ョ ン を 用 い る こ と に よ っ て 、 /dev/initrd の 内 容 を (ブ ー ト 以 外 の 目 的 に ) 利 用 す る こ と が 可 能 に な る 。 ま た 、 そ の 内 容 は フ ァ イ ル シ ス テ ム イ メ ー ジ に 限 定 さ れ な い 。 し か し 、 /dev/initrd デ バ イ ス は 読 み だ し の み 可 能 で あ り 、 シ ス テ ム の 起 動 後 1 度 し か 読 み 出 す 事 が で き な い 。
root=
device−name 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム と し て 使 わ れ る デ バ イ ス を 指 定 す る 。 LOADLIN で は 、 こ れ は コ マ ン ド ラ イ ン オ プ シ ョ ン で あ る 。 LILO で は コ マ ン ド ラ イ ン オ プ シ ョ ン 、 ま た は 、 LILO の 設 定 フ ァ イ ル で あ る /etc/lilo.config の オ プ シ ョ ン ラ イ ン と し て 使 用 す る 。 こ の オ プ シ ョ ン で 指 定 さ れ る デ バ イ ス は 、 適 切 な ル ー ト フ ァ イ ル シ ス テ ム と し て マ ウ ン ト 可 能 な デ バ イ ス で な け れ ば な ら な い 。 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム の 変 更 デ フ ォ ル ト で は 、 カ ー ネ ル の 設 定 (例 え ば 、 rdev(8) を 用 い て カ ー ネ ル フ ァ イ ル 内 に セ ッ ト さ れ た も の 、 ま た は 、 コ ン パ イ ル 時 に カ ー ネ ル フ ァ イ ル 内 に 埋 め 込 ま れ た も の )、 ま た は 、 ブ ー ト ロ ー ダ ー の オ プ シ ョ ン 設 定 に よ っ て 指 定 さ れ た も の が 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム と し て 使 わ れ る 。 NFS マ ウ ン ト さ れ た 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム を 利 用 す る 場 合 、 nfs_root_namenfs_root_addrs ブ ー ト オ プ シ ョ ン を 使 っ て NFS の 設 定 を 与 え な け れ ば な ら な い 。 NFS マ ウ ン ト さ れ た ル ー ト (フ ァ イ ル シ ス テ ム ) に つ い て の よ り 詳 し い 情 報 は 、 カ ー ネ ル の ド キ ュ メ ン ト フ ァ イ ル Documentation/filesystems/nfsroot.txt を 参 照 の こ と 。 ル ー ト フ ァ イ ル シ ス テ ム の 設 定 に つ い て の よ り 詳 し い 情 報 は 、 LILOLOADLIN の ド キ ュ メ ン ト も 参 照 の こ と 。 ま た 、 /linuxrc を 用 い る 事 に よ っ て も 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム デ バ イ ス を 変 更 す る こ と が で き る 。 /linuxrc を 用 い て 、 通 常 時 ル ー ト デ バ イ ス を 変 更 す る た め に は 、 /proc が マ ウ ン ト さ れ て い な け れ ば な ら な い 。 /proc を マ ウ ン ト し た 後 で 、 /linuxrc は proc フ ァ イ ル /proc/sys/kernel/real−root−dev, /proc/sys/kernel/nfs−root−name, /proc/sys/kernel/nfs−root−addrs に 書 き 込 み を 行 い 、 通 常 時 ル ー ト デ バ イ ス を 変 更 す る 。 (NFS で は な い ) 物 理 的 な ル ー ト デ バ イ ス の 場 合 、 /linuxrc が 新 し い ル ー ト フ ァ イ ル シ ス テ ム の デ バ イ ス 番 号 を /proc/sys/kernel/real−root−dev に 書 き 込 む こ と で 、 ル ー ト デ バ イ ス が 変 更 さ れ る 。 NFS ル ー ト フ ァ イ ル シ ス テ ム の 場 合 、 /linuxrc が NFS の 設 定 を /proc/sys/kernel/nfs−root−name/proc/sys/kernel/nfs−root−addrs に 書 き 込 み 、 そ れ か ら /proc/sys/kernel/real−root−dev に (疑 似 NFS デ バ イ ス ナ ン バ ー で あ る ) 0xff を 書 き 込 む こ と で 、 ル ー ト デ バ イ ス が 変 更 さ れ る 。 例 え ば 、 次 の シ ェ ル コ マ ン ド ラ イ ン に よ り 、 通 常 時 ル ー ト デ バ イ ス を /dev/hdb1 に 変 更 で き る だ ろ う :

echo 0x365 >/proc/sys/kernel/real−root−dev ま た 、 NFS の 場 合 、 次 の よ う な シ ェ ル コ マ ン ド ラ イ ン に よ り 、 193.8.232.2 と い う IP ア ド レ ス を 持 つ "idefix" と い う 名 前 の シ ス テ ム の 、 通 常 時 ル ー ト デ バ イ ス と し て 、 ロ ー カ ル ネ ッ ト ワ ー ク の 193.8.232.2 と い う IP ア ド レ ス を 持 つ NFS サ ー バ の NFS デ ィ レ ク ト リ /var/nfsroot を マ ウ ン ト す る よ う に 変 更 で き る :

echo /var/nfsroot >/proc/sys/kernel/nfs−root−name
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \ >
/proc/sys/kernel/nfs−root−addrs
echo 255 >/proc/sys/kernel/real−root−dev 注 意 : ル ー ト フ ァ イ ル シ ス テ ム を 変 更 す る た め に /proc/sys/kernel/real−root−dev を 使 う の は 以 前 の 方 法 で あ る 。 ル ー ト フ ァ イ ル シ ス テ ム を 変 更 す る 新 し い 方 法 に つ い て の 情 報 は 、 Linux カ ー ネ ル ソ ー ス に 含 ま れ る Documentation/initrd.txt フ ァ イ ル や 、 pivot_root(2)pivot_root(8) を 参 照 し て ほ し い 。 使 い 方
initrd
が 実 装 さ れ た 主 な 目 的 は 、 シ ス テ ム イ ン ス ト ー ル 時 に 、 モ ジ ュ ー ル 化 さ れ た カ ー ネ ル の 設 定 を 可 能 に す る こ と で あ っ た 。 次 の よ う な 流 れ の シ ス テ ム イ ン ス ト ー ル が 可 能 に な る :

1. ロ ー ダ ー プ ロ グ ラ ム は 、 フ ロ ッ ピ ー や そ の 他 の メ デ ィ ア か ら 、 最 小 限 の カ ー ネ ル

(例 え ば 、 /dev/ram, /dev/initrd, ext2 フ ァ イ ル シ ス テ ム の み の サ ポ ー ト し た カ ー ネ ル ) を ブ ー ト し 、 gzip 圧 縮 さ れ た 初 期 フ ァ イ ル シ ス テ ム イ メ ー ジ を /dev/initrd に ロ ー ド す る 。

2. 実 行 フ ァ イ ル

/linuxrc は 、 (1) 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム の マ ウ ン ト

に 何 が 必 要 か (す な わ ち 、 デ バ イ ス タ イ プ 、 デ バ イ ス ド ラ イ バ 、 フ ァ イ ル シ ス テ ム )、 (2) 配 布 メ デ ィ ア に 何 が 必 要 か (例 え ば 、 CD−ROM, ネ ッ ト ワ ー ク 、 テ ー プ な ど ) を 決 定 す る 。 決 定 は 、 ユ ー ザ ー へ の 問 い 合 わ せ 、 自 動 検 出 、 あ る い は そ の 両 者 の 方 法 を 組 み 合 わ せ て 行 わ れ る 。

3. 実 行 フ ァ イ ル

/linuxrc は 、 初 期 ル ー ト フ ァ イ ル シ ス テ ム か ら 必 要 な モ

ジ ュ ー ル を ロ ー ド す る 。

4. 実 行 フ ァ イ ル

/linuxrc は 、 ル ー ト フ ァ イ ル シ ス テ ム を 作 成 し 、 配 置 す る

(こ の 段 階 で は 、 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム は 完 全 な シ ス テ ム で あ る 必 要 は な い )。

5. 実 行 フ ァ イ ル

/linuxrc は 、 /proc/sys/kernel/real−root−dev を 設 定 し 、

/proc、 マ ウ ン ト さ れ て い る 通 常 時 フ ァ イ ル シ ス テ ム 及 び そ の 他 の フ ァ イ ル シ ス テ ム を ア ン マ ウ ン ト し 、 実 行 を 終 了 す る 。

6. 次 に 、 カ ー ネ ル は 、 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム を マ ウ ン ト す る 。

7. こ の 段 階 で 、 フ ァ イ ル シ ス テ ム は 全 く 変 更 が 行 わ れ て い な い 状 態 で 、 ア ク セ ス で き る 状 態 に な る 。 ま た 、 ブ ー ト ロ ー ダ ー を イ ン ス ト ー ル す る こ と が で き る 。

8. ブ ー ト ロ ー ダ ー を 設 定 し 、 シ ス テ ム 起 動 時 に 使 用 さ れ る カ ー ネ ル モ ジ ュ ー ル の セ ッ ト を 含 ん だ フ ァ イ ル シ ス テ ム を

/dev/initrd に ロ ー ド す る (例 え ば 、 /dev/ram0 デ バ イ ス の 内 容 を 修 正 し 、 ア ン マ ウ ン ト す る 。 最 後 に 、 /dev/ram0 の イ メ ー ジ を フ ァ イ ル に 書 き 出 す )。

9. こ れ で 、 シ ス テ ム が ブ ー ト 可 能 に な る 。 こ の 後 、 さ ら に そ の 他 の イ ン ス ト ー ル の 作 業 を 実 行 で き る 。 上 記 の 動 作 で の

/dev/initrd の 役 割 の キ ー ポ イ ン ト は 、 初 期 カ ー ネ ル の 選 択 や 大 き な ジ ェ ネ リ ッ ク カ ー ネ ル 、 カ ー ネ ル の 再 構 築 な し に 、 通 常 の シ ス テ ム 操 作 で 再 利 用 可 能 な 設 定 デ ー タ を 利 用 す る こ と に あ る 。

2 番 目 の ケ ー ス は 、 一 つ の 管 理 上 の ネ ッ ト ワ ー ク に お い て 、 異 な る 設 定 の ハ ー ド ウ ェ ア の シ ス テ ム 上 で Linux を 動 作 さ せ る た め の イ ン ス ト ー ル を 行 う 場 合 で あ る 。 こ の よ う な ケ ー ス の 場 合 、 ご く 小 数 の カ ー ネ ル の セ ッ ト (理 想 的 に は た っ た 一 つ の カ ー ネ ル ) の み を 利 用 し 、 シ ス テ ム 固 有 の 設 定 情 報 は 可 能 な 限 り 小 さ く す る こ と が 望 ま し い で あ ろ う 。 こ の 場 合 、 全 て の 必 要 な モ ジ ュ ー ル が 入 っ た 共 通 フ ァ イ ル を 作 成 す る 。 そ し て 、 /linuxrc フ ァ イ ル 、 ま た は 、 /linuxrc か ら 実 行 さ れ る フ ァ イ ル の み を 異 な っ た も の に し て お く 。

3 番 目 の ケ ー ス は 、 よ り 便 利 な 復 旧 用 デ ィ ス ク を 作 る 場 合 で あ る 。 ル ー ト フ ァ イ ル シ ス テ ム の パ ー テ ィ シ ョ ン の 位 置 と い っ た 情 報 は ブ ー ト 時 に 必 要 な い た め 、 /dev/initrd か ら ロ ー ド さ れ た シ ス テ ム は 、 必 要 な 正 常 性 チ ェ ッ ク を 行 っ た 後 で 、 ユ ー ザ ー へ の 問 い 合 わ せ や 自 動 検 出 (も し く は そ の 両 方 ) を 行 う こ と が で き る よ う に な る 。

(他 に も た く さ ん 例 が あ る だ ろ う が ) 最 後 の 例 と し て は 、 initrd を 利 用 す る と 、 CD−ROM 上 の Linux デ ィ ス ト リ ビ ュ ー シ ョ ン を よ り 簡 単 に CD−ROM か ら イ ン ス ト ー ル す る こ と が で き る だ ろ う 。 デ ィ ス ト リ ビ ュ ー シ ョ ン は 、 LOADLIN を 使 っ て 、 フ ロ ッ ピ ー を 全 く 利 用 せ ず に CD−ROM か ら /dev/initrd を 直 接 ロ ー ド す る こ と が で き る 。 ま た 、 LILO ブ ー ト フ ロ ッ ピ ー を 使 っ て ブ ー ト を 行 い 、 /dev/initrd を 通 し て CD−ROM か ら よ り 大 き な RAM デ ィ ス ク を 起 動 す る こ と も で き る 。

フ ァ イ ル

/dev/initrd
/dev/ram0
/linuxrc
/initrd

注 意

1. 現 在 の カ ー ネ ル で は 、

/dev/ram0/ か ら /initrd に 移 動 さ れ た 際

に 、 移 動 時 に マ ウ ン ト さ れ て い た フ ァ イ ル シ ス テ ム は 、 そ の 後 も 継 続 的 に ア ク セ ス 可 能 で あ る 。 し か し 、 /proc/mounts の エ ン ト リ ー は 更 新 さ れ な い 。

2. 現 在 の カ ー ネ ル で は 、 デ ィ レ ク ト リ

/initrd が 存 在 し な い 場 合 、

/dev/ram0 を 何 ら か の プ ロ セ ス が 利 用 し て い た り 、 何 ら か の フ ァ イ ル シ ス テ ム が /dev/ram0 上 に マ ウ ン ト さ れ て い る と 、 /dev/ram0 は 完 全 に は ア ン マ ウ ン ト 「 さ れ な い 」 。 /dev/ram0 が 、 完 全 に ア ン マ ウ ン ト 「 さ れ な け れ ば 」 、 /dev/ram0 は メ モ リ ー 上 に 残 っ て し ま う は ず で あ る 。

3.

/dev/initrd の 利 用 者 は 、 上 記 の 注 意 事 項 で 述 べ た 動 作 に 依 存 し な い よ う に す べ き で あ る 。 こ れ ら の 動 作 は Linux カ ー ネ ル の 将 来 の バ ー ジ ョ ン で は 変 更 さ れ る か も し れ な い か ら だ 。

関 連 項 目

chown(1), mknod(1), ram(4), freeramdisk(8), rdev(8)

Linux カ ー ネ ル ソ ー ス の initrd.txt、 LILO の ド キ ュ メ ン ト 、 LOADLIN の ド キ ュ メ ン ト 、 SYSLINUX の ド キ ュ メ ン ト

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。