Image: IRST RAID0 Status - Failed からの復旧 [Win8]

インテル ラピッド・ストレージ・テクノロジーの謎のRAIDエラーを復旧させる。久々のデータ復旧奮闘記。

○症状。

それはBIOSをアップデートした後に起こった。ブート時に上のような画面が表示されたのである。

SSDを2台接続してRAID0を組んでいたのだが、そのRAIDボリュームでエラーが出ている。通常、StatusがFailedになるのは、ディスクが故障しているか接続されていないかのどちらかである。故障はメッセージが表示されるのでともかくとして、ディスクが接続されていない場合はそれを接続し直せば正常に動作する。ところがこの場合、RAIDとして設定したはずのディスクが「Non-RAID Disk」となっていて、RAIDアレイのメンバーとして認識されていない。RAIDの構成情報はマザーボードを交換しても引き継がれることから、RAIDの管理情報はディスクに記録されているのだろう。しかし、何らかの原因でその管理データが破損してしまった。それは恐らくBIOSのアップデートがきっかけで起きてしまった。
Intelはこの問題を解決する方法を考えていないようだ。

○回復までの道のり。

幸い別のディスクにWindows 7をインストールしてあったので、そこから起動してネットで情報を集めた。
そしてこちらのページを見つけて、これを参考にした。

HowTo : Recover Intel RAID "Non-Member Disk" Error.. - Page 7

今回はRAID0を組んでいたGPTディスクにUEFIでインストールしたWindows 8が起動しなくなったという環境を想定している。

※このサイトの情報によっていかなる障害が起ころうと、自己責任でお願いします。操作の前にディスクやパーティションを丸ごとコピーorイメージ化してバックアップすることをお勧めします。

○RAIDを組み直す。

電源投入時またはリセット時に[Ctrl]キーと[I]キーを同時に何度も押して、Intel Rapid Storage Technology - Option ROMの設定画面を表示させる。

メインメニューで「3. Reset Disks to Non-RAID」を選択する。RAIDを解除するディスクを選んで[スペーズ]キーで選択して[改行]キーを押す。「Resetting a disk causes all data on the disk to be lost.」(ディスクをリセットするとディスク上の全てのデータが失われます。)と表示されるが、パーティション管理テーブルの一部が壊れるだけで、ユーザーデータそのものに支障はない。

メインメニューで「1. Create RAID Volume」を選択する。解除したものと同じ設定で再度RAIDを組み直す。設定したら設定画面を終了する。

○TestDiskを使ってパーティション管理テーブルを修復する。

適当なOSを用意する。Windowsの場合はHDDへのインストールが必須だが、修復するRAIDディスクとは別のディスクを用意してそこにインストールすること。
こちらからTestDiskをダウンロードして適当な場所に展開する。TestDiskはパーティションテーブルを修復するオープンソース・フリーソフトで、Windows, FreeBSD, Linux, MacOS Xなどに対応している。

(Windows版の場合)インテル ラピッド・ストレージ・テクノロジー(ソフトウェア)がインストールされている場合はそれをアンインストールする。それからtestdisk_win.exeを起動する。

[Create]を選択する。

修復するRAIDディスクを選択して[Proceed]を選択する。

ディスクの種類を選択する。通常はあらかじめ選択されている項目を選べばよい。今回は[EFI GPT]ディスクということになる。

[Analyse]を選択する。

現在のパーティションテーブルが表示される。[Quick Search]を選択する。

簡易検索の結果が表示される。これでよければこのまま[改行]キーで進む。変更を加える場合は、[A]キーでパーティション追加、[T]でパーティションの種類を変更、[←][→]で登録するパーティションを選択する。

パーティションの追加や種類の変更を行ったところ。UEFI環境上でWindowsをインストールしたGPTディスクはだいたいこんな感じになると思う。

次の画面に進んだら、[Write]を選択する。パーティション情報が書き込まれる。

さあこれで直ったかと思ったら、そんな簡単にはいかなかった。ブート時にWindows Boot Managerのエラーが表示された。
Windows boot manager : Failed to start.
「Windows failed to start. A recent hardware or software change might be the cause. 」(Windowsの起動に失敗しました。最近のハードウェアまたはソフトウェアの変更が原因の可能性があります。)「The Boot Configuration Data for your PC is missing or contains errors.」(BCDが見当たらないかエラーがあります。)とのことなので、ブートローダーが行方不明になっている可能性がある。

○ブートローダーを修復する

Windows 8のインストールディスクから起動する。UEFI-GPT環境の場合はUEFIとして起動するのを忘れずに。

Windowsセットアップ画面が表示されたら、「コンピューターを修復する」をクリックする。
ブートメニューが表示されたら、「トラブルシューティング」→「詳細オプション」をクリックする。
Windows 8 詳細オプション

「自動修復」をクリックして自動での修復を試みる。
「問題は見つかりません」というメッセージが返ってくる。役に立たねー。しかし、このメッセージからWindowsのシステムは壊れていないと推測することもできる。

「コマンドプロンプト」を起動する。ブートファイルを再配置してBCDストアの初期化を試みる。

