PXEブートでDebian Installerを起動してDebianをインストール

DebianをCD/DVDドライブもなくUSBメモリからも起動できないマシンにインストールするため、Debian Installerをネットワーク越しに起動するようにした。

dhcpサーバーとtftpを使うのでインストール。

# aptitude install dhcp3-server tftpd-hpa

/etc/dhcp/dhcpd.confにdhcpの範囲などを書く

# option definitions common to all supported networks...
option domain-name "nofuture.tv"; ← ドメイン名を書く
option domain-name-servers 192.168.0.1, 192.168.0.100; ← ネームサーバーを書く

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.51 192.168.0.61 ; ← レンジは192.168.0.51から192.168.0.61
  option routers 192.168.0.100; ← ゲートウェイを書く
}

host di {
  hardware ethernet 00:0f:1f:13:e0:1f; ← ブートさせたいマシンのMACアドレスを書く
  filename "pxelinux.0"; ← Debian Installerのファイル名
}

/etc/default/isc-dhcp-serverにdhcpサーバーに使うインターフェース名を書く。

INTERFACES="eth0" ←インターフェース名を書く

再起動する

# service isc-dhcp-server restart

debian installerをダウンロードしてtftp-hpaのディレクトリに展開します。

# cd /srv/tftp/
# http://ftp.jp.debian.org/debian/dists/squeeze/main/installer-i386/current/images/netboot/netboot.tar.gz
# tar xvfj netboot.tar.gz

/etc/default/tftpd-hpaは特に変更することはないです。

tftpdを再起動する

# service tftp-hpa restart

インストールする対象マシンのBIOSをPXEブートするように変更して、マシンを再起動すれば、dhcpでdebian installerを母艦から取ってきて起動すると思います。

トラブルシュート

  • PXEブートしたときdhcpでアドレスが取れているか確認。
  • dhcpd.confにPXEブートさせたいファイル名はtftpのルートから書く。 × filename “/srv/tftp/pxelinux.0” ○ filename “pxelinux.0”
  • /etc/default/isc-dhcp-serverはデフォルトでは空になっているので、きちんとインターフェース名を書く。