vistaの20Gのイメージファイルを圧縮しながらファイルサーバに
転送していたのだけどもなぜか解凍するといつも予期せぬEOFになってしまっていた。
圧縮時
tar -jcvf mountdir/vista.img.tar.bz2 vista.img
解凍時
tar -tvf mountdir/vista.img.tar.bz2
エラー回避のためには次のコマンドに置き換える。
圧縮時
tar cvf - vista.img | bzip2 -9 > mountdir/vista.img.tar.bz2
解凍時
bzip2 -dc mountdir/vista.img.tar.bz2 | tar tvf -
実行するときは自分の書き込み権限をなくして
行うことをおすすめする。
chmod a-wx vista.img
たぶんファイルとしてtarが認識して処理を行うロジックがおかしいのだと思う。
逆にtarの実績はtape archiveという昔ながらの実績から大丈夫な気がする。
そして、tar -jcvfとするよりもコンスタントに処理時間が消費されるのが
bzip2を直に使う所のいいところだと思う。
興味深いことに、tar -jcvfの実施直後の転送率はものすごく大きいのだが
後になるほど尻すぼみになる。
しかし、tarとbzip2で分業すると転送率が実施直後はtar -jcvfよりも遅いけど
ずっと一定な感じですすんでいく。
今回は体感ばかりで実際のところは不明。
「tar tvf mountdir/vista.img.tar.bz2」でEOFエラーとなっても
「bzip2 -dc mountdir/vista.img.tar.bz2 | tar tvf -」でエラーとならないので
良しとしているけど解凍されたものが正しいかはまだチェックはしていない。
もしかしたら解凍方法だけで解決する可能性もあるため
EOFエラーとなったら
「bzip2 -dc mountdir/vista.img.tar.bz2 | tar tvf -」を
とりあえず試してみても良いかもしれない。
[0回]
PR