PXEbootでVine Linux 4.2をインストール
きのう中古のhttp://www.tlt.co.jp/pc/catalog/ss/010228ds/を手に入れたのだけど、OSが入ってなかったので今日になってセットアップ。CDドライブがないから、USBのを使おうかと思ったけど、どこにしまったか忘れちゃってて探すのも面倒なので、PXEbootを試してみた。やり方を忘れる前にメモ。セットアップするOSは、この前リリースされたばっかりのVine Linux 4.2。サーバには、別のPCにインストールしたVine Linux 4.2を使うけど、設定が同じならOSは何でもいいはず。
使うのは、DHCPサーバとTFTPサーバとNFSサーバ。PXEbootしたあと外のFTPサーバからインストールするだけならNFSサーバはいらないけど、今回は外につながないでNFSでインストールしたいのでこれで。
- 参考にしたサイト
- http://ryusai.hp.infoseek.co.jp/TPX31-01.htm というか、ここの手順とほとんど同じ。面倒なところを一部簡略化。
TFTP用のディレクトリを作る
どこでもいいのでTFTPでダウンロードするディレクトリを作る。今回は/tftpというのをルートディレクトリに作ってしまう。
$ sudo mkdir /tftp
nobodyとかのユーザで動かすことになると思うので、そのあたりのユーザが書き込みもできるようなパーミッションにしておく必要があるかも。
syslinuxをもらってくる
ftp.kernel.orgに置いてあるsyslinuxの最新版をもらってくる。今日の時点でftp://ftp.kernel.org/pub/linux/boot/syslinux/ にあるsyslinux-3.54.zipをダウンロード。tar.bz2とかtar.gzのほうはソースだけっぽいので、そっちを持ってくるとコンパイルしなきゃいけないみたいだけど、面倒なのでバイナリっぽいのが入ってるzipの方を使う。
こいつを
$ unzip syslinux-3.54.zip
で展開。ZIPファイルの方だとなぜかsyslinux-3.54っていうディレクトリ掘ってくれないので、先にディレクトリ作ってからそっちに展開した方がよさげ。で、展開したファイルの中から、「pxelinux.0」っていうファイルを探して、さっき作ったTFTP用ディレクトリにコピーする。
$ cp pxelinux.0 /tftp/
DHCPサーバの設定
/etc/dhcpd.confを書く。こんな感じ。
server-identifier 192.168.0.200; ddns-update-style interim; shared-network DHCP { option routers 192.168.0.200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.150; filename "pxelinux.0"; } }
IPアドレスとかは適当。serer-identifireはDHCPサーバ自体のIPアドレスを書く。
本当はMACアドレスとかで割り当てるIPアドレスとか制限した方がいいんだろうけど、面倒なのでやらない。この設定のDHCPサーバで実運用すると不都合があるはずなので、あくまで今回PXEbootでセットアップするための、おそらく最低限の設定ということで。だいたい1台セットアップするだけなのにこんなにIPアドレスレンジ設定する必要ない。1個で十分。
インストールイメージの準備
Vine LinuxのCDをマウントして、それのimages/pxeboot ディレクトリにあるvmlinuzとinitrd.imgをTFTP用ディレクトリにコピーする。ここではCD-ROMそのものを使うけど、別にISOイメージをループバックマウントするのもあり。
$ cd /media/Vine\ Linux\ 4.2\ for\ IA32/images/pxeboot/ $ cp vmlinuz initrd.img /tftp/
CD自体はそのままマウントしておく。
NFSの設定
/etc/exportsにVine LinuxのCDのマウントポイントを書く。そのまま/media/Vine\ Linux\ 4.2\ for\ IA32を書くとうまくマウントできない?みたいなので、ルートディレクトリ直下にシンボリックリンクを作ってしまう。
$ cd / $ sudo ln -s /media/Vine\ Linux\ 4.2\ for\ IA32 /vine $ vi /etc/exports
exportsの中身はこんな感じ。
/vine *(ro)
PXEbootインストール用の設定
ほかのWebサイトとか見てると必須ではなさそうな感じだったけど、どうもこれがないと動かなかったのでやる。TFTP用ディレクトリにsyslinuxの設定ファイルを作って書く。
$ cd /tftp/ $ mkdir pxelinux.cfg $ cd pxelinux.cfg $ vi default
default は下記の内容にする。
DEFAULT install LABEL install kernel vmlinuz append load initrd=initrd.img devfs=nomount PROMPT 1 TIMEOUT 0
TFTPサーバを起動
こんな感じ。
$ sudo /usr/sbin/in.tftpd -l -c -s /tftp
ふつうはinetdから起動するんだろうけど。inetdから使いたいときは、/etc/inetd.confに
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -c -s /tftp
と書いてinetdを起動すればいいんだろうけど、試してないので正しいかどうか不明。どうせずっとTFTPサーバ使えるようにする気がないので、必要なときに自分で起動するようにした。各オプションの意味はマニュアル見れば載ってるけど、あとで調べるの面倒なので書いておく。
PXEbootする
PXEbootしたいPCをDHCP/TFTP/NFSサーバがつながっているネットワークにつないで、PXEbootで起動する。今回使ったhttp://www.tlt.co.jp/pc/catalog/ss/010228ds/だと、電源入れた直後のBIOS画面でF2を押して、Select boot deviceの画面にして、「[N]: Network(LAN)」を押す。そうするとPXEbootしてくれてsyslinuxが動くはず。そうしたらEnterでインストーラが起動する。
インストーラの設定
最初のうちはテキストモードでのインストールとほとんど変わらないみたい。言語はJapaneseを選択。キーボードはjp106で。インストール方法はNFSを選択。TCP/IPの設定はDHCPで。ネームサーバもらえなかったとか文句言われるけど、空白のままで続行。NFSサーバの設定は、NFSサーバ名にNFSサーバのIPアドレス、Vine Linuxディレクトリには/vineを指定。ここまで設定すると、Vine Linuxのグラフィカルインストーラが起動するので、いつも通りインストールする。
たぶんこの手順で設定ができると思う。そんなやり方じゃできねーYo!とかあれば指摘してやってください。
で、このPC手に入れたのはいいんだけど、バッテリーが消耗しきっててACアダプタつないでないと動いてくれない。どこかにまともなバッテリー落ちてないですかね。