Shoken Startup Blog

KitchHike Founder/CTO

PXEでDebian/Ubuntuをネットワークインストール

静音・省消費電力・省スペースな自宅用Linuxサーバ構築 その3


静音・省消費電力・省スペースな自宅用Linuxサーバ構築 その1
静音・省消費電力・省スペースな自宅用Linuxサーバ構築 その2


今回は、空のHDにPXEブートを使用してDebian/Ubuntuをネットワークインストールした方法を書きます。


富士通のノートパソコン:FMV-830MTにLinuxをインストールする方法ですが、このパソコンにはCDドライブがついていません。なので、インストール方法は、

  1. 外付けCDドライブからブート
  2. 外付けFDドライブからブート
  3. HDドライブを外し、別のマシンでインストールする
  4. PXEブートを使用したネットワークインストール

になります。
1は手持ちの外付けCDドライブでブートしなかったので×。
2はDebianのインストーラがUSB接続のFDDを認識できなかったので×。
3は1.8インチHDDを接続できるマシンを持っていなかったので×。

ということで、4のPXEブートを使用したネットワークインストールとなりました。

f:id:sfujisak:20080301211808j:image

上の画像の左から
サーバ:Dell Inspiron 6000(Ubuntu 7.10)
ルータ:BUFFALO Air Station
クライアント:FUJITSU FMV-830MT

条件・必要なもの

  • クライアントがPXEブートに対応していること
  • クライアントのMACアドレス
  • ルータ
  • ISPのDNS
  • DHCPとTFTPを稼動させるサーバ(WindowsでもLinuxでもOK)


上記がそろっていれば、ネットワークインストールができます。

準備

まずは、クライアント(インストールするマシン)のBIOSをPXEからブートするように設定します。
もしOSがインストールされているマシンだったら、OSが起動する前に黒い画面でPXE〜みたいな文字が表示されればOK。

クライアントのMACアドレスがわからなくても途中でわかるからとりあえずOK。

ルータのDHCP機能をOFFにすること。おそらくLANケーブルにつないで192.168.0.1やら192.168.11.1やらにブラウザでアクセスして設定するはず。詳しくはそのルータのマニュアルを参照。

ISPのDNSは、Linuxをつなげているなら、/etc/resolve.confで確認できる。

最後に、DHCPとTFTPを稼動させるサーバの準備。
今回は、Ubuntu 7.10をインストールしてあるDellのノートPCをサーバに使った。
まずはパッケージのインストール

$ sudo apt-get install dhcp3-server
$ sudo apt-get install tftpd-hpa
$ sudo apt-get install tftp
$ sudo apt-get install inetutils-inetd

dhcp3-serverをインストールした後に

Starting DHCP server: dhcpd3 failed to start - check syslog for diagnostics.
invoke-rc.d: initscript dhcp3-server, action "start" failed. 

とのエラーが出るが、これから設定するので気にしない。

ブートファイルの準備

Debian Etchをインストールするなら、

$ cd /var/lib/tftpboot
$ sudo wget http://ftp.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
$ sudo tar xvf netboot.tar.gz

Ubuntu feisty(7.04)をインストールするなら、

$ cd /var/lib/tftpboot
$ sudo wget http://archive.ubuntu.com/ubuntu/dists/feisty/main/installer-i386/current/images/netboot/netboot.tar.gz
$ sudo tar xvf netboot.tar.gz

設定

/etc/default/dhcp3-server

INTERFACES=""INTERFACES="eth0"


/etc/dhcp3/dhcpd.conf
ファイルの末尾に追記

allow booting;
allow bootp;

subnet 192.168.0.0 netmask 255.255.255.0{
        range 192.168.0.2 192.168.0.10;//適当
        option routers 192.168.0.1;//たぶんこのままでOK
        option broadcast-address 192.168.0.255;//たぶんこのままでOK
	option domain-name-servers xxx.xxx.xxx.xxx;//ISPのDNSのアドレス
        }
host lifebook{
        filename "/pxelinux.0";//絶対このまま
        hardware ethernet 00:0B:xx:xx:xx:xx;//クライアントのMACアドレス
        fixed-address 192.168.0.5;//range内のアドレスなら何でも良い
        }

クライアントのMACアドレスがわからない場合は、とりあえず適当に書いておく。

もし、ファイルの最初のほうにoption domain-nameやoption domain-name-serversが書いてあったら、
コメントアウトしておくと良いかも。

dhcp3-serverを再起動

$ sudo /etc/init.d/dhcp3-server restart

DHCPの確認

クライアントをネットワークにつないでPXEブートさせた時、DHCP〜と表示されたらOK。

TFTPの確認

# su -
# cd /var/lib/tftpboot/
# touch test.txt
# tftp localhost
tftp> get test.txt
Received 6 bytes in 0.1 seconds
tftp> quit

上記のように表示されたらOK。

インストール

ここまでの設定が終わったら、クライアントをネットワークにつないでPXEブートさせる。
クライアントのMACアドレスはここで表示される。
installerが起動したら成功!

f:id:sfujisak:20080301224005j:image



参考にしたページ
PXEを利用してDebianをネットワークインストールする - The dream is invincibility.
PXEブートでUbuntuを導入する
: アメコロガシ