pxe を利用して net boot してpuppy のインストール
Posted: 14/09/27(土) 02:50
hatahataです。
dhcpd , tftpdだけでの解決が
https://docs.google.com/document/d/1aM_ ... l=en&pli=1
にありました。
# cd p571/
# ls p571/
initrd.gz vmlinuz puppy_precise_5.7.1JP.sfs
# mkdir tmp
# cd tmp
# zcat ../initrd.gz |cpio -i
# ls
DISTRO_SPECS bin etc lib proc pup_ro1 pup_ro3 pup_ro5 pup_ro7 pup_ro9 pup_z sys var
README.txt dev init mnt pup_new pup_ro2 pup_ro4 pup_ro6 pup_ro8 pup_rw sbin tmp
(ここに注目してください。 あとで引用していきます)
# cp ../puppy_precise_5.7.1JP.sfs ./
# find . | cpio -o -H newc | gzip -9 > ../initrd.gz-big
# cd ../
# pwd
/mnt/home/p571
# 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
さて
zcat ../initrd.gz |cpio -i したときに
# ls tmp/
DISTRO_SPECS bin etc lib proc pup_ro1 pup_ro3 pup_ro5 pup_ro7 pup_ro9 pup_z sbin tmp
README.txt dev init mnt pup_new pup_ro2 pup_ro4 pup_ro6 pup_ro8 pup_rw puppy_precise_5.7.1JP.sfs sys var
ができます。
# file puppy_precise_5.7.1JP.sfs
puppy_precise_5.7.1JP.sfs: Squashfs filesystem, little endian, version 4.0, 32877425919 bytes, 21034 inodes, blocksize: 7 bytes, created: Fri Jul 30 11:05:52 1926
なので
# unsquashfs puppy_precise_5.7.1JP.sfs
すると
squashfs-root
ができ
# ls squashfs-root/
bin dev etc lib mnt opt proc root run sbin selinux tmp usr var
です。
自分は 理論は苦手なので 、 一つずつ 実証実験をして確かめるしかないです。
で実際にのけてみた後
# cd /mnt/home/p571/tmp-p/
# mksquashfs /mnt/home/p571/tmp-p/squashfs-root/ puppy_precise_5.7.1JP.sfsーsmall -comp xz
した後
# ls -l
total 281104
-rw-r--r-- 1 root root 128868384 9月 26 11:01 puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root root 158973952 9月 26 12:05 puppy_precise_5.7.1JP.sfsーsmall
drwxr-xr-x 15 root root 4096 12月 18 2013 squashfs-root
すると
ファイルを削ってやったのに逆に大きくなりました。
dhcpd , tftpdだけでの解決が
https://docs.google.com/document/d/1aM_ ... l=en&pli=1
にありました。
# cd p571/
# ls p571/
initrd.gz vmlinuz puppy_precise_5.7.1JP.sfs
# mkdir tmp
# cd tmp
# zcat ../initrd.gz |cpio -i
# ls
DISTRO_SPECS bin etc lib proc pup_ro1 pup_ro3 pup_ro5 pup_ro7 pup_ro9 pup_z sys var
README.txt dev init mnt pup_new pup_ro2 pup_ro4 pup_ro6 pup_ro8 pup_rw sbin tmp
(ここに注目してください。 あとで引用していきます)
# cp ../puppy_precise_5.7.1JP.sfs ./
# find . | cpio -o -H newc | gzip -9 > ../initrd.gz-big
# cd ../
# pwd
/mnt/home/p571
# 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
さて
zcat ../initrd.gz |cpio -i したときに
# ls tmp/
DISTRO_SPECS bin etc lib proc pup_ro1 pup_ro3 pup_ro5 pup_ro7 pup_ro9 pup_z sbin tmp
README.txt dev init mnt pup_new pup_ro2 pup_ro4 pup_ro6 pup_ro8 pup_rw puppy_precise_5.7.1JP.sfs sys var
ができます。
# file puppy_precise_5.7.1JP.sfs
puppy_precise_5.7.1JP.sfs: Squashfs filesystem, little endian, version 4.0, 32877425919 bytes, 21034 inodes, blocksize: 7 bytes, created: Fri Jul 30 11:05:52 1926
なので
# unsquashfs puppy_precise_5.7.1JP.sfs
すると
squashfs-root
ができ
# ls squashfs-root/
bin dev etc lib mnt opt proc root run sbin selinux tmp usr var
です。
自分は 理論は苦手なので 、 一つずつ 実証実験をして確かめるしかないです。
で実際にのけてみた後
# cd /mnt/home/p571/tmp-p/
# mksquashfs /mnt/home/p571/tmp-p/squashfs-root/ puppy_precise_5.7.1JP.sfsーsmall -comp xz
した後
# ls -l
total 281104
-rw-r--r-- 1 root root 128868384 9月 26 11:01 puppy_precise_5.7.1JP.sfs
-rw-r--r-- 1 root root 158973952 9月 26 12:05 puppy_precise_5.7.1JP.sfsーsmall
drwxr-xr-x 15 root root 4096 12月 18 2013 squashfs-root
すると
ファイルを削ってやったのに逆に大きくなりました。