SSブログ

Aspire one(AO150) NetBSD pxebootインストール (NetBSD 5.1R、2011/01/03) [その他OS]

結局、FreeBSDで無線LANが満足に使えないため、どこに問題があるのかを切り分けるのも含め、他のOSをインストールしてみることにしました。候補に挙がったのはNetBSDとLinuxです。しかしAspire oneにはFDドライブもCDドライブもなく、まずインストールの方法から躓くことになりました。そういった意味で、USBフラッシュ向けインストールイメージを用意してくれているFreeBSDって、本当にありがたいですね。
インストール用ISOイメージの中身をUSBフラッシュに焼き直してUSBフラッシュブートでインストールするという方法で、CentOSをインストールしようと心を決めたのですが、公式TorrentのISOイメージのダウンロードが遅く(4GB)、その横であっという間にNetBSDの公式TorrentのISOイメージがダウンロードできてしまった(230MB)ため、結局はNetBSDをインストールすることにしました。

ISOイメージは手元にあるもののフォーマットの違いにより当然ながらUSBフラッシュブートに対応していないため、どうやってインストールしようかと悩みます。ISOイメージをUSBフラッシュブートイメージに変換する素敵なスクリプトをメーリングリストで発見しましたが、NetBSD上で動かす必要があり撃沈。FD用ビッグイメージ(1.44MBではなく3.6MBのもの)をUSBフラッシュに書き込んで起動させてみましたが、ブートはできるもののハードディスクが見えなくなり起動できず。
そうなると必然的にpxebootによるネットワークインストールしか道はないわけです。(実はUSB FDドライブもFDもないわけではないのですが、何枚もイメージを書き込んでブートするのが面倒) しかもNetBSDは圧倒的に情報量が少ない。とりあえずFreeBSDでやったように見よう見まねで環境を作ってみることにしました。最初に行っておきますが、NetBSDに関してはド素人のため間違った手順や冗長な手順を書いているかもしれませんがご容赦を。(精査できていないため、後者は絶対にあります)

(1)ISOイメージの展開とコピー(記述がない限り、全てTFTPサーバであるFreeBSD上で実行)
# mdconfig -a -t vnode -f ./i386cd-5.1.iso
# mount_cd9660 /dev/md1 /mnt
# cp -r /mnt/* /home/pxeboot/

(2)pxeboot用ブートイメージのコピー
# cp /home/pxeboot/i386/installation/misc/pxeboot_ia32.bin /home/pxeboot/

(3)TFTPサーバの設定(ウチはxnetd.conf)
# cat /usr/local/etc/xinetd.conf
service tftp
{
        port            = 69
        server          = /usr/libexec/tftpd
        server_args     = -l -s /home/pxeboot
        socket_type     = dgram
        user            = root
        wait            = yes
}

(4)DHCPサーバの設定
option domain-name "localnet";
option domain-name-servers 192.168.0.1;
option routers 192.168.0.1;

subnet 192.168.0.0 netmask 255.255.255.0 {
        host pxeboot {
                hardware ethernet 00:11:22:33:44:55;
                fixed-address 192.168.0.200;
                filename "pxeboot_ia32.bin";
                next-server 192.168.0.1;
                option root-path "/home/pxeboot";
        }
}

(5)/home/pxebootをNFSで公開

基本的にはこれで完了。PXEブート時に待っていると以下のメッセージが表示されるため、カウントダウンの5秒以内に何かキーを押し、boot~のところを入力します。緑色の文字列が流れ始めたら成功です。
Press return to boot now, any other key for boot menu
> boot tftp:netbsd

と、ここに来て最後のNFSマウントで失敗する模様。FreeBSDとNetBSDのマウントのため?バージョンの違い?ポート番号の違い?相性?と原因は不明ですが、とりあえずこちらは放置。

仕方ないのでNFSを使わない形でのブートに変更します。ドキュメントがなかったので、ブートイメージの変更についてはなんとなくでやってみたところ無事成功しました。(結果オーライだけど、本当に合ってる?)
# cp /home/pxeboot/i386/binary/kernel/netbsd-INSTALL_FLOPPY.gz /home/pxeboot/
# cd /home/pxeboot/
# gunzip netbsd-INSTALL_FLOPPY.gz

Press return to boot now, any other key for boot menu
> boot tftp:netbsd-INSTALL_FLOPPY

これでFDブート相当で立ち上がるので後はFTPやHTTPでネットワークインストールを行います。これでAspire oneに無事インストールできました。最初からFDイメージを書き込んでブートした方が早かったみたいですねぇ。

参考URI
http://www.netbsd.org/docs/network/netboot/intro.i386.html
http://bsdsupport.org/2007/01/netbsd-pxe-boot-install-without-nfs/

共通テーマ:日記・雑感