TIPSその9
「ダイナミックディスクがアクセス不能になった場合の修復方法」
●注意●
ここで示す操作は中・上級者向けのものです。初心者向けではありません。ここで書かれた内容を理解できない場合は、絶対に操作しないでください。間違えると取り返しのつかない結果になる恐れがあります。
●ダイナミックディスクとは
ダイナミックディスクは、Windows 2000から標準で使えるようになったHDD用のディスク管理システムで、元々はベリタスソフトウェアが開発した「Volume Manager」のサブセットとしてWindowsに提供されたものです。ただし、Windows XP Home Edition、Windows Vista Home Basic/Home Premium、Windows 7 Home Premiumはダイナミックディスクをサポートしません。またWindows 9xやWindows NTもダイナミックディスクを認識できません。
ダイナミックディスクには、ダイナミックMBRディスクとダイナミックGPT (GUID Partition Table) ディスクがあります。ただし、ダイナミックGPTディスクにアクセスできるのは、Windows Server 2003 SP1以降およびx64版Windows XP/2003/Vista/2008/7だけです。ここではダイナミックMBRディスク (以下単にダイナミックディスクと呼ぶ) について説明します。ダイナミックGPTディスクについては省略します。
ダイナミックディスクには、データを残したままのドライブサイズの動的な変更、RAIDの利用などの優れた特徴があるものの、以下で述べるような問題もあります。
従来のベーシックディスクでは、パーティションテーブルおよび拡張パーティションテーブルで各パーティションの情報を管理していますが、ダイナミックディスクでは、独自のデータベースに各ボリューム (ダイナミックディスクではパーティションの代わりにボリュームと呼びます) の情報を格納・管理します。この管理情報はHDDのほぼ最後の1MB領域に置かれます (正確には管理領域の後ろに未使用の領域が残る場合もありますので、常に最後とは限りません)。
問題は、このダイナミックディスクの管理情報についての詳細な仕様が公開されていないため、トラブル時の対処が困難であることです。ダイナミックディスクの管理情報が壊れると、特定のボリュームだけがアクセス不能になるだけでなく、HDD全体がアクセス不能になるのが普通です。しかもその修復方法がないとなると、安心してダイナミックディスクを使うことは躊躇われます。少なくとも、簡単にダイナミックディスクの管理情報を修復するためのツールが、MSあるいはベリタスから提供されないうちは、ダイナミックディスクを使わない方が賢明と考えます。
もう1つの問題は、ベーシックディスクからダイナミックディスクへの変換では、中のデータをそのまま保持した状態で変換できますが、その逆に、ダイナミックディスクからベーシックディスクへの変換は、いったんボリュームを削除する必要があるため、データが失われるという点です。
しかし、本当にデータを保持したままダイナミックディスクからベーシックディスクへの変換ができないかと言うと、実はできます。ただ、それを簡単に行うためのツールが提供されていないというだけです。そのため、ダイナミックディスクからベーシックディスクへの変換にはパーティションテーブルの手動での編集が必要になります。
ダイナミックディスクの管理情報が壊れるとダイナミックディスクにアクセス不能になります。しかし、この状態でも、壊れたのがダイナミックディスクの管理情報だけであり、ボリューム自体が壊れていなければ、ダイナミックディスクをベーシックディスクに変換することで、データにアクセスできるようになります。このような場合のために、ここでは、データを残したままダイナミックディスクからベーシックディスクに変換する方法について解説します。
●ベーシックディスクとダイナミックディスクの構造の違い
実際の手順を解説する前に、ベーシックディスクとダイナミックディスクの構造について見てみましょう。ベーシックディスクとダイナミックディスクの構造の違いを説明するために、次のパーティション構成のベーシックディスクの場合を例にとります (画面1)。これにMBR (パーティションテーブル)、パーティションブートセクタ (PBS)、それに拡張パーティションテーブルを加えたものが図1です。
画面1 ベーシックディスクの例
図1 上記ベーシックディスクの構造
これをダイナミックディスクに変換したものが画面2、および図2です。
画面2 上記ベーシックディスクをダイナミックディスクに変換した後
図2 上記ダイナミックディスクの構造
この2つを比べると、異なっている部分は、MBRの部分とダイナミックディスク管理データベースの2ヵ所だけです。その他は一切変わっていません。つまり、ベーシックディスクからダイナミックディスクに変換した場合、MBR中のパーティションテーブルが書き換わり、ダイナミックディスク管理データベースが追加されるということになります。
元のベーシックディスク (画面1、図1) の時のMBRが画面3です。そしてこれをダイナミックディスクに変換した後 (画面2、図2) のMBRが画面4です。これを見ると、ベーシックディスクでは3つあったパーティションテーテーブルのエントリが1つになり、HDD全体が巨大な単一パーティションとなったことがわかります。個々のパーティションの情報はここにはありません。個々のパーティション (ボリューム) の情報を格納しているのはダイナミックディスク管理データベースになります。
画面3 上記ベーシックディスクのMBR
画面4 上記ダイナミックディスクのMBR
そしてもう1つの違いがシステムIDです。ベーシックディスクでは「07」(NTFS)、「0C」(FAT32)、「0F」(拡張パーティション) であった (画面3) システムIDが「42」(ダイナミックディスク) に変わっています (画面4)。
これらのことから、ダイナミックディスクをベーシックディスクに戻すためには、MBR中のパーティションテーブルを元と同じにしてやればよいことがわかります。この際、ボリューム (パーティション) 自体には一切触る必要はありませんので、中のデータはそのまま残ります。また、ダイナミックディスク管理データベースについてはそのまま放っておけばよいので、手を加える必要はありません。これは空き領域になります。
●変換方法−その1−MBRのバックアップ/リストア
ベーシックディスクからダイナミックディスクに変換する前に、MBRのバックアップを取っておけば、そのMBRをリストアすることで、ダイナミックディスクから元のベーシックディスクに戻すことができます。もしこれからベーシックディスクをダイナミックディスクに変換することを考えているのであれば、MBRのバックアップを取っておくことをお勧めします。
ただし、この方法では、ダイナミックディスクに変換後に変更・作成されたボリュームについては対応できませんので、ダイナミックディスクに変換後に、ボリューム自体を変更・作成していないことが条件です。
●変換方法−その2−簡易変換法
MBRのバックアップを取っておけばよい、とは言っても、実際はバックアップを取っていなくて、HDDにアクセスできなくなって、さあ大変というのが普通でしょう。この場合、パーティションテーブルを編集してやればよいわけですが、パーティションのパラメータを全部設定するのは非常に面倒です。そこで簡単にダイナミックディスクをベーシックディスクに変換する簡易法を紹介します。ただし、この方法は正しい変換方法ではありませんので、いくつかの制限があります。
制限1:この方法で変換できるのは1つのボリュームだけです。ダイナミックディスク中に複数のボリュームがある場合は、その先頭のボリュームだけが変換されます。2番目以降のボリュームは変換されません。
制限2:変換可能なボリュームは次のいずれかの場合です。
(1) 元のベーシックディスクが基本パーティションであり、それをダイナミックディスクに変換した場合 (論理パーティションのベーシックディスクをダイナミックディスクに変換した場合は、この方法は使えません)。
(2) 変換される先頭のボリュームが、ダイナミックディスクに変換後に作成された場合 (ただしダイナミックGPTディスクの場合を除きます)。
制限3:変換後のパーティションはディスクパラメータが正常ではありませんので、そのままで使い続けるのは危険です。速やかに中のデータをバックアップして、パーティションを削除・再作成してください。
制限4:ダイナミックディスク中に複数のボリュームがあり、2番目以降のボリュームからもデータを回復したいときは、この方法は避けてください。2番目以降のボリュームのデータが壊れる危険があります。
前置きが長くなりましたが、実際の方法は、MBR (パーティションテーブル) 中のシステムIDをDisk Probeを使って書き換えるだけです。現在はこれが「42」になっているはずですので、これを「07」(NTFSの場合)、「0C」(FAT32の場合)、「06」(FAT16の場合) に書き換えます。「Disk Probeの使い方」、およびシステムIDの書き換え方は、「マルチブート/デュアルブートのすべて−その2 実践編−Part1 Windows MeとWindows 2000のデュアルブートシステム−すでにWindows 2000がインストールされている場合−Windows 2000のパーティションがFATの場合 その1」を参照してください。
システムIDの書き換えは、直接上記の「07」等の数値を入力してもかまいませんが、「View」メニューの「Partition table」画面で、「System ID」欄の該当ファイルシステムをダブルクリックすることでも変更できます (画面5)。システムIDを書き換えた後、変更を保存し、PCを再起動すれば、変換されたパーティションにアクセスできるようになるはずです。画面2、図2のダイナミックディスクを、この方法でベーシックディスクに変換した例を画面6に示します。これでわかるようにダイナミックディスク全体が1つのベーシックディスクに変換されています。変換されたパーティションにドライブ名が付いていない場合は、ドライブ名を付けることでアクセスできます。
画面5 「View」メニューの「Partition table」画面で、「System ID」欄の該当ファイルシステムをダブルクリック
画面6 ダイナミックディスクを簡易変換法でベーシックディスクに変換
この後、速やかに中のデータをバックアップして、パーティションを削除・再作成してください。
ダイナミックディスク、および修復方法について、より詳しくは、「データを残したまま、ダイナミックディスクをベーシックディスクに変換する方法」を参照してください。
(by ITAYA)
これで修復できない場合はハードディスク修復/データ回復サービスをご利用ください。
|