年取ると記憶力が低下して...(「ご飯はまだかいの」ってほっとけ)。ちうわけで「忘れない」用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