4
3

More than 5 years have passed since last update.

Debian7.7でPXEサーバを構築してDebianのインストーラとかClonezillaを起動したメモ

Last updated at Posted at 2014-11-22
  • PXE
    • サーバからDHCPでIPアドレスを貰ってTFTPで起動イメージを貰って起動したりできる仕組みらしい。
  • PXEサーバからネットワーク経由でイメージを提供するのでCDとかUSBとかを使わなくてもよく良くなる。
  • Wake-on-LANとかで一斉にマシンを起動させるだけでバックアップやリストアとかできる。
    • 大量の物理マシンのバックアップやリストアの手間を何とかできる。
  • 大掛かりにパッケージングされたソリューションよりも自分でやった方がたぶんトラブルシュート&カスタムしやすい。
    • たぶん。
  • 公式情報

サーバ側の準備の流れとしては以下のとおり。

  1. PXEな設定をしたDHCPサーバを準備する。
  2. TFTPサーバを準備する。
  3. 決められたとおりのディレクトリ階層で各種ファイルを配置する。

DHCPサーバ

インストールする。

aptitude install isc-dhcp-server

設定ファイルは以下のとおり。

/etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.2 192.168.100.254;
  host node-002 { hardware ethernet 00:00:00:00:00:02; fixed-address 192.168.100.2; }
  host node-003 { hardware ethernet 00:00:00:00:00:03; fixed-address 192.168.100.3; }
  filename "pxelinux.0";
}
  • メモ
    • 192.168.100.0の中でノードを管理する。
    • MACアドレスとIPアドレスを紐付けるようにしている。
      • マシン構成
        • 192.168.100.001: 親サーバ(node-001)
        • 192.168.100.002: 子サーバ(node-002)
        • 192.168.100.003: 子サーバ(node-003)
        • [...]
        • 192.168.100.254: 子サーバ(node-254)

再起動する。

service isc-dhcp-server restart
  • メモ
    • この段階で子ノードからIPアドレスのリースとping/pongの確認をしておく。
      • dhclient -r: IPアドレスのリリース
      • ifdown eth0
      • ifup eth0
      • ifconfig
    • 要するにfilename "pxelinux.0";を書くだけ?

TFTPサーバ

インストールする。

aptitude install tftpd-hpa

設定ファイルは以下のとおり。デフォルトのまま。楽。

FTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp/"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
  • メモ
    • Debianのデフォルト設定のまま使っている。

再起動する。

service tftpd-hpa restart

イメージの配置

Debian

Debianのネットワークブートイメージと関連ファイルをダウンロードしてそれを雛形につかう。Installing Debian via the Internetの左下からたどって、netbootの中のnetboot.tar.gzをダウンロードする。

wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/netboot.tar.gz

圧縮ファイルを展開して/srv/tftp/へ移動させる。

tar xzf netboot.tar.gz
mv pxelinux.0 /srv/tftp/
mv pxelinux.cfg /srv/tftp/
mv debian-installer /srv/tftp/
mv version.info /srv/tftp/

ここで子ノード(クライアント)を起動して、DHCPでIPアドレスを貰って、TFTPでpxelinux.0pxelinux.cfg/defaultを読み込んで、起動するかを確認。Debianのインストーラが起動すればOK。

Clonezilla

Debianのインストーラが起動するのを確認したら、後はフォルダ構成の問題。最終的にできたフォルダ構成は以下のとおり。

tree /srv/tftp/ -L 3
/srv/tftp/
├── images
│   ├── clonezilla
│   │   ├── filesystem.squashfs
│   │   ├── initrd.img
│   │   └── vmlinuz
│   └── debian
│       ├── debian-installer
│       ├── pxelinux.0 -> debian-installer/i386/pxelinux.0
│       ├── pxelinux.cfg -> debian-installer/i386/pxelinux.cfg
│       └── version.info
├── pxelinux.0 -> images/debian/debian-installer/i386/pxelinux.0
└── pxelinux.cfg
    └── default

これをするには、まず、Debianのイメージを/srv/tftp/images/debian/へ移動させる。

# イメージごとにディレクトリを作る
mkdir -p /srv/tftp/images/clonezilla/
# Debianのイメージと関連ファイル一式を移動
mv -r /srv/tftp/pxelinux.0       /srv/tftp/images/debian/
mv -r /srv/tftp/pxelinux.cfg     /srv/tftp/images/debian/
mv -r /srv/tftp/debian-installer /srv/tftp/images/debian/
mv -r /srv/tftp/version.info     /srv/tftp/images/debian/

次に、移動したイメージへのシンボリックリンクをはる。

# シンボリックリンクをはる。ただし、/srv/tftp/pxelinux.cfg/defaultだけはあとで自分で書く。
ln -s /srv/tftp/images/debian/pxelinux.0 /srv/tftp/pxelinux.0
mkdir /srv/tftp/pxelinux.cfg/
touch /srv/tftp/pxelinux.cfg/default

Clonezillaのイメージをダウンロードして展開する。基本的にはClonezilla Live on PXE Serverの通りにすれば良い。

以下のフォルダに展開した。

/srv/tftp/images/clonezilla/

/srv/tftp/pxelinux.cfg/defaultの内容は以下のとおり。各所に書かれているパスに注意する。

/srv/tftp/pxelinux.cfg/default
default images/debian/debian-installer/i386/boot-screens/vesamenu.c32

prompt 1
timeout 120
menu title - Boot Menu -

label Debian-7.7
menu label Debian 7.7
kernel images/debian/debian-installer/i386/linux
append priority=critical vga=788 initrd=images/debian/debian-installer/i386/initrd.gz

label Clonezilla-Live
menu LABEL Clonezilla Live
kernel images/clonezilla/vmlinuz
append initrd=images/clonezilla/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts="" ocs_live_batch="no" locales="" vga=788 nosplash noprompt fetch=tftp://192.168.100.1/images/clonezilla/filesystem.squashfs
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3