僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
PXEBootで有線接続された別マシンのISOイメージ(Ubuntu-14.04, i386)
を起動させる。
DVDをNFSで/にマウントさせる。
適当に検索してどうにかできた。
環境はUbuntu-12.04LTS。まだ14.04に上げていない...
必要なパッケージはsyslinux, tftpd-hpa, isc-dhcp-server, ntfs-kernel-serverといったところか。
まずDHCP。
dhcpサーバは filename で送信するファイルにpxelinux.0を指定する。
これは/usr/lib/syslinuxにあるので、 /var/lib/tftpboot/の下にコピーする。
ddns-update-style none;
option domain-name-servers $DNS_SERVER1, $DNS_SERVER2 ...;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
allow booting;
allow bootp;
subnet ${LOCAL_NET}.0 netmask 255.255.255.0 {
range ${LOCAL_NET}.50 ${LOCAL_NET}.80;
option routers ${LOCAL_NET}.1;
filename "pxelinux.0";
}
次にnfs。isoイメージをマウントしておき、/etc/exportsに一行 書いて、 exportfs -ra。
$MOUNTPOINT \ ${LOCAL_NET}.0/24(rw,no_root_squash,async,insecure,subtree_check)
それからtftpd。ここが嵌った。結局、 /var/lib/tftpboot/pxelinux.cfg/defaultはこうなった。
default live label live kernel $MOUNTPOINT/casper/vmlinuz append initrd=$MOUNTPOINT/casper/initrd.lz \ file=$MOUNTPOINT/preseed/ubuntu.seed boot=casper \ netboot=nfs nfsroot=${NFS_SERVER}:$MOUNTPOINT \ quiet splash --
tftpd-hpaは、手元環境ではrestartしないと、なんかうまくいかない。
nfsやdhcpなどは、通常は切っておく。起動スクリプトはこんな感じ。
#!/bin/sh mount -r -o loop ISOIMAGE $MOUNTPOINT service nfs-kernel-server start service isc-dhcp-server start service tftpd-hpa restart echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s ${LOCAL_NET}.0/24 \ -o $NIC -j MASQUERADE
この設定ではinetdは要らないようだ。切っておいても別状なかった。
古いPCの2,3台でデスクトップが起動し、Netにも接続できた。
まだ、efiなPCは起動できない。
それからtftpdでなくhttpを使う話などもあったが、これも
そのうち、そのうち...
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。