ついに!!

試しましたダメでした。

日曜日に家からsshで会社のサーバに入ってやってました。
コンパイルに時間がかかると思ったので、Xeon 3.40GHz デュアルのサーバで…。
いつも使ってるマシン(Celeron400MHz)でやったら何時間かかるんだよ(^_^;)
うまくいくといいなぁ。

Makefileを指定していなかったため認識時エラー!!ああああああぁぁぁぁ。
コンパイル実行成功!!でも Ext2 でしかフォーマットができない(T^T)
仕方ないので、Ext2 でインストールして、Ext3に変更することにする。
方法は後日。

HP ML110 G2 SATA-RAIDモデル にVine3.1をインストールする

今回導入するHP製のサーバ(ML110 G2 SATA-RAIDモデル)


いいところ

・しっかりしたエンクロージャがついていてすごいかっこいい。
・安い!!
悪いところ

・インストールしようとするとHDがない!!と怒られる(なんで?AHA-2410SAはOKだったはず、カタログにもRedhat ES3はOKと書いてあった)
・Vine3.1のインストールCDに入っているドライバでは認識ができないようだ(^_^;)。


インストールCDのRAIDコントローラのドライバが対応していないようです。
そういえば、HPにしか使われていないアダプテック製のRAIDコントローラ(AHA-2610SA) カタログにない6ポートでした。
Redhat ES3はドライバアップデートディスクが必要でした
というわけで、インストールできませんでした。


いろいろやってみました。
ダメだったこと
・Adaptecにあったドライバをインストール
ためしにOSをATAHDDにインストールしたあとで、readme通りdkmsを使ってドライバ更新したら認識されました。
・dkmsでドライバアップデートディスクを作れそうだったので作ってみる。→『カーネルのバージョンが違います』と言われる
・認識したaacraid.oをドライバアップデートディスクに入れてみる。→セットアップ成功!!→Raidで起動するとカーネルパニックで止まる(ToT)/~~~←BOOTのときのaacraid.oが古い様子
・Redhatのドライバアップデートディスクを参考にsmp用、普通用、BOOT用のaacraid.oを入れてみる。
・だいたいインストーラがaacraid.oを読み込んでくれるのか??そこまで高機能ではないような気がするなぁ。
・下のほうを読むとわかるけど


そうこうするうちに1週間経過…。
もうインストールCDを作るしかないかなぁと。


こちらを参考に

SourceRPMをインストール
$rpm ivh kernel-2.4.27-0vl7.6.src.rpm

aacraid-1.1.5.2400-dkms.noarch.rpmを~/rpm/SOURCE/へコピー

