2007年12月 7日

[plamo:28698] Re: S-ATA RAID1でのインストールのしかた


From: Plamo大好 <ilikepl@xxxxx>
Subject: [plamo:28696] Re: S-ATA RAID1 でのインストールのしかた
Date: Fri, 07 Dec 2007 08:51:44 +0900

> KOJIMA Mitsuhiro さんは書きました:
> > ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.5x/plamo-4.2-071205_01.isolinux.iso
> >

> > なんてのを作ってみましたので,試してもらえれば幸いです.
> 済みませんが、DownLoadが終わるまでこのファイルを置いてください。

ミスが見つかったので,日付けとかは変っていますが,モノは置いておきます.

# いつの間にか kernel 2.6.23.9 になっていたり(笑

この CD イメージで使っている 2.6.23.9 カーネルを Plamo-4.2 のツリーにマー
ジしておいたので,CD の焼ける Linux 環境があれば手元でビルドできるはず.

> liloをsdaのMBRにインストール。
> boot=/dev/sda
> root=/dev/sda1
> にしました。
>
> 再起動すると、カーネルパニックになっています。
>
> No storage allocator is currently active. Recheking whether we can use one.
> Suspend2: Resume2 parameter is empty. Suspending will be disabled.
> Compression Driver: Argh! Nothing follows me in the pipeline!
> Compressor didn't initialise okay.
> Suspend2: Initialise modules failed!
> VFS: Cannot open root device "801" or unknown-block(8,1)
> Please append a correct "root=" boot option; here are the available
> partitions:
> (IDE-HDDとIDE-CDROMが表示されている 省略)
> Kernel panic - not syncing: VFS: Unable to mount root fs on
> unknown-block(8,1)

カーネルパニックになるなら BIOS 経由でカーネルイメージは読めているよう
なので,見込みはありそうですね.

# software RAID の場合は,カーネルイメージも RAID パーティションに置い
# てしまうとBIOS から読めなくなるので /boot は RAID 外のパーティション
# にする必要があったりします.

> 3W-9xxx のドライバは組み込みにしてみた.
> とこじまさんが言っておられたのは、この事なんでしょうか?
> カーネルが起動時に組込みでないとドライバーがロードできず、
> sdaが認識できなくなっているのだと思っています。
> さっきは、モジュールをうまく利用できたけど、
> 今度は、モジュールで引っ掛かちゃった様です。

モジュールドライバは便利なんだけど,モジュールドライバを組み込む仕組み
(initrd) を別途用意する必要があるので,このあたりがちょっと厄介ですね.

取りあえず,上記 2.6.23.9 のカーネル(kernel-2.6.23.9_plamoSMP-i586-P1.tgz)
では 3W-9xxx のドライバはカーネル組み込みにしているので,このカーネルを
組み込んだ bootable CD を作ってやれば何とかなりそうに思います.

具体的にはこんな手順になるかな?

・CD イメージ等から必要なファイルを HDD 上に展開
# mount /dev/hdc /cdrom -o ro
# mkdir /mnt/Plamo
# cp -a /cdrom/{plamo,isolinux} /mnt/Plamo

・古いパッケージの削除
# ( cd /mnt/Plamo/plamo/a ; rm kernel-2.6.22.9_plamoSMP-i586-P1.tgz )
# ( cd /mnt/Plamo/plamo/d ; rm kernel_headers-2.6.22.9_plamoSMP-i586-P1.tgz )
# ( cd /mnt/Plamo/plamo/Kernel ; rm kernelsrc-2.6.22.9_plamoSMP-noarch-P1.tgz )

・新しいパッケージを適切な場所に配置
# cp kernel-2.6.23.9_plamoSMP-i586-P1.tgz /mnt/Plamo/plamo/a
# cp kernel_headers-2.6.23.9_plamoSMP-i586-P1.tgz /mnt/Plamo/plamo/d
# cp kernelsrc-2.6.23.9_plamoSMP-noarch-P1.tgz /mnt/Plamo/plamo/Kernel

・CD ブート用のカーネルの更新
# cd isolinux ; mkdir work
# cd work ; tar xvf /mnt/Plamo/plamo/a/kernel-2.6.23.9_plamoSMP-i586-P1.tgz # 新しいカーネルの展開
# cd .. ; rm Systemp* config* vmlinuz* # 古いカーネルの削除
# mv work/boot/{System*,config*,vmlinuz*} . # 新しいカーネルと設定ファイルを移動
# ln vmlinuz-2.6.23.9-plamoSMP vmlinuz # vmlinuz という名前で利用できるようにリンクを作成

・CD ブート用の initrd.gz の再生成
# cd work ; rm -rf boot install # lib/ 以下のモジュールドライバ以外は不要なので削除
# zcat ../initrd.gz | cpio -ivd # initrd.gz をこのディレクトリに展開
# rm -rf lib/modules/2.6.22.9-plamoSMP # 古いモジュールドライバを削除.2.6.23.9 用のモジュールは残る
# find . | cpio -ov -Hnewc | gzip > ../initrd-.gz # 新しいドライバを含めた initrd の生成

・新しいカーネルを使う bootable CD イメージ(testimg.iso)の作成
# cd /mnt
# mkisofs -v -J -r -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-o testimg.iso Plamo

なお,これらは実際にやったわけではなく,多分,こういう感じになるだろう,
というのを机上で考えただけなので,ディレクトリの位置やオプション指定を
間違っていたり,typo が混入している可能性は大ですが悪しからず.

------
こじま

投稿者 xml-rpc : 2007年12月 7日 14:03
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/67338
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。