柘植です。こんばんは。
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
|