Vitruvian Penguin
knoppix

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

Date: Mon, 9 Feb 2004 20:49:13 +0900
X-mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu)
柘植です。こんばんは。

On Mon, 9 Feb 2004 00:35:32 +0700
Shiori Tamura <shiori_tamura@xxxxxxxxxxx> wrote:

> > ここで「移転」した際の具体的なコマンドはどんなものだったのでしょうか。
(snip)
> はい、私の場合はごく単純な"mv"です。私は1つの版のリマスタに3つの
> パーティションを使っています;作業用(例えば/mnt/hda11),デフラグ用
> (同じく/mnt/hda12)、CDイメージ用(同じく/mnt/hda13)。CD起動の
> 状態から、「教科書通り」に/KNOPPIX以下を/mnt/hda11にコピーし、リマ
> スタ作業が完成した時点で,これをデフラク用に用意したパーティションに
> 一旦,移転します;

詳しく説明していただいてどうもありがとうございます。

自分でも少しだけ調べてみました。
教えていただいたURLを手がかりに追っていくと

  ISO-9660 Rock Ridge gives different links different inums
  http://www.ussg.iu.edu/hypermail/linux/kernel/0301.1/0664.html

にはじまる一連のスレッドが見つかります。
その内容は私にはちょっと高度なので、1割くらいしか理解できてません。
そこを敢えて思い切って要約すると、

ISO9660 ファイルシステムではhardlinkを正しく扱うことができない

ということ、のような気がします。

そこで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) も大きくなりました。

私は前のメールで

> 運がいいのか悪いのか、私はそういう事態にぶつかったことは
> これまでにありません。

と書いたんですが、どうやら単に気がついていなかっただけのようです。

田村さんに教えていただいたfreedupsを使ってみると、

 # ./freedups-v0.6.9.pl -a /mnt/hda5/Knoppix.source
 ...
 Finished processing inodes, appending new md5sums.
 Finished saving md5sums.
 1 file specs searched.
 103080 Unique files scanned.
 103078 Unique inodes scanned.
 Cached checksums: 5112690, From disk checksums: 86960.
 Space saved: 30971895

と30MBほど*だけ*サイズを小さくすることができました。

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

さてこの後の状態なのですが、

 # for i in $(find /mnt/hda5/Knoppix.source -type f -links +1); do ls -li $i; 
done > hardlink_ls.list
 # wc -l hardlink_ls.list
    9185 hardlink_ls.list
 # cat hardlink_ls.list | cut -d " " -f2 | sort | uniq | wc -l
    2872

こんなものなんでしょうか。

さてところで、以上のことから私は、
/KNOPPIXディレクトリからのコピー時にはサイズが増えるものなんじゃないか、
という印象を持ちました。でも、田村さんのところでは

> 前回の報告でも触れましたように,その後,同様の手続きでsrc32を色々な場
> 所に移動してみたのですが,これまでのところ「悲劇の再現」は果たしており
> ません。

ということなので、まだ私が気がついていない別の原因があるのかもしれませんね。

以下は余談ですが、

> こんな面倒なことを始めたのも,どこかで「リマスタすると、必ずオリジナ
> ルよりスピードが落ちる。オリジナルは最適化されているからだ」といった
> 記述を読んだことがあったからです。それに加えて,例のgodber氏の投稿を

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

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

にあるKnoppix.mksortlistを使うとよいらしい、ですね。
でも私はまだ使ったことがないのです(^^;

どなたか試されたかたはいらっしゃいます?

-- 
Tsuge Akihide
<Prev in Thread] Current Thread [Next in Thread>