pxe boot (散らばっていたのを集結 興味深い net install)
Posted: 15/08/23(日) 10:48
pxe boot つまり networkから boot します。
従って usb , cd drive なくてもインストールできます。
特にpuppyの場合は ひょっとしたら HDDなしで走るパピーができるような気がします。
(というのは母艦の電源をおとしても そこにパピーは立っていました)
自分の限られた知識範囲では
pxe boot = dhcpd + tftpd と思ってます。
tahl やってみましたが、 今のところ PXE bootできません
改めて puppy_precise_5.7.1JP (これ no paeでしょう)の素晴らしさに思いを馳せます。
名前の preciseのとおり 実にきちんとつくられていて 日本人の仕事の 緻密な 正確さには圧倒されます。
平等院鳳凰堂、 春信の浮世絵などなど
母艦は archlinux と openbsdです。
tftpdがブートするないようはarchlinux と openbsdで一緒です。
ls -l /tftp/
total 530484
-rw-r--r-- 1 root wheel 87 Aug 22 21:10 AUTORUN.INF
-rw-r--r-- 1 root wheel 15086 Aug 22 21:10 PUPPY.ICO
-rw-r--r-- 1 root wheel 9590 Aug 22 21:10 PUPPYJP.ICO
-rw-r--r-- 1 root wheel 3463 Aug 22 21:10 README.HTM
-rwxr--r-x 1 root wheel 4976 Aug 22 21:10 READMEJA.HTM
-r--r--r-- 1 root wheel 2048 Aug 22 21:10 boot.catalog
-rw-r--r-- 1 root wheel 6356992 Aug 22 21:10 goffice-precise_571.sfs
-rw-r--r-- 1 root wheel 220049 Aug 22 21:10 grldr
-rw-r--r-- 1 root wheel 1886180 Aug 22 21:10 initrd.gz
-rw-r--r-- 1 root wheel 130727825 Aug 22 21:14 initrd.gz-big <ーーあとで作り方書きます
initrd.gz-big= initrd.gz+puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root wheel 116524 Aug 23 10:17 ldlinux.c32 <ーーーーーーーーーこれいるかな
-rw-r--r-- 1 root wheel 2005 Aug 22 21:10 menu-advanced.lst
-rw-r--r-- 1 root wheel 917 Aug 22 21:10 menu.lst
-rw-r--r-- 1 root wheel 128868384 Aug 22 21:11 puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root wheel 15888 Aug 22 20:58 pxelinux.0 <ーーー42975のは苦しい
drwxr-xr-x 2 root wheel 512 Aug 22 20:58 pxelinux.cfg <ーーー
-rwxr-xr-x 1 root wheel 309400 Aug 22 21:11 splash.xpm
-rw-r--r-- 1 root wheel 2802256 Aug 22 21:11 vmlinuz <ーーー
cat /tftp/pxelinux.cfg/default (sがいったかもしれないので 面倒なのでdefaultsもつくってます)
default pup
label pup
kernel vmlinuz
append load initrd=initrd.gz-big
ほんとにいるのは 上の <ーーー部分だけです。
1)archlinux
dhcpdもtftpdも 安易にdnsmasqで立ち上げます。
(puppy でもできるのはずですが、 tftpをたちあげられる dnsmasq.pet の所在が不明)
./comment-out.bat pxe-server.bat
ip link set enp9s0 up
ip addr add 192.168.11.1/24 dev enp9s0 <-----eth0 に 192.168.11.1/24 を割り当てただけ
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
systemctl restart dnsmasq <ーーーーーーーdnsmasqを起動しただけ
./comment-out.bat /etc/dnsmasq.conf
interface=enp9s0 <ーーーーーーーーーーeth0なかんじ
bind-interfaces
dhcp-range=192.168.11.10,192.168.11.12,12h
resolv-file=/etc/dnsmasq.resolv.conf
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftp
./comment-out.bat /etc/dnsmasq.resolv.conf
nameserver 8.8.8.8
dnsmasq 起動
2)openbsd
a) dhcpd$ ./comment-out.bat /etc/dhcpd.intefaces
bge0
$ ./comment-out.bat /etc/dhcpd.conf
option domain-name-servers 8.8.8.8;
subnet 192.168.12.0 netmask 255.255.255.0 {
option routers 192.168.12.1;
filename "pxelinux.0";
range 192.168.12.10 192.168.12.15;
}
b)サーバー起動
/etc/rc.d/dhcpd -f restart
tftpd /tftp
X)initrd.gz-bigの作り方
簡単にLinuxでします。
ls /p571/
initrd.gz
puppy_precise_5.7.1JP.sfs
vmlinuz
として
# cd p571/
# mkdir tmp
# cd tmp
# zcat ../initrd.gz |cpio -i
# cp ../puppy_precise_5.7.1JP.sfs ./
# find . | cpio -o -H newc | gzip -9 > ../initrd.gz-big
で終わりです。
確認は
# cd ../
# ls -l
-rw-r--r-- 1 root root 1886180 9月 24 03:14 initrd.gz
-rw-r--r-- 1 root root 130736064 9月 26 10:16 initrd.gz-big
-rw-r--r-- 1 root root 2802256 9月 24 03:14 vmlinuz
です。
後始末)
で これでネットブートで puppyがたちあがります。
ハードディクの土台のない浮草のようなパピーです。
でも fdisk で土台をほり ここをマウンドして 、そこへ cd して
母艦にsshdがうごいてるなら
sftp して /puppyフォルダに
vmlinuz
initrd.gz
puppy_precise_5.7.1JP.sfs
だけ連れてきた後、 根無し草puppyで grub4dosして ハードディスにブートローダーをいれたらおしまいです。
感じとして tahr が 上の方法ではブートできない。
そのPXEブートできない原因は ネットワークドライバあたりにあるのではと思います。
あるいは tahl 材料の initrd.gz-bigが大きすぎるからという意見もあろうかとおもいますが。
昔
viewtopic.php?f=16&t=2738&p=20466&hilit=pxe#p20469
に sfsを unsquash していらないものをのけてサイズを小さくする試行を書いてます。
こうすればサイズ自体は小さくなりますが、トレイアンドエラーでちょっとしんどそう。
面白いのは openbsdでも archlinuxでも /tftpの内容は一緒です。
puppyでも fatdog64ではできてるようです。
tahr で tahl を PXEの釣り竿で 釣れたら おもしろいのですがねえ
従って usb , cd drive なくてもインストールできます。
特にpuppyの場合は ひょっとしたら HDDなしで走るパピーができるような気がします。
(というのは母艦の電源をおとしても そこにパピーは立っていました)
自分の限られた知識範囲では
pxe boot = dhcpd + tftpd と思ってます。
tahl やってみましたが、 今のところ PXE bootできません
改めて puppy_precise_5.7.1JP (これ no paeでしょう)の素晴らしさに思いを馳せます。
名前の preciseのとおり 実にきちんとつくられていて 日本人の仕事の 緻密な 正確さには圧倒されます。
平等院鳳凰堂、 春信の浮世絵などなど
母艦は archlinux と openbsdです。
tftpdがブートするないようはarchlinux と openbsdで一緒です。
ls -l /tftp/
total 530484
-rw-r--r-- 1 root wheel 87 Aug 22 21:10 AUTORUN.INF
-rw-r--r-- 1 root wheel 15086 Aug 22 21:10 PUPPY.ICO
-rw-r--r-- 1 root wheel 9590 Aug 22 21:10 PUPPYJP.ICO
-rw-r--r-- 1 root wheel 3463 Aug 22 21:10 README.HTM
-rwxr--r-x 1 root wheel 4976 Aug 22 21:10 READMEJA.HTM
-r--r--r-- 1 root wheel 2048 Aug 22 21:10 boot.catalog
-rw-r--r-- 1 root wheel 6356992 Aug 22 21:10 goffice-precise_571.sfs
-rw-r--r-- 1 root wheel 220049 Aug 22 21:10 grldr
-rw-r--r-- 1 root wheel 1886180 Aug 22 21:10 initrd.gz
-rw-r--r-- 1 root wheel 130727825 Aug 22 21:14 initrd.gz-big <ーーあとで作り方書きます
initrd.gz-big= initrd.gz+puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root wheel 116524 Aug 23 10:17 ldlinux.c32 <ーーーーーーーーーこれいるかな
-rw-r--r-- 1 root wheel 2005 Aug 22 21:10 menu-advanced.lst
-rw-r--r-- 1 root wheel 917 Aug 22 21:10 menu.lst
-rw-r--r-- 1 root wheel 128868384 Aug 22 21:11 puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root wheel 15888 Aug 22 20:58 pxelinux.0 <ーーー42975のは苦しい
drwxr-xr-x 2 root wheel 512 Aug 22 20:58 pxelinux.cfg <ーーー
-rwxr-xr-x 1 root wheel 309400 Aug 22 21:11 splash.xpm
-rw-r--r-- 1 root wheel 2802256 Aug 22 21:11 vmlinuz <ーーー
cat /tftp/pxelinux.cfg/default (sがいったかもしれないので 面倒なのでdefaultsもつくってます)
default pup
label pup
kernel vmlinuz
append load initrd=initrd.gz-big
ほんとにいるのは 上の <ーーー部分だけです。
1)archlinux
dhcpdもtftpdも 安易にdnsmasqで立ち上げます。
(puppy でもできるのはずですが、 tftpをたちあげられる dnsmasq.pet の所在が不明)
./comment-out.bat pxe-server.bat
ip link set enp9s0 up
ip addr add 192.168.11.1/24 dev enp9s0 <-----eth0 に 192.168.11.1/24 を割り当てただけ
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
systemctl restart dnsmasq <ーーーーーーーdnsmasqを起動しただけ
./comment-out.bat /etc/dnsmasq.conf
interface=enp9s0 <ーーーーーーーーーーeth0なかんじ
bind-interfaces
dhcp-range=192.168.11.10,192.168.11.12,12h
resolv-file=/etc/dnsmasq.resolv.conf
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftp
./comment-out.bat /etc/dnsmasq.resolv.conf
nameserver 8.8.8.8
dnsmasq 起動
2)openbsd
a) dhcpd$ ./comment-out.bat /etc/dhcpd.intefaces
bge0
$ ./comment-out.bat /etc/dhcpd.conf
option domain-name-servers 8.8.8.8;
subnet 192.168.12.0 netmask 255.255.255.0 {
option routers 192.168.12.1;
filename "pxelinux.0";
range 192.168.12.10 192.168.12.15;
}
b)サーバー起動
/etc/rc.d/dhcpd -f restart
tftpd /tftp
X)initrd.gz-bigの作り方
簡単にLinuxでします。
ls /p571/
initrd.gz
puppy_precise_5.7.1JP.sfs
vmlinuz
として
# cd p571/
# mkdir tmp
# cd tmp
# zcat ../initrd.gz |cpio -i
# cp ../puppy_precise_5.7.1JP.sfs ./
# find . | cpio -o -H newc | gzip -9 > ../initrd.gz-big
で終わりです。
確認は
# cd ../
# ls -l
-rw-r--r-- 1 root root 1886180 9月 24 03:14 initrd.gz
-rw-r--r-- 1 root root 130736064 9月 26 10:16 initrd.gz-big
-rw-r--r-- 1 root root 2802256 9月 24 03:14 vmlinuz
です。
後始末)
で これでネットブートで puppyがたちあがります。
ハードディクの土台のない浮草のようなパピーです。
でも fdisk で土台をほり ここをマウンドして 、そこへ cd して
母艦にsshdがうごいてるなら
sftp して /puppyフォルダに
vmlinuz
initrd.gz
puppy_precise_5.7.1JP.sfs
だけ連れてきた後、 根無し草puppyで grub4dosして ハードディスにブートローダーをいれたらおしまいです。
感じとして tahr が 上の方法ではブートできない。
そのPXEブートできない原因は ネットワークドライバあたりにあるのではと思います。
あるいは tahl 材料の initrd.gz-bigが大きすぎるからという意見もあろうかとおもいますが。
昔
viewtopic.php?f=16&t=2738&p=20466&hilit=pxe#p20469
に sfsを unsquash していらないものをのけてサイズを小さくする試行を書いてます。
こうすればサイズ自体は小さくなりますが、トレイアンドエラーでちょっとしんどそう。
面白いのは openbsdでも archlinuxでも /tftpの内容は一緒です。
puppyでも fatdog64ではできてるようです。
tahr で tahl を PXEの釣り竿で 釣れたら おもしろいのですがねえ