kernel-2.4-vl.specを修正
追加
Source1000: aacraid-1.1.5.2400-dkms.noarch.rpm
buildの前に追加
rpm2cpio $RPM_SOURCE_DIR/aacraid-1.1.5.2400-dkms.noarch.rpm | cpio -id
cp -v \
usr/src/aacraid-1.1.5.2400/*.[ch] \
usr/src/aacraid-1.1.5.2400/Makefile \
usr/src/aacraid-1.1.5.2400/README \
usr/src/aacraid-1.1.5.2400/TODO \
drivers/scsi/aacraid

SRPM を作り直す。
$cd ~/rpm/SPECS
$rpmbuild -bs kernel-2.4-vl.spec
~/rpm/SRPMS/kernel-2.4.27-0vl7.6.src.rpmが出来上がる

SRPMとi386用の RPM を作成
$cd ~/rpm/SRPMS
$mkkpkg –enable-smp kernel-2.4.27-0vl7.6.src.rpm

カーネルバージョンを聞かれるので
0vl7.6aacを入力
specファイルを更新しますかとくるのでviで開いた後閉じる。

menuconfigの画面が3回出てくるので、それぞれ答える。(今回は変更はなし)
その後コンパイル

20分くらいで終わる


kernel-2.4.27-0vl7.6aac.i386.rpm
kernel-headers-2.4.27-0vl7.6aac.i386.rpm
kernel-smp-2.4.27-0vl7.6aac.i386.rpm
kernel-source-2.4.27-0vl7.6aac.i386.rpm
kernel-doc-2.4.27-0vl7.6aac.i386.rpm
kernel-BOOT-2.4.27-0vl7.6aac.i386.rpm
kernel-2.4.27-0vl7.6aac.src.rpm
が出来上がる。

i686用の RPM を作成
$cd ~/rpm/SPECS

$mkkpkg -enable-smp -target=i686 kernel-2.4.27-0vl7.6.src.rpm

カーネルバージョンを聞かれるので
0vl7.6aacを入力
specファイルを更新しますかとくるのでviで開いた後閉じる。

menuconfigの画面が3回出てくるので、それぞれ答える。(変更なし)
その後コンパイル


kernel-2.4.27-0vl7.6aac.i686.rpm
kernel-smp-2.4.27-0vl7.6aac.i686.rpm
kernel-2.4.27-0vl7.6aac.src.rpm
が出来上がる

VineLinux 3.1 インストール CD の作成

Vine3.1のCDイメージをマウント
$ cd ~
$ mkdir vine3.1tmp
$ mount -t iso9660 -o loop Vine31-i386.iso vine3.1tmp

作業用フォルダにコピー
$ mkdir vine3.1
$ cp -aR /mnt/cdrom vine3.1
$ chmod +w -R vine3.1

$ umount vine3.1tmp
$ rm -r vine3.1tmp

CD ブートイメージのカーネルとモジュールを kernel-BOOT-2.4.27-0vl7.6aac.i386.rpm と入れ替えるため、rpm からホームディレクトリ上に作成した kerneltmp ディレクトリに展開する。
$mkdir kerneltmp
$cd kerneltmp
$rpm2cpio ../rpm/RPMS/i386/kernel-BOOT-2.4.27-0vl7.6aac.i386.rpm | cpio -id

CD ブートのカーネルを入れ替える。
$cp ~/kerneltmp/boot/vmlinuz-2.4.27-0vl7.6aacBOOT ~/vine3.1/isolinux/vmlinuz

kernel-BOOT-2.4.27-0vl7.6pe.i386.rpm のモジュールを集めてmodules.cgz を作成する。階層は 2.4.27-0vl7.6peBOOT のみとする。
$cd ~/kerneltmp/lib
$mkdir 2.4.27-0vl7.6aacBOOT
$cd 2.4.27-0vl7.6aacBOOT
$find ../modules -type f -name ‘*.o’ -print -exec cp {} . \;
$cd ..
$find 2.4.27-0vl7.6aacBOOT -name ‘*.o’ -print | cpio -o –file=modules.cpio –format=newc
$gzip modules.cpio
$mv modules.cpio.gz modules.cgz

CD ブートのモジュールを modules.cgz を置き換える。ブート時のモジュールが入っているイメージは isolinux の gzip された ext2 である initrd.img に格納してある。initrd.img を gzip で解凍後、ループバックでマウントして置き換えをする。
$cd ~/vine3.1/isolinux
$cp initrd.img initrd.ext2.gz
$gzip -d initrd.ext2.gz
$mkdir ext2tmp
#mount -o loop initrd.ext2 ext2tmp
#chown -R 自分:所属グループ ext2tmp
$cp ~/kerneltmp/lib/modules.cgz ext2tmp/modules

initrd.img を作り直す。
#umount ext2tmp
$rm -r ext2tmp
$gzip initrd.ext2
$mv initrd.ext2.gz initrd.img

インストールされるカーネルを入れ替える。kernel-pcmcia-cs-3.2.7-0vl3.i386.rpm は残す。
$rm vine3.1/Vine/RPMS/kernel-[2hs]*
$cp rpm/RPMS/i386/*/Vine/RPMS
$cp rpm/RPMS/i686/*/Vine/RPMS

CD 上のパッケージを置き換えた場合、vine3.1/Vine/base の hdlistと hdlist2 を更新しなければならない。このためにgenhdlistプログラムを使用するが、Vine3.1のCDには見当たらない。そこで、VineLinux2.6FTP (または CR)インストール CDの/Vine/base/stage2.img をループバックマウントしてgenhdlist コマンドをvine31/Vine/baseに取り出し実行する。
$cd ~
$mkdir vine26tmp
$mkdir vine26cd
$mount -t iso9660 -o loop Vine26r4-i386.iso vine26cd
$cp ~/vine26cd/Vine/base/stage2.img .
#mount -o loop stage2.img vine26tmp
$cp vine26tmp/usr/lib/anaconda-runtime/genhdlist vine3.1/Vine/base
#umount vine26tmp
$rm -r vine26tmp
#umount vine26cd
$rm -r vine26cd
$cd ~
$cd vine31/Vine/base
$./genhdlist ../../

カーネルを入れ替えた VineLinux3.1 の CD に焼くため ISO イメージを作成する。
$cd ~
$mkisofs -o vine31.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table -R -J vine3.1

vine31.iso を適当な CD ライティングソフトで書き込む。