トップ «前の日記(2006-06-30(Fri)) 最新 次の日記(2006-07-02(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2006-07-01(Sat) うんとこしょ

新しいcloop

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のファイルシステムになった。

mksquashfs & unsquashfs

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 vs squashfs

ついでに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イメージに戻すだけ、なようだ。

ClipDrive

をデスクトップ(kernel2.6.17)に突っ込む。
beep音とともに/dev/sdaとしてあっさり認識された。

ssh入れねぇ...

リマスタリングしたKNOPPIX_v5でシステムを起動し、v4でやってたように リモートホストから ssh -l knoppix $KNOPPIX_V5_HOST。
すると、
"System bootup in progress - please wait"
で切られる。sshd_configいらいながらssh start何度も。 効果ぜんぜんなし。

エラーメッセージでぐぐって あっさり。/etc/nologinを消せばいい。
やっぱりKNOPPIXでも、デフォルトで繋がってはダメだという意見が 支配的になってきたのだろうか。
netfilterはまだ閉めてないようだけど。

chrootでsshd

KNOPPIX_V5にmountしたパーティションのPlamo-4.2にchrootし、 そっから/usr/sbin/sshd。
今度は "PRNG is not seeded"。ステータスは255。

ぐぐって確認すると、/dev/urandomがなかった。 # mknod /dev/urandom c 1 9する。

無事起動したものの、まだ順調とはいえない。
当初は親環境にしかログインできず(親環境のsshd止め忘れ?)、 起動し直したら今度はパスフレーズの入力後に止まったまま??

chrootもうちょっと。

先程の(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や内容が変った場合はあしからず。

index.htmlは ここから。