dvdisasterでCD/DVDのバックアップを守る

 DVD-Rディスクなどの光メディア上にバックアップを保存することには2つの大きな欠点がある。一つにはDVDディスクにはひっかき傷が付きやすいという点、そしてもう一つは一定の期間が経過するとメディア自体が劣化してくるという点だ。ひっかき傷の問題についてはメディアを丁寧に扱うことで対処可能だが、劣化については高価なメディアを使用したとしても時間の経過によって読み取りが不可能になってしまう場合がある。 Dvdisaster は、ひっかき傷や時間が経ったメディアから情報を復旧することを目的とするプロジェクトだ。

 Dvdisasterは、ISOイメージから読み取りエラー訂正情報を含んだファイルを生成する。このファイルはISOイメージと同じDVDに含めても良いし、ISOイメージとは別の他のメディアに保存しておいても良い(ただしエラー訂正情報自体を傷や劣化から保護するために、同じDVDに含める場合には、別に保存しておく場合よりも大きな容量が必要となる)。エラー訂正用ファイルの大きさはデフォルトではISOイメージの約15%で、DVDの場合、通常700メガバイト余りに相当する。古いメディアや傷のあるメディアの情報を復旧させたいとき、Dvdisasterはこのエラー訂正情報を使用して元の情報を復旧する。

 エラー訂正用ファイルをなくしてしまった場合や、メディアが完全に読み取り可能なときにエラー訂正用ファイルを作成しておかなかった場合、Dvdisasterは古いDVDから情報を復旧することはできない。

 Dvdisasterでは、エラー訂正用ファイルの作成と傷付いたDVDからの情報復旧を行なうための、GUIとコマンドラインツールの両方が用意されている。エラー訂正用ファイルを作成するためにはDvdisasterにISOイメージを与える必要があるが、その際にDvdisasterはハードディスク上のISOファイルを使用することもできるし、DVDから直接ISOイメージを読み取ることもできる。DvdisasterがハードディスクからもISOイメージを読むことができるという点は、普段利用しているDVDディスク作成ツールがISOイメージを一旦ハードディスク上に作成する場合には便利かもしれない。DVDが最近作成したもので傷も付いていなければ、メディアからISOイメージを読み取る際にエラーは出ないはずであり、次に示す図のようになるはずだ。

dvdisaster1_thumb.png
Media Scan

 この図からも分かるように、GUIの上部には2つのパスが示されている。左側のパスはISOイメージの保存場所で、右側のパスはエラー訂正用ファイルの保存先だ。どちらにもあらかじめデフォルトのパスが入っている。

 Dvdisasterのユーザインターフェースは初めて使用する場合にはやや直観的ではないという印象を受けた。最初に目につくボタンは右側にあるCreate(作成)ボタンだと思う(というのも、ISOイメージの場所とエラー訂正用ファイルの場所をすでに指定したのだから、あとは選択したDVDドライブのディスクの指定した場所にエラー訂正用ファイルを作成するだけだと考えると思う)のだが、Create(作成)ボタンを押すと、まずISOイメージを読み込む必要があるという内容のエラーが表示された。そこでISOイメージを読み取った後で再びCreate(作成)ボタンを押したところ、エラー訂正用ファイルがちゃんと作成された。

dvdisaster2_thumb.png
Preferences(設定)ウィンドウ

 次の図のようにPreferences(設定)ウィンドウの中では、エラー訂正情報をファイルに保存するのかISOイメージの一部として保存するのかを選んだり、エラー訂正情報を使ってエラーを復旧することのできるレベルを調整したりすることができる。デフォルトではデータ容量の14.3%をエラー訂正情報に使用するようになっている。High(高レベル)をクリックして33.5%に設定したり、Other(その他)を選択して3.2%から64.5%の間で調整することもできる。また選択したエラー訂正容量に対するルート値も表示されている。ルート値というのは、1データブロック内で許容されるエラーの数のことだ。データブロックというのはエラー訂正の基本単位となるもので、ISOイメージ内の複数のセクタから構成される。

 データブロックを構成するセクタは、一ヶ所にまとまらずにメディア全体に均等に分散するように選ばれる。こうすることによって傷によるデータ紛失が起こりにくくなったり、また古いメディアの外側部分が読み取り不可能になり始めた際にDvdisasterが対処できる可能性が高まったりする。エラー訂正情報を直接メディアに含めたい場合、エラー訂正情報の容量などはバイト単位でなくセクタ単位になる。エラー訂正ブロックの作成にはISOイメージ全体に分散している情報が必要なため、エラー訂正用ファイルの作成速度を高めるために、DvdisasterがISOイメージのキャッシュに使用するRAMの容量をメモリ使用量の調節バーで設定することもできる。

復旧

 Dvdisasterを使って古いメディアからデータを復旧する際には、まずISOイメージとしてメディアを読み取って、そのISOイメージを検証する。そしてISOイメージ内にエラーがあれば、Fix(修正)ボタンをクリックして、ISOイメージを元の形に修復することを試みることができる。ISOイメージの修復中にDvdisasterはプログレスバーと、ブロックごとの発見されたエラー数を表わすグラフを表示する。上述したルート値は、Dvdisasterが元のISOイメージの完全なコピーを生成可能な場合に存在しても良いエラーの最大数としてグラフの上に表示される。

今回、検証と復旧を試してみるためにFedora 8 DVD用のエラー訂正用ファイルを作成した後、以下のようなコマンドを実行してエラー訂正情報の生成に使用したISOイメージのデータを破損させた。

dd if=/dev/urandom  of=medium.iso bs=1 count=32330 seek=1259389 conv=notrunc
dd if=/dev/urandom  of=medium.iso bs=1 count=128330 seek=1559389 conv=notrunc

dvdisaster3_thumb.png
Recovery

 図中の赤い線はISOイメージ中、ランダムデータで上書きした領域を示している。最初の約1/4を処理した段階で、Dvdisasterは(あらかじめ損傷データを作成しておいた場所で)合計81個のエラーを復旧した。

 DvdisasterをK3bと一緒に使用する場合、K3bが作成したISOイメージをDvdisasterが直接的に使用してエラー訂正用ファイルを生成することもできるし、あるいは単純にDVDディスクを作成して、作成したDVDディスクからDvdisaserがISOイメージを読み取るようにすることもできる。後者の方法を行なえば、新しく作成したメディアから完全なISOイメージを得ることができるということの検証にもなる。しかし贅沢を言えば、K3bの中にDvdisasterのプラグインや直接的なサポートがあれば嬉しいと思った――例えばDVD作成用のプロジェクトウィンドウ内に、Dvdisasterの設定ウィンドウ内にある「エラー訂正」タブの中にあるようなオプションを使ってエラー訂正用ファイルを作成することができるタブが新しく追加されると便利だと思う。

 Dvdisasterの主な使い道の一つに、個人的に作成したデジタルコンテンツを保護することがある。例えば休日に撮ったデジタル写真やホームビデオなどは、将来的に編集する可能性が低い。またそのようなファイルをたとえ編集することがあったとしても、元の画像や映像を使用することもできるようにしておくことには間違いなく価値があるだろう。Dvdisasterを使ってDVD上のこれらのファイルのバックアップを保護しておけば、10年、20年、30年後にも、貴重なファイルのすべてをDVDから読み取ることができる可能性が大きくなる。

Ben Martinは10年以上もファイルシステムに携わっている。博士号を取得し、libferris、ファイルシステム、検索ソリューションを中心としたコンサルティングサービスを提供している。

Linux.com 原文