名 前
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 を 終 了 し た 時 、 何 ら か の フ ァ イ ル シ ス テ ム が 初 期 ル ー ト フ ァ イ ル シ ス テ ム 上 に マ ウ ン ト さ れ て い る 場 合 の カ ー ネ ル の 動 作 は 決 め ら れ て い な い (不 定 で あ る )。 現 在 の カ ー ネ ル が ど の よ う に 動 作 す る か は 、 「 注 意 」 の セ ク シ ョ ン を 参 照 の こ と 。 )
通 常 時 ル ー ト フ ァ イ ル シ ス テ ム に デ ィ レ ク ト リ /initrd が あ れ ば 、 /dev/ram0 デ バ イ ス は / か ら /initrd に 移 動 さ れ る 。 /initrd デ ィ レ ク ト リ が 存 在 し な い 場 合 は 、 /dev/ram0 は ア ン マ ウ ン ト さ れ る 。 (/ が /initrd に 移 動 さ れ た 場 合 に は 、 /dev/ram0 は ア ン マ ウ ン ト さ れ ず 、 そ の 結 果 、 /dev/ram0 で 走 り 始 め た プ ロ セ ス は そ の ま ま 残 る 事 が で き る 。 も し 、 /initrd デ ィ レ ク ト リ が 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム に 存 在 せ ず 、 /linuxrc が 終 了 し た 時 に /dev/ram0 上 で 実 行 さ れ た 、 な ん ら か の プ ロ セ ス が 走 り 続 け て い た 場 合 の カ ー ネ ル の 動 作 は 決 め ら れ て い な い (不 定 で あ る )。 現 在 の カ ー ネ ル が 、 こ の 時 ど の よ う な 動 作 を す る か に つ い て は 、 「 注 意 」 を 参 照 の こ と 。 ) 普 通 の ブ ー ト シ ー ケ ン ス (例 え ば 、 /sbin/init の 起 動 ) が 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム 上 で 行 わ れ る 。 オ プ シ ョ ン initrd を 用
い る 場 合 に 、
カ ー ネ ル の ブ
ー ト ア ッ プ 操
作 に 影 響 を 与
え る ブ ー ト ロ
ー ダ ー オ プ シ
ョ ン は 次 の よ
う な も の が あ
る 、 /dev/initrd の 内 容 と し て ロ ー ド す る フ ァ イ ル を 指 定 す る 。 LOADLIN で は 、 こ れ は コ マ ン ド ラ イ ン オ プ シ ョ ン で あ る 。 LILO で は 、 LILO の 設 定 フ ァ イ ル /etc/lilo.config 内 で コ マ ン ド と し て 使 用 し な け れ ば な ら な い 。 こ の オ プ シ ョ ン で 指 定 さ れ る フ ァ イ ル は 、 多 く の 場 合 gzip 圧 縮 さ れ た フ ァ イ ル シ ス テ ム イ メ ー ジ で あ る 。 noinitrd こ
の 起 動 オ プ シ
ョ ン は 二 段 階
の 起 動 操 作 を
無 効 に す る 。
カ ー ネ ル は
/dev/initrd が 初 期 化
さ れ て い な い
場 合 と 同 様 の
、 通 常 の ブ ー
ト ア ッ プ 動 作
を 行 う 。 こ の
オ プ シ ョ ン を
用 い る と 、 ブ
ー ト ロ ー ダ ー
に よ っ て メ モ
リ ー 上 に ロ ー
ド さ れ た /dev/initrd
の 内 容 は そ の
ま ま 保 存 さ れ
る 。 つ ま り 、
こ の オ プ シ ョ
ン を 用 い る こ
と に よ っ て 、
/dev/initrd の 内 容 を
(ブ ー ト 以 外 の
目 的 に ) 利 用 す
る こ と が 可 能
に な る 。 ま た
、 そ の 内 容 は
フ ァ イ ル シ ス
テ ム イ メ ー ジ
に 限 定 さ れ な
い 。 し か し 、
/dev/initrd デ バ イ ス
は 読 み だ し の
み 可 能 で あ り
、 シ ス テ ム の
起 動 後 1 度 し か
読 み 出 す 事 が
で き な い 。 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
(例 え ば 、 /dev/ram, /dev/initrd, ext2 フ ァ イ ル シ ス テ ム の み の サ ポ ー ト し た カ ー ネ ル ) を ブ ー ト し 、 gzip 圧 縮 さ れ た 初 期 フ ァ イ ル シ ス テ ム イ メ ー ジ を /dev/initrd に ロ ー ド す る 。
に 何 が 必 要 か (す な わ ち 、 デ バ イ ス タ イ プ 、 デ バ イ ス ド ラ イ バ 、 フ ァ イ ル シ ス テ ム )、 (2) 配 布 メ デ ィ ア に 何 が 必 要 か (例 え ば 、 CD−ROM, ネ ッ ト ワ ー ク 、 テ ー プ な ど ) を 決 定 す る 。 決 定 は 、 ユ ー ザ ー へ の 問 い 合 わ せ 、 自 動 検 出 、 あ る い は そ の 両 者 の 方 法 を 組 み 合 わ せ て 行 わ れ る 。
ジ ュ ー ル を ロ ー ド す る 。
(こ の 段 階 で は 、 通 常 時 ル ー ト フ ァ イ ル シ ス テ ム は 完 全 な シ ス テ ム で あ る 必 要 は な い )。
/proc、 マ ウ ン ト さ れ て い る 通 常 時 フ ァ イ ル シ ス テ ム 及 び そ の 他 の フ ァ イ ル シ ス テ ム を ア ン マ ウ ン ト し 、 実 行 を 終 了 す る 。
/dev/initrd に ロ ー ド す る (例 え ば 、 /dev/ram0 デ バ イ ス の 内 容 を 修 正 し 、 ア ン マ ウ ン ト す る 。 最 後 に 、 /dev/ram0 の イ メ ー ジ を フ ァ イ ル に 書 き 出 す )。
/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
注 意
に 、 移 動 時 に マ ウ ン ト さ れ て い た フ ァ イ ル シ ス テ ム は 、 そ の 後 も 継 続 的 に ア ク セ ス 可 能 で あ る 。 し か し 、 /proc/mounts の エ ン ト リ ー は 更 新 さ れ な い 。
/dev/ram0 を 何 ら か の プ ロ セ ス が 利 用 し て い た り 、 何 ら か の フ ァ イ ル シ ス テ ム が /dev/ram0 上 に マ ウ ン ト さ れ て い る と 、 /dev/ram0 は 完 全 に は ア ン マ ウ ン ト 「 さ れ な い 」 。 /dev/ram0 が 、 完 全 に ア ン マ ウ ン ト 「 さ れ な け れ ば 」 、 /dev/ram0 は メ モ リ ー 上 に 残 っ て し ま う は ず で あ る 。
関 連 項 目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/ に 書 か れ て い る 。 |