エラーの発生したディスクからファイルを読み出すには、別のマシンにディスクを取り付けて読み出すとよい。ファイルのコピーには、エラーを無視してコピーすることができるxcopyコマンドを使うとよい。
対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/Windows 2000 Server
コンピュータを構成するパーツの中でも、故障した場合の被害が最も大きくなるパーツはハードディスクであろう。CPUやメモリ、グラフィックス・カードなど、そのほかのたいていのパーツは、壊れても別のものに置き換えればそのまま使うことができるが、ハードディスクが壊れると、すべてが失われてしまう可能性があるからだ。 このような事態を防ぐためには、重要なデータの小まめなバックアップやRAIDによるデータ保護などが欠かせないが、パーソナル用途のマシンや、(サーバではない)単なるクライアント・マシンでは、現実にはほとんど行われていないことも多い。一般的には、ディスクが壊れれば、可能な限りデータを読み出してほかのマシンにコピーしたあと、マシンを修理に出すか、ディスクを交換することになるだろう。
ディスクが壊れるといっても、いきなりディスクが無応答になるわけでなく、その前兆となる兆候が現れることも多い。例えば読み出しエラーが多発したり、読み出しのリトライ(再試行)のために時間がかかったりするようになる。またイベント・ビューアには、次のようなエラーが多数記録されていることからも判断できるだろう。
ディスクのインターフェイス部分が壊れた場合は外部から全くアクセスできなくなり、ファイルを読み出すことは不可能であるが、ディスクの一部が読み取り不可能になっただけならば、まだファイルを救済できる可能性がある。メールやドキュメント、重要なファイルなど、可能な限りファイルを読み出してから、ディスクの修理や交換を行いたいところだ。
だが、ディスクが不調なままシステムを起動しようとしても、システム・ファイルにエラーが含まれているとシステムが起動しないし、たとえ起動はできても、不良部分に書き込もうとしてファイル・システムにさらにダメージを与える可能性がある(壊れかけたディスクにchkdskなどは持ってのほかだ。ファイル・システム全体が消去されてしまい、全くアクセスできなくなる可能性がある)。こうなってしまっては、救えるファイルも救えなくなるので、すぐに別のマシンにディスクを接続して、必要なファイルを素早くコピーして回収するのが望ましい。
別のマシン(FAT32とNTFSの両方が使える方が便利なので、Windows 2000かXPマシンが望ましい)にディスクを接続すると、元のディスクのパーティションが新しいドライブとして見えているはずだ。もし見えていなければ、[管理ツール]の[コンピュータの管理]に含まれる[ディスクの管理]ツールでドライブ名を割り当てておこう。 さて、あとはエクスプローラで必要なファイルやフォルダだけを選んでコピーすればよさそうだが、実はこれはうまくいかない。エクスプローラのコピーでは、もし途中でエラーが含まれるようなファイルに遭遇すると、(何度かリトライするが、最終的には)コピー作業を中断してしまうからだ。エラーのたびにユーザーが残りのファイルを選択しなおして、コピーを再開するのは現実的ではない(階層フォルダになっていると、どこまでコピーされたかが分からないから)。 このような場合は、エラーがあればそのファイルをスキップして、残りの作業を行えるとありがたい。エラーを無視してファイルをコピーするには、コマンド・プロンプト上でxcopyコマンドを使うとよい。xcopyは、フォルダのツリーごとファイルをコピーするためのコマンドであるが、オプションとして「/c」を付けると、途中でファイルやフォルダが読み出せないというエラーが発生しても、それをスキップして、処理を続けることができる。
以下は、G:\(エラーが発生した元のドライブ)のすべてのファイルを、C:\rescueへコピーしている場合の例である。「/s /e」は空のフォルダを含むフォルダ・ツリー全体をコピーするというオプション、「/c」はエラーを無視してコピーするオプション、「/h」は隠しファイルやシステム・ファイルもコピーするというオプションである。詳しくは「xcopy /?」で表示される説明を参照していただきたい。
C:\RESCUE>xcopy /s /e /c /h g:\*.* c:\rescue
G:\AUTOEXEC.BAT
G:\BOOT.INI
G:\bootfont.bin
G:\BOOTLOG.PRV
G:\BOOTLOG.TXT
G:\BOOTSECT.DOS
G:\CONFIG.SYS
G:\NTDETECT.COM
G:\ntldr
G:\SYSLEVEL.IBM
データ エラー (巡回冗長検査 (CRC) エラー) です。…エラー発生。だが無視してコピーしている
G:\Documents and Settings\Administrator\NTUSER.DAT
G:\Documents and Settings\Administrator\ntuser.dat.LOG
G:\Documents and Settings\Administrator\ntuser.ini
G:\Documents and Settings\Administrator\Application Data\desktop.ini
…(以下省略)…
この例では、途中で「データ エラー (巡回冗長検査 (CRC) エラー)」が発生しているが、無視してコピーされている(CRCは、ハードディスクやフロッピー・ディスクで使われているエラー検出技術)。ただし何度かリトライを行うので、エラーと判断されるまでかなり(手元のマシンでは30秒程度)かかる(エラーに遭遇するごとにこの時間がかかる)。ディスクの故障の具合によっては、「インページ エラー」なども表示されることがあるが、いずれにしてもエラーのあるファイルは無視してコピー作業が行われる。エラーのある部分は何度かxcopyを再実行すれば読み出せることもあるが(ディスクが冷えていると調子が戻ったりするので、何度か実行してみるのもよいだろう)、どうしてもだめな場合はあきらめるしかない。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.