|
次のページ
前のページ
目次へ
6. 全部をまとめる: フロッピーの作成
これでカーネルと圧縮形式のルートファイルシステムができました.1枚のブー ト/ルートディスクを作るならば,両方のサイズを合わせても1枚のディスクに 収まることを確認します.ブート+ルートを2枚組で作るならば,ルートファイ ルシステムが1枚のフロッピーに収まることを確認します. 次にブートディスクのカーネルを LILO で起動するかどうかを決めます.別の
方法としては,カーネルを直接フロッピーに書き込んで LILO 無しで起
動させることもできます.LILO を使う利点は,システム上のハードウェアの
初期化に必要なパラメータを指定できる点です.(システムの
/etc/lilo.conf を見てください.このファイルがあって,
``
LILO を使うことにした人はこのまま読み続けてください.カーネル を直接転送することにした人は, LILO を使わない場合の節へ進んでください.
6.1 LILO を使ったカーネルの転送最初にすべきことは,LILO のための簡単な設定ファイルを作ることです.こ れは次のようになります:
boot =/dev/fd0 install =/boot/boot.b map =/boot/map read-write backup =/dev/null compact image = KERNEL label = Bootdisk root =/dev/fd0 パラメータの詳細については LILO のユーザ文書をご覧ください.
このファイルにはハードディスクの /etc/lilo.conf ファイル
から抜き出した このファイルは ここで小さいファイルシステムを作らなければなりません.ルートファイルシ ステムと区別するため,このファイルシステムは カーネルファイルシステムと呼びます. まず,このファイルシステムの大きさを決めます.カーネルのサイズをブロッ
ク数で求め(`` ドライブにフロッピーを入れて,このフロッピーに ext2 カーネルファイルシ ステムを作成します(表記を簡単にするため,ドライブは /dev/fd0 であるものとします):
mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS
``
mount /dev/fd0 /mnt rm -rf /mnt/lost+found mkdir /mnt/{boot,dev} 次に /dev/nullデバイスと /dev/fd0デバイスを
作ります.デバイス番号を調べなくても,
cp -R /dev/{null,fd0} /mnt/dev LILO にはブートローダのコピー(
cp /boot/boot.b /mnt/boot 最後に,先程の節で用意した LILO の設定ファイルをカーネルと一緒にコピー します.両方ともルートディレクトリに置くことができます.
cp bdlilo.conf KERNEL /mnt 以上の手順で,LILO が必要とするものは全てカーネルファイルシステムに準
備できましたので,LILO を実行します.LILO の
lilo -v -C bdlilo.conf -r /mnt LILO はエラーを起こさないはずです.そして LILO の実行後には,カーネル ファイルシステムは以下のようになっているはずです:
total 361 1 -rw-r--r-- 1 root root 176 Jan 10 07:22 bdlilo.conf 1 drwxr-xr-x 2 root root 1024 Jan 10 07:23 boot/ 1 drwxr-xr-x 2 root root 1024 Jan 10 07:22 dev/ 358 -rw-r--r-- 1 root root 362707 Jan 10 07:23 vmlinuz boot: total 8 4 -rw-r--r-- 1 root root 3708 Jan 10 07:22 boot.b 4 -rw------- 1 root root 3584 Jan 10 07:23 map dev: total 0 0 brw-r----- 1 root root 2, 0 Jan 10 07:22 fd0 0 crw-r--r-- 1 root root 1, 3 Jan 10 07:22 null
ファイルサイズが少しくらい違っていても気にする必要はありません. ドライブからディスクを抜き, ramdisk 変数の設定の節に進みましょう.
6.2 LILO を使わないカーネルの転送LILO を使わない場合には,
% dd if=KERNEL of=/dev/fd0 bs=1k 353+1 records in 353+1 records out この例では, 最後に,ルートデバイスをフロッピーに設定し,ルートを読み書き可能でロー ドできるように設定します.
rdev /dev/fd0 /dev/fd0 rdev -R /dev/fd0 0
後の方の
6.3 ramdisk 変数の設定カーネルイメージの ramdisk 変数にはルートファイルシステ
ムの位置に関係するオプション等が指定されています.この変数には
第 0-10ビット: RAM ディスク先頭位置へのオフセットアドレス. 1024 バイトのブロックが単位になります. 第11-13ビット: 未使用です. 第 14ビット: RAM ディスクをロードするかどうかのフラグです. 第 15 ビット: ルートファイルシステムをロードする前にフロッピー 交換のプロンプトを出すかどうかのフラグです. 第 15 ビットがセットされていると,ブート時に 2 枚目のフロッピーをドライブに 入れるようにというプロンプトが出ます.ディスク 2 枚からなるブートシス テムではこのフラグが必要になります. 1枚のブート/ルートディスクを作るか,2枚組の「ブート+ルート」ディスクを 作るかによって,手順は2つに分かれます.
ramdisk 変数がしっかりと計算できたら,
rdev -r KERNEL_OR_FLOPPY_DRIVE VALUE LILO を使っている場合には,フロッピーをアンマウントします.
6.4 ルートファイルシステムの転送
最後のステップはルートファイルシステムの転送です.
お疲れさま,これで作業終了です! 緊急用のディスクとして保管する前に は必ずテストをしましょう.このディスクで起動できなければ,トラブ ルシューティングがあるので,この先を読んでみましょう.
次のページ 前のページ 目次へ |
[ |