puppy 571 の pxe boot で thin client もどき

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

puppy 571 の pxe boot で thin client もどき

投稿記事 by hatahata »

puppyを net boot することについてです。

元ネタは
https://docs.google.com/document/d/1aM_ ... l=en&pli=1
で 、これは puppyで サーバーを たちあげることについて書いてあるのですが、
dnsmasqの設定が明確でないので 原本とおりではむりでした。
(どなたか 正しいdnsmasq.confをおしえてください。dnsmasqをtftpdの代用にしてますね、ここは。 )

しかし まねしたとき initrd.gzとprecise-571JP.isoをもとにして できたinitrd.gz-bigで net bootができ thin client もどきがきました。(もどきなのは fdiskで自分のHDDをみるし topで自分のメモリをみるからですが、 このためにHDDに puppyをいれる手段ができと思いますー未施行)

ところで、PXEサーバーでは
ls -l /EXT2/netboot-p571/
total 273576
-rw-r--r-- 1 root wheel 137087813 Sep 23 18:46 initrd.gz-big
-rwxr-xr-x 1 root wheel 26474 Jan 1 1970 pxelinux.0
drwxrwxrwx 2 root wheel 4096 Jan 1 1970 pxelinux.cfg
-rw-r--r-- 1 root wheel 2802256 Sep 23 18:46 vmlinuz
と結構大きなinitrd.gz-bigなのですが、手元にあったBSDのtftpdで押し出すことができました。

なお
cat /EXT2/netboot-p571/pxelinux.cfg/default
default puppy
label puppy
kernel vmlinuz
append load initrd=initrd.gz-big


元ネタの要は
1. Install the appropriate DNSMASQ.PET
2. Install the netboot-server.pet
をいれ
mknetboot.sh
をはしらすことで 大きな initrd.gzができます。
あとは、上のように普通のPXEをつくるだけです。


なんか thin client もどきのような netboot puppyが立ち上がってきます。
不思議なことに英語モードです。
でも lang_pack_ja-1.9.sfsをloadしなくてもメニューからたどると日本語化できます。
もちろんインターネットもできます。
pmusic で音はでます。
ここなところはCDで立ち上がったpuppyのようなかんじです。


肝心の mknetboot.sh は以下でした。

#!/bin/sh
#jamesbond 2011
# convert a puppy iso into netboot-compatible vmlinuz and humongous initrd.gz

