僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
kernel-2.6.17にはcloop2.02もlcatのcloopも
うまくmakeできなかった。
本家ダウンロードサイトを探し、cloop2.04を貰って
make。できた。
でも、knoppix_v5.0.1CD_20060601-20060614+IPAFont_AC20060623.iso
の中にある/KNOPPIX/KNOPPIXのmountはできなかった。
# mount -r -t iso9660 /dev/cloop $MOUNTPOINT mount: wrong fs type, bad option, bad superblock \ on /dev/cloop, missing codepage or other error \ (could this be the IDE device where you in fact \ use ide-scsi so that sr0 or sda or so is needed?) In some cases useful info is found in syslog - \ try dmesg | tail or so $ dmesg | grep cloop isofs_fill_super: bread failed, dev=cloop0, \ iso_blknum=16, block=32
以前の記事を読み直して
2.6.17にもsquashfsに対応させてみる。
あれから新規バージョンは出てないので、できるだけ近い(2.6.15用の)
パッチを当てた。makeはうまくいったようだけど、こないだでなかった(筈の)
warningがいっぱい出ていた。
で、前例の通りlfsのLiveCDの中身をmount。249225216Byteの ファイルが、738208527Byteのファイルシステムになった。
squasfsに含まれているプログラム。
名前から察するにsquashfsを作ったり、解凍したりするツールらしい。
manがないので、(1)か(8)かよくわからない。
READMEに目を通して試す。それにしても、
squashfs3.0$ ls -l README* -rw-r--r-- 1 root 502 18792 2006-03-16 07:37 README -rw-r--r-- 1 root 502 6402 2006-03-16 06:36 README-2.0 -rw-r--r-- 1 root 502 3586 2006-03-16 06:36 README-2.1 -rw-r--r-- 1 root 502 2089 2006-03-16 07:23 README-3.0 -rw-r--r-- 1 root 502 982 2006-03-16 06:36 README-AMD6
開発進展に伴ってドキュメントを逐次追加しているのだろうか。基本的には
全部目を通すべきものらしい。unsquashfsの説明はREADME-3.0
にしか載ってないようだ。
とりあえず、例のパッチを当てたカーネルソースで試す。
# mksquashfs linux-2.6.17 squash-linux2.6.17 -b 65536 Creating little endian 3.0 filesystem on squash-linux2.6.17, \ block size 65536. Little endian filesystem, data block size 65536, compressed \ data, compressed metadata, compressed fragments Filesystem size 88174.52 Kbytes (86.11 Mbytes) 27.35% of uncompressed filesystem size (322398.99 Kbytes) Inode table size 316217 bytes (308.81 Kbytes) 30.85% of uncompressed inode table size (1025042 bytes) Directory table size 278050 bytes (271.53 Kbytes) 54.29% of uncompressed directory table size (512138 bytes) Number of duplicate files found 933 Number of inodes 32061 Number of files 29776 Number of fragments 4088 Number of symbolic links 1 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 2284 Number of uids 1 root (0) Number of gids 0
# ls -l squash-linux2.6.17 -rwx------ 1 root root 90292224 Jul 1 09:32 squash-linux2.6.17* # ls -l linux-2.6.17.tar.bz2 -rw-r--r-- 1 root root 41272919 Jun 18 11:10 linux-2.6.17.tar.bz2
できたファイルは読み込み専用でマウントできた。
で、解凍も。-destオプションを指定しなければ、
カレントディレクトリに squashfs-rootとかいう
ディレクトリを掘って、その下に垂れ流す。
# unsquashfs squash-linux2.6.17 created 29776 files created 2284 directories created 1 symlinks created 0 devices created 0 fifos # echo $? 16 # du -b linux-2.6.17 | tail -1 ; du -b squashfs-root | tail -n1 338036453 linux-2.6.17 338036453 squashfs-root
非圧縮状態で300MB程のファイルシステムが、読み込み専用とはいえ、
90MB位まで小さくなったのは便利かもしれない。
ついでにcloopでも同様のテスト。 題材は同じくlinux-2.6.17(+squashfsパッチ)のソースディレクトリ。
# mkisofs -r linux-2.6.27 | create_compressed_fs - 65536 \ linux-2.6.17-cloop.img (ry Input: 362807296 bytes, avg. speed: 1870140 b/s, 75254832s remaining 99.27% done, estimate finish Sat Jul 1 10:15:54 2006 Total translation table size: 0 Total rockridge attributes bytes: 2942918 Total directory bytes: 7733248 Path table size(bytes): 31352 Input: 371195904 bytes, avg. speed: 1855979 b/s, 75829024s remaining Max brk space used 1690000 181319 extents written (354 MB) Done. Input: 371392512 bytes, avg. speed: 1847723 b/s Statistics: gzip(0): 0 ( 0%) gzip(1): 0 ( 0%) gzip(2): 0 ( 0%) gzip(3): 0 ( 0%) gzip(4): 0 ( 0%) gzip(5): 0 ( 0%) gzip(6): 0 ( 0%) gzip(7): 0 ( 0%) gzip(8): 0 ( 0%) gzip(9): 5667 (1e+02%) 7zip: 0 ( 0%)
で、できたイメージのマウント。
# ls -l linux-2.6.17-cloop.img -rw-r--r-- 1 root root 92197482 Jul 1 10:28 \ linux-2.6.17-cloop.img # sh linux-2.6.17-cloop.img temp2 # du -b temp2 | tail -n1 336340709 temp2
cloopはISO形式の為か、少し大きくなった。
squashfsはCDROMにはそのままでは格納できないだろう。
cloopでは(まだ、今のところ、自分は)同時に複数のファイルシステムを
マウントできなかった。squashfsはできている。
結局のところ、大差ないといえば大差ない、のかも。
おまけ。extract_compressed_fs(1)は、圧縮したISOイメージを、 非圧縮のISOイメージに戻すだけ、なようだ。
をデスクトップ(kernel2.6.17)に突っ込む。
beep音とともに/dev/sdaとしてあっさり認識された。
リマスタリングしたKNOPPIX_v5でシステムを起動し、v4でやってたように
リモートホストから ssh -l knoppix $KNOPPIX_V5_HOST。
すると、
"System bootup in progress - please wait"
で切られる。sshd_configいらいながらssh start何度も。
効果ぜんぜんなし。
エラーメッセージでぐぐって
あっさり。/etc/nologinを消せばいい。
やっぱりKNOPPIXでも、デフォルトで繋がってはダメだという意見が
支配的になってきたのだろうか。
netfilterはまだ閉めてないようだけど。
KNOPPIX_V5にmountしたパーティションのPlamo-4.2にchrootし、
そっから/usr/sbin/sshd。
今度は "PRNG is not seeded"。ステータスは255。
ぐぐって確認すると、/dev/urandomがなかった。 # mknod /dev/urandom c 1 9する。
無事起動したものの、まだ順調とはいえない。
当初は親環境にしかログインできず(親環境のsshd止め忘れ?)、
起動し直したら今度はパスフレーズの入力後に止まったまま??
先程の(Plamo-4.2 on KNOPPIX_V5)chroot環境で愚行を重ねた。
chroot環境下でXを起動させてみる。startxした後の メッセージを見ながらデバイスファイル をいくつか追記したが、いちいちmknodするのが 邪魔臭くなり、遂にPlamo-4.01のノートに(chrootの下から) nfsして、ttyで始まるデバイスファイルをいっぱい cp -R する。
で、一応Xは起動したが、ここでも問題。
アドビリーダやgimp2.2、Emacs21なんかは起動するけど、
Firefox1.5や 疑似端末が一般ユーザで起動できない。
(Emacsの*shell*は動く)
/dev/tty*の属性を色々いじったが、無駄だった。
Plamo-4.2同士でデバイスファイルを分けるべきだったかも。
ちなみにスーパーユーザでXをあげて/dev/tty*を見ると、
いくつかはrootの所有物に変っている。このあたりが敗因?
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。