読者です 読者をやめる 読者になる 読者になる

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」って感じのが出てコケました。これでちょっとはまりました。