zcat /tmp/netboot_iso/initrd.gz | cpio -i
cp /tmp/netboot_iso/*.sfs .
find . | cpio -o -H newc | gzip -9 > ../initrd.gz

なので 以下のように作業をします

# cd p571/
# 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

-----


そこで 本格的にHDDに パピーをいれます。
fdisk が使えますので 、この後 mkfs.ext4でファイルシステムをつくり
USBの initrd.gz(普通サイズ) vmlinuz   puppy_precise_5.7.1JP.sfsをHDD
にコピーし その後 menu > sysytem > grub4dos config でブートローダを
いれたらできるのではないかと予想されます。
こうすればUSBブートできないCDなしPCでも パピーができるのではないか、
また 他のLINUXをいれる必要がないのでHDDが有効に使えるのではないか
などと思います。


一方 thin client もどき パピー(ltspはきっと無理でしょうから)も魅力的で(でも機動に時間がかかるのが欠点です)。 
この文は もどきの上で書きました。
最後に編集したユーザー hatahata [ 14/09/26(金) 19:24 ], 累計 1 回
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by シノバー »

何をされたいのか、タイトルからは分かりにくいのですが、やりたいのは thin client ではなく、パピー(Puppy Linux)のネットワーク・ブート(PXE boot)ですよね?
hatahata さんが書きました:なんか thin client もどきのような netboot puppyが立ち上がってきます。
不思議なことに英語モードです。
なんかおかしいですね。

initrd.gz の中に メインSFSを突っ込むのは Mkdist を使うことでもできます。
viewtopic.php?f=30&t=2436

しかし、そうせずに、ライブCDの .isoファイルそのままでネットワーク・ブートという手もあります。
わたしがやってみたのは grub4dos と memdisk を使うものです。
「grub4dos memdisk pxe boot」などのキーワードでネット検索すると、何か見つかるかもしれません。

少々古い記事で .isoファイルからの起動は扱っていませんが、何かの参考になれば:
パピーリナックスのネットワーク・インストール 前編 http://shino.pos.to/linux/puppy_pxeboot.html
パピーリナックスのネットワーク・インストール 後編 http://shino.pos.to/linux/pxeboot2.html
The bar master, Shino's Bar
http://shinobar.net/
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by hatahata »

hatahataです。
目が眩むような凄い情報ありがとうございました。
librettoをもっていて これにはCDもFDもついてなく、ネットブートしかOSのインストールができません。
遅いので puppyしか実用的な速度でうごきません。
やりたいことは puppyのネットワークインストールでした。
今までは ネットブートでdebianをいれ それからpuppyをdebianを利用していれていたのですが、こうするとHDDの大半を
debianがとってしまいます。
これではいけないと思いました。
最後に編集したユーザー hatahata [ 14/09/27(土) 01:59 ], 累計 1 回
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

フォーラムの使い方

投稿記事 by シノバー »

hatahata さんが書きました:話はかわります。
HOWTO ならびに FAQ は答のあるもの。ここを見ると、その答が見つかるというものです。
答を求めるならば、別の場所に投稿してください。
それ以前に、途中で話題を変えるのは反則です。なぜかというと、タイトルを見て、このトピックを参照する方々がおられるからです。
新たにトピックを起こすか、思いのままに話を展開したいのであれば、ユーザーズカフェがあります。
The bar master, Shino's Bar
http://shinobar.net/
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by hatahata »

hatahataです。
了解しました。
前項の 話は変わります 以下を削除し ユーザーズカフェに投稿しました。
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by hatahata »

おせわになってます。

/etc/dnsmasq.conf

interface=eth0
dhcp-range=192.168.11.10,192.168.11.12,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftpboot
でいけました。
---
by hatahata
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by シノバー »

hatahata さんが書きました:(snip) …でいけました。
ありがとうございます。HOWTOになりました。
The bar master, Shino's Bar
http://shinobar.net/
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: puppy 571 の pxe boot で thin client もどき

投稿記事 by hatahata »

network install の続きをかきます。
インストーラは使わないインストールで lftpを使いファイルを3つ転送して
その後grub4dosで完了です。

状況は
PXE (サーバー:dnsmasq=dhcpd+tftpd initrid-big=initrid+sfs)
eth0
|
puppyを入れるPC


まずPXE サーバーを立てます。
ls -l /tftpboot/
-rw-r--r-- 1 tuyosi tuyosi 164801980 12月 9 10:11 initrd.gz-big 後ほど説明
-rwxr-xr-x 1 tuyosi tuyosi 26816 12月 9 10:10 pxelinux.0
drwxr-xr-x 2 tuyosi tuyosi 4096 12月 9 10:10 pxelinux.cfg
-rw-r--r-- 1 tuyosi tuyosi 3108768 12月 9 10:11 vmlinuz

# cat /tftpboot/pxelinux.cfg/default
default puppy
label puppy
kernel vmlinuz
append load initrd=initrd.gz-big
です。

dnsmasqをインストし

more /etc/dnsmasq.conf
interface=eth0
dhcp-range=192.168.11.10,192.168.11.12,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftpboot
にします。

それから
eth0を192.168.11.8/24ので固定アドレスにします。

それから
dnsmasq を起動

その後 puppy をインストールするパソコンにいって、
ネットワークブートします。
それから
fdisk /dev/sda
bootable flug を/dev/sda1にたて
mkfs.ext4 /dev/sda1

puppy で pure-ftpdをたちあげ
pxeサーバーから lftp -u rootをつかって

puppy_slacko_5.7.sfs
initrd.gz
vmlinuz
をputします(/rootにおちてきます)。

それから sda1 をマウントし そこにフォルダ /mnt/sda1/puppyをつくっておいてから
そこに 上の3つのファイルをmv します。

あとは grub4dos でブートローダーをいれると出来上がりです。
すると 100%ピュアなpuppyができがり、swapファイルはありますが領域はないです。
すごく HDDの節約になります。

なお swap ファイルを増やすためには
http://o6asan.com/blog-j/2010/05/20/%E6 ... %E3%80%82/

# free
...
Swap: 1048572 0 1048572
なれるのですが、面倒くさい方は最初からsda2にswapを作るべきでしょう。

最後にinitrd.gz-bigの 作り方は昔書いた以下です。
viewtopic.php?f=13&t=2732
返信する