年取ると記憶力が低下して...(「ご飯はまだかいの」ってほっとけ)。ちうわけで「忘れない」用Linux超初心者の私的めも。ほのかにマニアックな香り...(w
とりあえず(なんか最近こればっかだなぁ...)、Linux のインストーラとHTTP-FUSE-KNOPPIX 5.0.1をネットワークブートさせるのです。やるべきことはおおまかに以下の3点。
- TFTPサーバ
- DHCPサーバ
- syslinux(pxelinux)
- @IT:PXEネットワークブート用サーバを構築するには
- PXEを使ったネットワークブート - PCあれこれさん
- Vine Linux 4.0 をネットワークブートでインストール(サーバはDebian sarge) - 某所の駄日記さん(w)
■ 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のネットワーク用インストーラなど。
- Vine 4.2 Vine-4.2/i386/images/pxeboot
- Debian lenny netboot/debian-installer/i386
- Fedora 1010/Fedora/i386/os/images/pxeboot
- Ubuntu hardy netboot/ubuntu-installer/i386
- Ubuntu Intrepid Ibexnetboot/ubuntu-installer/i386
下記は内容古いです...
- 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