X:\> diskpart

Microsoft DiskPart バージョン 6.2.9200
Copyright (C) 1999-2012 Microsoft Corporation.
コンピューター: PC-NAME

;接続されているディスクの一覧を表示
DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           447 GB      0 B        *
  ディスク 1    オンライン            55 GB  1024 KB
  ディスク 2    オンライン           931 GB  5120 KB

;修復対象のディスクを番号で選択
DISKPART> select disk 0

ディスク 0 が選択されました。

;選択したディスクのパーティション一覧を表示
DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    予約                 300 MB  1024 KB
  Partition 2    システム               100 MB   301 MB
  Partition 3    予約                 128 MB   401 MB
  Partition 4    プライマリ              446 GB   529 MB

;EFIシステムパーティション(起動ドライブ)を選択する。
;ブート用のパーティションはFAT32でフォーマットされているので、 detail partitionコマンドで容易に見つけることができる。
DISKPART> select partition 2

パーティション 2 が選択されました。

;このパーティションは既定ではドライブ文字が割り当てられていないので、作業のためドライブ文字を割り当てる。
DISKPART> assign

DiskPart はドライブ文字またはマウントポイントを正常に割り当てました。

;EFIシステムパーティションのドライブ文字を確認する。
DISKPART> list volume

 Volume ###  Ltr Label        Fs    Type        Size     Status     Info
 ----------  --- -----------  ----  ----------  -------  ---------  --------
 Volume 0     F                       DVD-ROM         0 B  メディアなし

 Volume 1     M                       DVD-ROM         0 B  メディアなし

 Volume 2     C   Win8@SSDm    NTFS   Partition    446 GB  正常         ブート

 Volume 3     N                FAT32  Partition    100 MB  正常         システム

 Volume 4     E   ボリューム        NTFS   Partition     55 GB  正常

 Volume 5     D   システムで予約済み    NTFS   Partition    100 MB  正常

 Volume 6     G   Win7@HD1     NTFS   Partition    931 GB  正常

;DiskPartを終了する。
DISKPART> exit

DiskPart を終了しています...

;起動用ファイルが入っているパーティションにNという文字が割り当てられたので、 そこにブート環境ファイルをコピーする。
X:\> bcdboot C:\Windows /s N:

ブートファイルは正常に作成されました。

;BCDストアを初期化する。
X:\> bcdboot C:\Windows /l ja-JP

ブートファイルは正常に作成されました。

;コマンドプロンプトを終了。
X:\> exit

設定を終えたらインストールディスクを取り出して再起動する。
すっかり忘れていたが、bcdbootコマンドの代わりにbootrecコマンドを使う方法もある。

以上の操作で無事に復旧することができた。幸いなことにデータは削除されることなくそのまま残っていて、Windowsも何事もなかったかのように起動した。
それにしても、この問題は体験した人にとってはかなりトラウマになるだろうなあ。RAID0の欠点が浮き彫りになったと同時に、バックアップの大切さを思い知った。こんな苦労二度としたくない。

○パーティションの種類や属性の設定を元の状態に復元する

回復用パーティション(UEFI GPTディスクの最初にあるWindows REパーティション)は、DiskPartコマンドでパーティションを選択してから「set id=DE94BBA4-06D1-4D40-A16A-BFD50179D6AC」で種類を設定できる。ドライブ文字を削除するにはボリュームを選択してから「remove」を実行する。パーティションを削除できないようにするには「gpt attributes=0x0000000000000001」を実行する。パーティションに文字を割り当てないようにするには「gpt attributes=0x8000000000000000」を実行する。パーティションを削除できないように、かつパーティションに文字を割り当てないようにするには、先の2つの設定値の論理和をとって「gpt attributes=0x8000000000000001」を実行する。

ブートメニューに余計な項目が追加されてしまった場合は、コマンドプロンプト上で「bcdedit /delete [ID]」を実行する。

だいたい下のような構成になっていればOK。Microsoft Reserved Partitionはディスクの管理ツールには表示されないため、計3つのパーティションが表示される。

参考:→ Sample: Configure UEFI/GPT-Based Hard Drive Partitions by Using Windows PE and DiskPart - Microsoft Technet Library


旧ブログでのコメント

AUTHOR: にっと~
URL:
DATE: 2013/12/22 16:23:50
Unknown
貴重な情報ありがとうございます。
記述の内容で私もHDDを再認識させることができました。

m/bはmsiのP67A-GD65で、データディスクとして使っていた、RAID10でした。
別の要因でOSが起動しなくなり、UEFIで誤ってAHCIをRAIDモードに変更してしまいraidが壊れてしまいました。
OS普及後にFINAL DATAでRAID10のデータにアクセスできず、諦めモードに入っていたところ、こちらのページにたどり着きました。
test diskの作業の後、再起動した所、無事認識してくれました。
大変助かりました。

AUTHOR: akm
URL:
DATE: 2013/12/24 19:03:36
コメントありがとうございます
お役に立てて何よりです。
パーツ構成を変えるときやUEFI-BIOSの設定を変えるときにAHCI/RAIDの設定には要注意ですね。


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!