Vitruvian Penguin
knoppix

[knoppix:2958] Re: リマスタ時の奇怪現象

Date: Sat, 14 Feb 2004 23:45:34 +0700
X-mailer: Apple Mail (2.553)
タイ,ノンタブリ県の田村です。

「リマスタ時の奇怪現象」に関してですが,何せ実験にたいへん時間がかかる
事柄なので,週末を待たねばならず,リプライが遅れました。ご了解ください。

[knoppix:2921]で柘植さんは,次のようにお書きになっています:

そこでknoppix_20031119-20040202を使って試してみました。

CD起動したknoppix_20031119-20040202上で、/KNOPPIXディレクトリの内容を
調べてみます。

# for i in $(find /KNOPPIX -type f -links +1); do ls -li $i; done > hardlink_ls.list
 # wc -l hardlink_ls.list
   1544
 # cat hardlink_ls.list | cut -d " " -f1 | sort | uniq | wc -l
   1544

ということは、ハードリンクされているファイルの数は 1544 個らしいのですが、
inode番号が同じものがひとつも存在していない、ということなんだと思います。
また、/KNOPPIXディレクトリのサイズは

 # du -s /KNOPPIX
 1769084 /KNOPPIX

となっています。

さて、この/KNOPPIXディレクトリの中身をHD上のディレクトリにコピー
してみます。

 # cp -a /KNOPPIX/* /mnt/hda5/Knoppix.source
 # find /mnt/hda11/Knoppix.source -type f -links +1 > hardlink.list
 # ls -l hardlink.list
-rw-r--r-- 1 root root 0 2004-02-09 16:04 hardlink.list

ハードリンクの数が0になりました。また、サイズも

 # du -s /mnt/hda5/Knoppix.source
 2031108 /mnt/hda5/Knoppix.source

と 262024(kilobytes) も大きくなりました。

お教えいただいたコマンドを使わせていただき,私も実験してみました。
以下にその結果を報告いたしますが,その際,記述の便宜上,
# for i in $(find /KNOPPIX -type f -links +1); do ls -li $i; done > hardlink_ls.list
         # wc -l hardlink_ls.list
の結果を仮に"result1"と呼び,
         # cat hardlink_ls.list | cut -d " " -f1 | sort | uniq | wc -l
の結果を"result2"と呼ぶことにします。

まず,タイで頒布されたKNOPPIX3.2英語版(2003-07-25)のCDから
起動して、/KNOPPIXを/mnt/hdb1/32orig以下にコピーしました。それぞ
れを調べると;

        # du -s /KNOPPIX                ->   1833799
        # du -s /mnt/hdb1/32orig        ->   1869462

となりました。増加率は2%弱でしかありませんでした。それぞれのリンク
の状態を調べてみると、/KNOPPIXの側では;
        result1: 26604
        result2: 7036

となっています。しかし,/mnt/hdb1/32origの側では;
        result1: 0

となりました。柘植さんもおっしゃる通り,/KNOPPIX以下をHDにコピー
したそれだけで,ハードリンクそれ自体はなくなってしまうもののようで
す。しかし,今回の私の実験では,容量の増加率は2%弱と微々たるもので
したが,柘植さんの実験では15%弱も増加しています。こんな大きな差が
生じるには,何か別の原因があるのではないかと,私は疑っています。私
が[knoppix:2912]で報告した事例では,おそらく20%以上も増加していた
ものと想像します。柘植さんの報告事例は,これはもう半ば「悲劇の再現」
ではなかったのでしょうか。

ともあれ,更に実験を続けました。[knoppix:2912]でご報告したように,
例の悲劇の後,freedups.plを/lib, /usrに適用した結果,2,354,543,472 bytes
に膨れ上がっていた容量は,1,817,705,855 bytesにまで収縮しました(な
お,この両数値は,"du -s"で調べたのではなく,konqueror上のプロパティ
で表示された結果です)。このfreedups処理をかけた後のリンクの状況を
調べてみると;
        # du -s /mnt/hda15/32rmst       ->   1793276
        result1: 25782
        result2: 4742

と出ます。そして、これを基にして作成したRemastered-CDから起動し,
/KNOPPIXを調べてみると;
        # du -s /KNOPPIX                ->   1821232
        result1: 4297
        result2: 4297

となります。容量では約1.6%の増加です。ハードリンクに関しては,柘植
さんがknoppix_20031119-20040202でお調べになったのと同様の結果となっ
ています。

以上の結果を総合すると,ハードリンクの不認識は、iso9660ファイルを
マウントして元のファイルを還元する時に留まらず,そもそもiso9660ファ
イルを作成する段階で既に発生している、と言えるのではないでしょうか。
しかし,それに伴う容量の増加は,通常1.5~2%に収まっているようです。

これだけでしたら,あまり問題にならないのかもしれません。ところが,
偶発的にこの増加率が15%や20%などと,一桁高くなる場合があるので
はないでしょうか。ポップコーンが弾けるようにです。またまた,振出し
に戻ってしまったようですが,これ以上,どのようにその原因を追究した
ら良いのか,私には分かりませんので,どなたか、妙案をお持ちの方がい
らっしゃったら、ご教示いただきたいと存じます。

いずれにいたしましても,リマスタを目指す場合に,できればKnopperさん
ご自身が配付するオリジナルか,あるいはそれに基づく第一次リマスタ版
を使用するように努め,孫,ひ孫,玄孫など,多重派生版を使用すること
は控えた方が良い,ということだけは確実に言えるように思えます。

この「最適化」については

[debian-knoppix] Klaus's latest build scripts
http://mailman.linuxtag.org/pipermail/debian-knoppix/2003-April/ 002595.html

にあるKnoppix.mksortlistを使うとよいらしい、ですね。

このファイルを見てみました。正直に申して,私にはこれを正確に理解
するだけの知識が欠けていますので,使用は差しひかえたいと存じます。
ただ,mkisofsを実行する時に,予想通り,細かくダイレクトリ毎に分け,
しかも,起動スピードを最適化するためでしょう,それを読み込みの順
番に従って書き込んでいるらしい、という点が確認できました。それが
分かっただけでも収穫でした。ありがとうございました。

それから,これはあまり益のない質問かもしれませんが,上記の報告に
も現れているように、ダイレクトリの容量を調べる際,"du -s"で返される
値(単位はkilobyte)と,konquerorのプロパティで表示される値(単位は
byte)とが一致しないのはなぜなのでしょうか。どちらを信じて良いのか,
いつも迷ってしまいます。

以上,「奇怪現象」のその後について、ご報告いたします。

田村志緒理

__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/
<Prev in Thread] Current Thread [Next in Thread>