次のページ
前のページ
目次へ
インストールの手順自体をいじりたければ,RedHat の CD-ROM またはお近く
の RedHat ミラーサイトから,インストーラのソースコードを入手してくださ
い.これはディストリビューションのトップディレクトリにある
i386 ディレクトリの下の misc/src/install ディレクト
リにあります.
RedHat の起動ディスクを調べれば,Linux カーネルである vmlinuz
に加え,大きなファイル initrd.img があることに気づくと思いま
す:
-rwxr-xr-x 1 root root 559 May 11 15:48 boot.msg
-rwxr-xr-x 1 root root 668 May 11 15:48 expert.msg
-rwxr-xr-x 1 root root 986 May 11 15:48 general.msg
-rwxr-xr-x 1 root root 968842 May 11 15:48 initrd.img
-rwxr-xr-x 1 root root 1120 May 11 15:48 kickit.msg
-r-xr-xr-x 1 root root 5352 May 11 15:48 ldlinux.sys
-rwxr-xr-x 1 root root 875 May 11 15:48 param.msg
-rwxr-xr-x 1 root root 1239 May 11 15:48 rescue.msg
-rwxr-xr-x 1 root root 402 May 11 15:48 syslinux.cfg
-rwxr-xr-x 1 root root 444602 May 11 15:48 vmlinuz
ご想像の通り,これはファイルとして格納されている別の ext2 ファ
イルシステムです.ただし少しひねりが入っています.実際には圧縮もされて
いるのです.このファイルを展開して,その結果をマウントすることができます.
操作例を以下に示します:
# gzip -dc /mnt/boot/initrd.img >/tmp/initrd.ext2
# mkdir /mnt/initrd
# mount -o loop /tmp/initrd.ext2 /mnt/initrd
このファイルシステムで最も重要な部分は,起動ディスクに入っているローダ
ブルカーネルモジュール群でしょう.新しいバージョンのドライバをマージす
る必要があるなら,これを静的にリンクした新しいカーネルで
vmlinuz を置き換えるか,あるいはモジュール群を差し替える必要
があります.さらに,空きディスクを確保するために他のモジュールを捨てる
必要があるかもしれません.
モジュール群は modules/modules.cgz ファイルです.これはどんな
ファイルなのでしょうか? これは実際には圧縮した cpio ファイル
です.読者の皆さんが信じるかどうかは分かりませんし,もう誰も
cpio なんて使ってないと思われるかもしれませんが! 実際には RPM
パッケージ自体も内部的には cpio を使っています.以下の手順は
モジュール群のファイルをハックするための方法です:
# gzip -dc /mnt/initrd/modules/modules.cgz >/tmp/modules.cpio
# cpio -itv <modules.cpio >modules.listing
# mkdir modules
# cd modules
# cpio -idumv <../modules.cpio
筆者が知る限りでは,現在の Linux(少なくとも主要ディストリビューション
では)には圧縮されたファイルシステムを透過的に扱う方法は無いはずです.
もっと良い方法があればお知らせください!
何らかの変更を行った場合には,以下の処理も忘れずに行ってください:
-
cpio を使ってアーカイブを作り直します.作り直しの方法
は,読者の皆さんへの宿題としておきます….
- できたアーカイブを
gzip を使って圧縮します.
- これを /mnt/initrd あるいは圧縮されていない
initrd.img が置かれている場所にコピーします.
- /mnt/initrd (あるいはマウントした場所)をアンマウントし
ます.
- 新しい initrd.img を
gzip を使って再び圧縮し
ます.
- できたアーカイブを起動ディスクイメージにコピーします.本ドキュ
メントの例では /mnt/boot/initrd.img です.
- 起動ディスクイメージ(例えば /mnt/boot)をアンマウントし
ます.
最後に,このように修正した起動ディスクの設定を用いて新しい起動フロッピー
を作成することができます.作成は例えば以下のように行います:
# cat boot.img >/dev/fd0
次のページ
前のページ
目次へ
|