EeePC の SSDが‥
[root@localhost ~]# hdparm -ft /dev/hdc /dev/hdc: Timing buffered disk reads: 8 MB in 3.54 seconds = 2.26 MB/sec [root@localhost ~]# hdparm -ft /dev/hdd /dev/hdd: Timing buffered disk reads: 8 MB in 3.55 seconds = 2.26 MB/sec [root@localhost ~]#
おいおい、ちょっと待て。...これは一体?
CentOS は見限った
SATAドライバが古いせいか、DMAがどうしてもonにならない。
というわけでCent止めー。
先輩の薦めもあって、出たばかりのMomonga Linux6にしました。やっぱり最新のディストリビューションはよいね。さっくり動いたよ。eeepcモジュールみたいなのが最初から入ってて、電源管理から何から良しなにうまい具合にしてくれます。起動も激早ええよ。
あと、これも先輩の勧めで、pxeサーバはwinアプリのtftp32に変えました。こいつも便利。今後は全部これでやろう。
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」って感じのが出てコケました。これでちょっとはまりました。
EeePC 900-x に CentOS5.3 をPXEブートでインストール #1
自宅サーバにしてるThinkpad t23の液晶パネルが完全死亡したので、EeePC 900-xに移行しました。
EeePC 900-xいいね。小さい、省電力、SSD、安い。自宅サーバにぴったりだ。
入れるOSは今使ってるのと同じCentOS5.3。900-xには光学ドライブなんてついてないので、普通はUSB外付けドライブからブートしてインストールするんだろうけど、今回は気合でPXEブートでインストールしてみた。いや、外付けドライブを持っていないわけではないんだけど、単にやってみたかったんだ。
CentOSに900-xのNICドライバが入っていないので、正直めんどくさいよ。動かしたいだけだったらここからの作業はお勧めしない。おとなしく外付けドライブ使いましょう。
- 構成
pxeサーバ(現サーバ): thinkpad23, CentOS5.3, 192.168.11.10
インストール先(新サーバ): EeePC 900-X
ブロードバンドルータを中心にした、192.168.11.0/24 なLAN内でやってます。
- 前準備
現サーバの方は、カーネルが既に2回ほど上がっているので、一番古いカーネル(最初にDVDインストールイメージにはいってたやつ)で再起動しておく。
新サーバはBIOSの設定を変更。OnBoard LAN Boot ROM: Disable > Enable。Boot Booster,Quick Boot: Enable > Disable。ブートデバイスシーケンスの先頭をネットワークブートに変更。
- pxeサーバの準備
dhcpdとかtftpdいれたりとか。この辺はググればいくらでも出てくるので書かない。
tftpの公開ディレクトリは以下のようにした。
/tftpboot/ |-- CentOS-5.3 |-- pxelinux.0 |-- pxelinux.cfg | `-- default `-- syslinux `-- menu.c32
menu.c32は/usr/lib/syslinux/にあるのをコピってます。ブート画面がテキストのメニューになるので素敵です。
pxelinux.cfg/defaultはこんな感じ。ローカルブート出来るようにてしておくと、後々便利。
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 Local LOCALBOOT 0
インストールイメージは、現サーバ作成時に使ったDVDイメージをt23の内臓ドライブからマウントして、apacheで公開。
# mkdir /mnt/iso # mount -o loop -t iso9660 /dev/cdrom /mnt/iso # cat<<EOT > /etc/httpd/conf.d/pxeboot.conf >Alias /CentOS-5.3 "/mnt/iso" ><Directory /mnt/iso> > Options MultiViews Indexes FollowSymLinks > Order deny,allow > Deny from all > Allow from 192.168.11.0/24 127.0.0.1 ></Directory> >EOT # service httpd restart
- initrdの準備
普通なら、ここで
# cp /mnt/iso/images/pxeboot/{initrd.img,vmlinuz} /tftpboot/CentOS-5.3/
とやって、クライアントをブートさせれば終了〜。なんだけど、initrdに900-XのNICのドライバが入ってないので、作り直さないといけない。
900-xのNICは、Attansic L2。ドライバのソースはここに落ちてる > http://ubuntuforums.org/showthread.php?t=429845。
まずは、現サーバ上でインストール。
# cd /usr/local/src/ # unzip L2-linux-driver # cd L2-linux-driver/ # make && make install
次に、DVDに入ってるpxeブート用のinitrdを展開。
# cd /usr/local/src # mkdir -p myimages/initrd_pxeboot # cd myimages/initrd_pxeboot # gzip -dc /mnt/iso/images/pxeboot/initrd.img | cpio -iuvmd # ls bin dev etc init modules proc sbin selinux sys tmp var
んで、中を弄る。ここは結構ハマった。最近のinitrdって造りが大分昔と違うので、ググっても役に立たない情報ばかり。結局、職場の先輩に助けを求めたら一瞬で調べてくれた。
まず、modules/modules.cgzの中にドライバが閉じ込められてるらしいので、これも展開。
# gzip -dc modules/modules.cgz | cpio -iuvmd ~ snip ~ 2.6.18-128.el5/i686/atp870u.ko 2.6.18-128.el5/i686/bnx2.ko 24300 blocks #
この中に、さっきコンパイルしたドライバを追加する。
# cp /lib/modules/`uname -r`/kernel/drivers/net/atl2/atl2.ko ./`uname -r`/i686/
で、固めなおす。
# find `uname -r` | cpio --quiet -c -o | gzip -c > modules/modules.cgz # rm -rf `uname -r`
コンフィグを編集する。編集するのはmodules/{module-info,modules.alias}の2つ。
modules-infoの方は大した内容じゃない。
# cat <<EOT >> modules/module-info >atl2 > eth > "Attansic L2 ethernet driver" >EOT #
modules.aliasはPCIのid(?)を書きこまないといけないので、それを調べて。
# depmod -a # modinfo atl2 ~ snip ~ alias: pci:v00001969d00002048sv*sd*bc*sc*i* ~ snip ~ # echo 'alias pci:v00001969d00002048sv*sd*bc*sc*i* atl2' >> modules/modules.alias
これで工事は終わり。
固めて、tftpの公開ディレクトリにつっこみます。カーネルも。
# find . | cpio --quiet -c -o| gzip -c > /tftpboot/CentOS-5.3/initrd-atl2plus_inst.img # cp /mnt/iso/images/pxeboot/vmlinuz /tftpboot/CentOS-5.3/
お疲れ様(というか疲れた)。これで準備は完了。
ブロードバンドルータのDHCP機能をoffって、新サーバを起動したらブートメニューが出るので、CentOS-5.3を選択。インストーラが起動するので、現サーバに置いたパッケージをHTTPで引っ張ってインストールです。
だがしかし、実はこれで終わりではない。新サーバにインストールしたOSには当然atl2ドライバが入って無いので、起動してもnetworkが立ち上がらないのだ。改めてインストールする必要がある。
ここでも、当然ながら外付け光学ドライブは使わない。ここで使ってしまっては負けだ。
続く。
けいはんなサイクルレース
一般入門クラスのC5Lに出走しました。初レースです。
結果は、先頭から約17秒遅れで18位(98名中)。
まー大体自身で予想していた通りとなりましたが、悔いが残るのは、足を残したまま、もがかずにゴールしてしまったこと。
普段仲間と走っているときもそうだが、自分は諦めが早い。
最終3週目の上り手前までは、先頭集団後端になんとか付いていたが、上りきったところで微妙に差をあけられてしまい、そのまま3人の追いグループの中でホームストレートを流してゴール。
3人の中では明らかに足も心肺も残っていたと思う。抜け出して単独でも追うべきだった。我ながら根性無しだな。
職場のバイト君は、一般中級クラスC3L(実質、趣味レベルの最高クラスと思われる)で19位と大健闘。
僕より3週も多い6週走って、Avgが2キロ以上も速い!! 1年ちょっとの経験で、この成績は脅威的。大したもんだ。