壊れたZIPファイルを救出せよ!データ復旧の神テクニックまとめ
Recovering Corrupt Zip Files
Recovering Corrupt Zip Files
大切なZIPファイルが開けない…そんな絶望的な状況に直面したことはありませんか?ここでは、破損してしまったZIPファイルをコマンドラインや専用ツールを使って修復し、無事に中身を取り出すための実践的な手法を解説します。バックアップがなくても諦める前に、まずはこの手順を試してみてください。
最近ひどいケースがあったよ。ある顧客がSteamで公開済みのゲームプロジェクトファイルを送ってきたんだけど、約1GBあって破損してたんだ。しかも数ヶ月かけて作ったものなのに。バックアップも全部ダメになってたらしい……案の定、WinRARの修復ツールを使っても中身が空っぽの1GBのZIPファイルができるだけだった。30年間、あらゆる主要OSやマイナーなOS、ファイルシステム、怪しげな転送プロトコル、信頼性の低いメディアでZIPファイルを作って保存してきたけど、この会社がZIPファイルの破損でこれほど問題を抱えているのは、フォーマットや顧客の扱いが悪いせいじゃない気がするな。彼らのソフトウェア自体が壊れたZIPファイルを作ってるんじゃないか?
技術的には、追記専用のZIPライターを作ることは可能そうだよな。既存の中央ディレクトリの後ろにファイルを追加していって、最後に新しい中央ディレクトリ(削除済みファイルを除く)を書き込む方式なら、アーカイブを修復不能なほど破壊するリスクを減らせるはず。不意の電源断なんかがあっても、ほとんどのコンテンツは無事だろうから。
今テストしてみた。7-Zipはまさに著者のリカバリツールがやっていることと同じ動きをしてるよ。ファイルの末尾にあるメタデータを削除しても、警告は出るけど問題なく展開できるし、「予期せぬデータ終了(Unexpected end of data)」という無害なエラーメッセージが出るだけだ。さらに、最後のファイルのコンテンツ自体を消してしまってもディレクトリ構造は表示できるから、単に最後のファイルが展開できなくなるだけだな。