渡辺一寛です。

At Sun, 26 Aug 2007 17:44:44 +0900,
渡邊 和雄 wrote:
> > 使ったことが無いのでどんなものかわかりませんが、ports に gzrecover と
> > いうソフトウェアがあるようです (ports/archivers/gzrecover)。作者の Web 
> > ページもあります。
> 
> 
> 早速使ってみました。
> 今まで試してみた修復ユーティリティに比べるとだいぶ出来が良く
> 
> tar xf 「処理後のファイル」
> 
> してみたところ
> 
> home/「ファイル名」: (Empry error message)
> tar: Truncated input file (need to skip 9308 bytes)
> 
> となるものの今までより若干たくさんのファイルを展開できました。
> 良いものをご紹介いただきありがとうございます。
> 
> 欲を言えばもう少し先まで展開できればより幸せになれるのですが...
> 他にも何かご存知でしたらお教えください。m(_)m

gzrecover の Web ページに書いてありますが、GNU tar は壊れたアーカイブ
を扱うことができないので、かわりに GNU cpio を使って展開するのだそうで
す。ちなみに FreeBSD 6.2-RELEASE に入っている cpio は GNU cpio です。

gzrecover は gzip が展開を途中であきらめてしまうような、壊れた gzip 圧
縮ファイルの壊れている部分を読み飛ばしながら、元ファイルに含まれていた
データのできる限りの復元を試みるソフトウェアです。

壊れた圧縮ファイルを多少強引に復元するわけですから、その復元されたデー
タにどんな (意味の無い) ごみデータが含まれているかわかりません。つまり
復元された tar アーカイブが正しい形式を保っている保証がありません。そ
のような tar アーカイブを何としてでも展開するには cpio のほうが向いて
いるということだと思います。
---
Watanabe Kazuhiro 
([メールアドレス保護])

メールによる返信