EeePC 900-x に CentOS5.3 をPXEブートでインストール #2
前回の続き。
無事OSのインストールはできました。
旧サーバではLVMを使っていましたが、新サーバではLVMを使わず、hdcに「/」と「/boot」、hddに「/home」を割り当ててます。900-xのSSDは一個目が高速なSLC、2個目はMLCとなっているため、LVMは使う意味が無いと考えました。
さて、このままだとまたネットワークが上がらないので、改めてドライバをインストールします。これは簡単。
ドライバを組み込んだinitrd(インストーラ用じゃないやつ)をまた作って、それを使ってローカルのルートファイルシステムでブートさせます。
initrdは、前回のように面倒な手順を踏まずとも、mkinitrdで簡単に作れます。
# mkinitrd -f --preload atl2 /tftpboot/CentOS-5.3/initrd-atl2plus.img `uname -r`
そんで、pxelinux.cfg/defaultにlabelを追加します。
default syslinux/menu.c32 label CentOS-5.3 kernel CentOS-5.3/vmlinuz append load initrd=CentOS-5.3/initrd-atl2plus_inst.img devfs=CentOS-5.3/nomount end label LocalRoot kernel CentOS-5.3/vmlinuz append load initrd=CentOS-5.3/initrd-atl2plus.img root=/dev/hdc2 end label Local LOCALBOOT 0
「devfs=CentOS-5.3/nomount」を消したけど、そもそもこれに何の意味があるのか、わかんなかった。
それは置いておいて、これで900-xを起動してブートメニューでLocalRootを選べば、networkを起動した状態でOSが立ち上がります。
networkが起動してしまえばこっちのものなので、あとは旧サーバからNICドライバのソースを貰うなりして、ローカルでインストールすれば完了です。BIOSの設定を元に戻しても、完全自力で起動できる状態になりました。終わり。
おまけ。
CentOS-5.3/initrd-atl2plus.imgを作るとき、最初は一回展開してinitスクリプトを編集したんですが、
-- mkrootdev -t ext3 -o defaults,ro /dev/VolGroup00/LogVol00 ++ mkrootdev -t ext3 -o defaults,ro hdc2
起動オプションでroot=/dev/hdc2を付けるだけでよかったみたいです。
あと、RAMディスクイメージの名前は「initrd.img」だと、なぜか駄目みたいです。起動したときに「Can't load CentOS/initrd.img」って感じのが出てコケました。これでちょっとはまりました。