Vine Linux 4.1 で PXEネットワークブート用サーバの設定

年取ると記憶力が低下して...(「ご飯はまだかいの」ってほっとけ)。ちうわけで「忘れない」用Linux超初心者の私的めも。ほのかにマニアックな香り...(w

とりあえず(なんか最近こればっかだなぁ...)、Linux のインストーラとHTTP-FUSE-KNOPPIX 5.0.1をネットワークブートさせるのです。やるべきことはおおまかに以下の3点。

  • TFTPサーバ
  • DHCPサーバ
  • syslinux(pxelinux)

戻ります

DHCPサーバ機能をストップ

ルータなど他にDHCPサーバがネットワーク内にある場合は機能を停止しておきませう。(そんだけ...)

戻ります

NICの設定を固定

DHCPサーバになりますから、固定にしないと..です。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

あっと、# netconfig でもよろしおま〜

戻ります

TFTPサーバのインストール

tftpサーバをインストール(ついでにクライアントも)

# apt-get install tftp tftp-server
  • tftpboot用ディレクトリを作成しておく
# mkdir -p /var/lib/tftpboot/pxelinux.cfg

/tftpboot(/直下)でいいのかも...

  • /etc/inetd.confを編集
# vi /etc/inetd.conf
<略>
tftp    dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd -s /var/lib/tftpboot
<略>

コメントアウトを外してディレクトリを指定する

戻ります

ネットブート用OS/インストーラをダウンロード

とりあえず、HTTP-FUSE-KNOPPIX 5.0.1 と Vine Linux 4.1 のインストーラを準備。

必要なファイルをダウンロード。tftpboot ディレクトリ以下に各々ディレクトリを作成して保存。

HTTP-FUSE-KNOPPIX 5.0.1

isoイメージ内のisolinuxディレクトリ内のファイルをコピー。

$ wget []http://unit.aist.go.jp/itri/knoppix/http-fuse/httpfuse-trusted_20061101.iso[]
# mkdir /mnt/iso
# mount -o loop  httpfuse-trusted_20061101.iso /mnt/iso
# mkdir /var/lib/tftpboot/knoppix-fuse
# cp /mnt/iso/boot/isolinux/* /var/lib/tftpboot/knoppix-fuse
Vine Linux 4.14.2 のインストーラ

PXEブート用カーネル(vmlinuz)とRamdiskイメージ(initrd.img)をコピー。

$ wget []http://www.ring.gr.jp/pub/linux/Vine/Vine-4.2/i386/images/pxeboot/vmlinuz[]
$ wget []http://www.ring.gr.jp/pub/linux/Vine/Vine-4.2/i386/images/pxeboot/initrd.img[]
# mkdir /var/lib/tftpboot/vine-install
# cp vmlinuz /var/lib/tftpboot/vine-install
# cp initrd.img /var/lib/tftpboot/vine-install

戻ります

PXE(syslinux)のインストール

  • syslinuxのインストール
# apt-get install syslinux
  • PXEブートの設定ファイルを作成
# vi /var/lib/tftpboot/pxelinux.cfg/default

knoppixはコピーしたisolinux.cfgの項目を抜き出してパスを修正。promptを0にするとプロンプトは出ずにdefaultで指定されたknoppixが起動する。

default knoppix
prompt 1
label knoppix
      kernel knoppix-fuse/linux
      append ramdisk_size=100000 init=/etc/init lang=ja.utf8 apm=power-off vga=791 initrd=knoppix-fuse/minirt.gz nomce quiet BOOT_IMAGE=knoppix
label memtest
      kernel knoppix-fuse/memtest
      append foo
label vine
      kernel vine-install/vmlinuz
      append load initrd=vine-install/initrd.img
  • pxelinux.0 をtftpディレクトリにコピー
# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

戻ります

DHCPサーバをインストール

  • dhcpをインストール
# apt-get install dhcp
  • dhcpd.confのサンプルファイルを参照してみる
# cat /usr/share/doc/dhcp-3.0.4/dhcpd.conf.sample
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;

        option nis-domain               "domain.org";
        option domain-name              "domain.org";
        option domain-name-servers      192.168.1.1;

        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 192.168.0.128 192.168.0.254;
        default-lease-time 21600;
        max-lease-time 43200;

        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}
  • 参考にして/etc/dhcpd.confを作成
# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;
        option domain-name              "palm84company";
        option domain-name-servers      192.168.0.1;
        filename "pxelinux.0";
        next-server 192.168.0.254;
        option time-offset              -18000; # Eastern Standard Time
        range dynamic-bootp 192.168.0.250 192.168.0.253;
        default-lease-time 21600;
        max-lease-time 43200;

}

戻ります

サービスの再起動と確認

# service dhcpd restart 
# service inet restart  
確認
# netstat -ptua
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態        PID/Program name
<略>
udp        0      0 *:bootps                *:*                                 4773/dhcpd
udp        0      0 *:tftp                  *:*                                 4823/inetd
<略>
# netstat -ptuan
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態        PID/Program name
<略>
udp        0      0 0.0.0.0:67              0.0.0.0:*                           4773/dhcpd
udp        0      0 0.0.0.0:69              0.0.0.0:*                           4823/inetd
<略>
  • tftpでダウンロードできるか確認
$ tftp 192.168.0.254
tftp> get pxelinux.0
tftp> quit
  • ファイルは正常か確認
$ cmp pxelinux.0 /var/lib/tftpboot/pxelinux.0

何も表示されなければおk

戻ります

めも

Linuxのネットワーク用インストーラなど。

下記は内容古いです...

Debian etch インストーラ
  • ファイルをダウンロードしてコピー
$ mkdir debian
$ cd debian
$ wget []http://http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz[]
$ wget []http://http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/linux[]
$ su
# cp -r ../debian /var/lib/tftpboot
  • PXE設定ファイルを編集(追記)
# vi /var/lib/tftpboot/pxelinux.cfg/default
label debian
      kernel debian/linux
      append vga=normal initrd=debian/initrd.gz
Fedora 8 インストーラ
  • ファイルをダウンロードしてコピー
$ mkdir fedora
$ cd fedora
$ wget []http://www.dnsbalance.ring.gr.jp/pub/linux/fedora/linux/releases/8/Fedora/i386/os/images/pxeboot/vmlinuz[]
$ wget []http://www.dnsbalance.ring.gr.jp/pub/linux/fedora/linux/releases/8/Fedora/i386/os/images/pxeboot/initrd.img[]
$ su
# cp -r ../fedora /var/lib/tftpboot

http/ftpインストールの際ディレクトリはpub/linux/fedora/linux/core/6/i386/os/ サイト(httpなら)www.ring.gr.jp、ディレクトリ pub/linux/fedora/linux/releases/8/Fedora/i386/osを指定

  • PXE設定ファイルを編集(追記)
# vi /var/lib/tftpboot/pxelinux.cfg/default
label fedora
      kernel fedora/vmlinuz
      append initrd=fedora/initrd.img
Ubuntu feisty インストーラ
$ mkdir ubuntu
$ cd ubuntu
$ wget []http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives/dists/feisty/main/installer-i386/current/images/netboot/386/ubuntu-installer/i386/linux[]
$ wget []http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives/dists/feisty/main/installer-i386/current/images/netboot/386/ubuntu-installer/i386/initrd.gz[]
$ su
# cp -r ../ubuntu /var/lib/tftpboot
  • PXE設定ファイルを編集(追記)
# vi /var/lib/tftpboot/pxelinux.cfg/default
LABEL linux
      kernel ubuntu/linux
      append vga=normal initrd=ubuntu/initrd.gz
memtest / FreeDOS

※memtestは上のKNOPPIXでも設定してますが...

  • ファイルをダウンロードしてコピー
$ mkdir rescuecd
$ cd rescuecd
$ wget []http://downloads.sourceforge.net/systemrescuecd/systemrescuecd-x86-0.3.3.iso[]
$ su
# mount -o loop systemrescuecd-x86-0.3.3.iso /tmp
# mkdir /var/lib/tftpboot/rescuecd
# cp /tmp/isolinux/memdisk /var/lib/tftpboot/rescuecd
# cp /tmp/bootdisk/freedos.img /var/lib/tftpboot/rescuecd
# cp /tmp/bootdisk/memtestp.img /var/lib/tftpboot/rescuecd
  • PXE設定ファイルを編集(追記)
# vi /var/lib/tftpboot/pxelinux.cfg/default
label freedos
      kernel rescuecd/memdisk
      append initrd=rescuecd/freedos.img
label memtest2
      kernel rescuecd/memdisk
      append initrd=rescuecd/memtestp.img