[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00878] Re: tar file format



 しらいです。

In Message-Id <20100619171141.a2162978.riki1017kazu@gmail.com>
        Rikito INAKAZU <riki1017kazu@gmail.com>さんwrites:
> 稲員です。

> tar 形式では、末尾に 512*2 bytes の zero block を置いてアーカイブの
> 終端としているので、典型的な tar file では少なくとも 1024 bytes 以上の
> '\0' が末尾に存在しますが、 FD-3.00h.tar には 822 bytes (310 bytes
> の padding と 1 つの zero block) 分しか存在してないですね。

 なんかたまにそうなりますね。多分 alignment の関係だと思う
んですが、多い時は多い時で数十個の zero block を作ってくれま
す。


> 単なる興味本位ですが、こういった形式の tar file を吐くのがどのバージョン
> の tar なのか、差し支えなければお教え願います。

 BSD な tar を使ってるからだと思ってましたが、確認してみた
らいつの間にか GNU tar を使っていたようです。1.11.3 という相
当に古い代物でした。
 GNU tar の変遷を追っていくと、1.13.9 で最低 2 つ作るように
したようで、実際それ以降の GNU tar を拾って来て build すると、
A lone zero block じゃない tar を作ってくれますね。

 因みに BSD な tar ですが、どこにも見当たらないので改めて作
ってみたら、4.3BSD な tar は core を吐いて失敗し、4.4BSD な
tar は ENOSPC が出るまで際限なく出力し続けました。
 どうも FDclone の source には巨大な file が多過ぎるようで
す。そう言えば、随分前に似たような理由で BSD な tar はお払い
箱にしたような気もします。


> >  -i option で zero block を無視するので、気になるようならそ
> > うして下さい。
> 
> 最新の GNU tar 1.23 では、 -i と違って zero block を無視せずに処理
> するものの warning だけ抑制する --warning=no-alone-zero-block
> なんてニッチそうなオプションが新設されているようです。

 「zero block」でググると、このエラー絡みの話が山ほど出て来
て、どのケースも結局は「無視しろ」で解決してますね。現実的に
は「余計なお世話」な機能なのではないでしょうか。
 そんな長ったらしい option を恒常的に使う人も珍しいでしょう
から、むしろ warning を吐く方を option で指定するようにした
方が幸せになれる人が多いかも。

 で、確認しようと 1.23 を拾って来たら、最近は GNU make 必須
に設計されているようで、BSD な環境では build に失敗しますね。
GNU も段々閉ざされていってる感じがします。
 Linux に GNU Hurd の座を奪われた結果とは言え、GNU には GNU
なりの矜持ってもんはないんでしょうかねー。使って貰ってこその
software ではないでしょうか。

                                               しらい たかし