忍者ブログ
  • 2017.09
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2017.11
圧縮アーカイブの謎
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 -」を
とりあえず試してみても良いかもしれない。
PR
【2012/04/10 21:21 】 | 未選択 | 有り難いご意見(0)
                                    
<<hsvフォーマット(ドラフト)(1) | ホーム | CにもVMあったんだ~>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>