まごんの駄文

ぽんこつSEが勉強したことをアウトプットするためだけのブログです。

読み込めなくなったHDDをデータを消さずに復旧したい(未解決)その1

HDDを入れ替えたら読めなくなりました。

先に言っておくと、「この記事は解決してない」です。

作業の備忘録というか、調べながらやったことをメモしているだけ。

目次

環境

Windows11 Home

換装前

換装後

何が起きたか

PC購入時はSeagateのHDDにOSが入っていたのだが、SSDを購入し、SeagateのHDDはデータ格納用に変えた。

時が経ち、SeagateのHDDの空きが少なくなってきたのでWestern Digitalの8TBのHDDを購入し、差し替えた。

これ。(アフィリエイト

SeagateのHDDはUSBの外付けにした。 このディスク2というのがそれだ。見事に無効である。取り外してUSBの外付けにしただけでこの状態だ。

ちょっとした衝撃でハード故障したのだろうか。

やってみたこと

  1. 別のHDDに丸ごとクローン。
  2. Linuxにつなげてみる。
  3. TestDisk 7.2-WIPで調査。

別のHDDに丸ごとクローン

玄人志向のHDDスタンドで実施。特に止まることなくクローンは3時間ほどで完了し、同じように「無効」と認識されるHDDが2台できた。

スタンドはこれ。(アフィリエイト

つまり、ハード故障ではないと判断。

HDDスタンドの説明書に、クローン中不良セクタがあったらエラーになると書かれていたので、不良セクタも無かったのだろう。

Linuxにつなげてみる。

これはやらなきゃよかった。

VMwareにRocky Linux9.0をインストールしてホスト(Windows11)につないでるHDDをそのままゲスト(Linux)に接続してみたが、Linuxから見えない。ntfs-3g関連を入れてLinuxから救い出そうとしたが失敗。

このせいでHDDに変なパーティションができてしまったと思われる。

TestDisk 7.2-WIPで調査。

というわけで本題。

HDDを何とかするソフトを探していると有償のがいくつかでてくるが、これはオープンソース

以降はTestDiskを操作した記録。

1. ログは取るかい?

「つくる」「あるものに追加する」「いらない」の3択。

あったほうがいい。なぜなら画面に出力される以上の情報がログに出るからだ。

出力しても数百行程度のテキストなのでサイズも気にしなくていいし、何より少しでも情報が欲しい。

HDDの復旧で色々作業する場合、今までの作業は記録されていたほうがいい。

2. どのディスクを見るんだい?

接続されてるディスクが一覧で出るので該当するものを選ぶ。容量とデバイスの名前が出てるので見ればわかると思う。

3. 調査したいHDDのパーティションの種類はなんだい?

Windowsなら「Intel」か「EFI GPT」のどちらからしい。

選択肢の下に「Hint」として、TestDiskが検出したパーティションのタイプが出るので、それを選べばいいと思う。

今回は「EFI GPT」にした。

ちなみにデバイスマネージャーで該当のHDDの詳細を見ても「GPT」と書かれていたので合っているはず。

ここで「イベント」タブを見ると「デバイスの設定が移行されていません」と言われてる。

最初はこれ見て「内臓HDDを入れ替え前後で同じドライブ文字割り当てたから競合したのか?」と思ったがわからない。

エラーコード的な「0xC0000719 」でググると色んな症例が出てくるので、これで原因を特定するのは無理そうだ。

4. 何をしたいんだい?

「Analyse」を選ぶ。これと「Advance」以外の選択肢は上級者向けらしい。

すると次の画面で今のパーティション情報が出てくる。

check_part_gpt failed for partition
 3 P MS Reserved               208896     239615      30720 [Microsoft reserved partition]
Current partition structure:
 1 P EFI System                  2048     206847     204800 [EFI system partition]
 2 P MS LDM MetaData           206848     208895       2048 [LDM metadata partition]
No FAT, NTFS, ext2, JFS, Reiser, cramfs or XFS marker
 3 P MS Reserved               208896     239615      30720 [Microsoft reserved partition]
 3 P MS Reserved               208896     239615      30720 [Microsoft reserved partition]
 4 P MS LDM Data               239616 1952499711 1952260096 [LDM data partition]
 5 P Windows Recovery Env  1952499712 1953523711    1024000 [Basic data partition]

3が2つあるのは気になるけどとりあえず重なったりはしてなさそう。

5. 調べるかい?

まずは今のパーティション情報をバックアップした上で「Quick Search」だ。

これは簡易的にパーティションを検査してくれるメニューだそうだが、40時間くらいかかった

TestDiskについて色々調べてたら、海外のサイトで「Quick Searchを選ぶとそのままDeeper Searchが実行されるよ」とかいう記述を見たが本当だろうか。

色々なサイトを見てるとQuick Searchですぐに結果出て、その後ちゃんと検査したかったらDeeper Searchしなよ、みたいな記述を見かけたので、Quick Searchにこんなに時間がかかるとは思わなかった。

6. 調べた結果が出たよ!

40時間くらいかかったQuick Searchの結果、見つかったパーティションが羅列される。Analyseで出た結果とまるで違う。 Linux filesysなんてのがあるのはLinuxにつなげたときにできてしまったのかもしれない。

余計なことしなければよかった。

ここでログを見ると各パーティションのもっと詳しい情報が出てるのでログも確認する。

開始位置とかサイズとかめちゃくちゃやんけ!っていうパーティションは多分ぶっ壊れてるので捨てよう。

この画面で「P」を押すとそのパーティションの中身が見れて、ファイルを他のドライブにコピーできたりするらしいが、自分の場合は次のメッセージが出て何も見れなかった。

Can't open filesystem. Filesystem seems damaged.

残念ながらTestDiskでファイルを取り出すことはできないようだ。

7. どのパーティションを選ぶ?

さて、正しい(と思われる)パーティションを選ぶのだが、Analyseの時にあったパーティションが出て無い。

このまま進めるとあるはずのパーティションを捨ててしまうことになる。

そこで「load backup」により、Analyseの時に保存したパーティション情報を読み込むと、Quick Searchで見つかったパーティションとバックアップしてあったパーティションが混ざったリストができる。

Disk \\.\PhysicalDrive2 - 1000 GB / 931 GiB - CHS 121601 255 63
Partition               Start        End    Size in sectors
 D Unknown                     2048     206847     204800
 P EFI System                  2048     206847     204800 [EFI System Partition] [SYSTEM]
>P Unknown                   206848     208895       2048
  P Unknown                   208896     239615      30720
 D Unknown                   239616 1952499711 1952260096
 P MS Data                   239616 1952499711 1952260096
 D MS Data                 25019059   25021938       2880 [NO NAME]
 D MS Data                121907091  121909970       2880 [NO NAME]
 D MS Data                122114143  365078622  242964480
 D Linux filesys. data   1212047138 1218568156    6521019 [a~V 4)
 D MS Data               1951475713 1952499712    1024000
 D Unknown               1952499712 1953523711    1024000
 D MS Data               1952499712 1953523711    1024000 [Recovery tools] 

混ざっているので、当然同じパーティションも並ぶ。

バックアップ(backup.log)には開始位置とサイズしか情報が無いので、Unknownで出てくる。

Unknownのパーティションはログを見ながらTypeを変えよう。

8. やってしまった!

パーティションの情報を書き換えながら慎重に操作してるつもりが、Enter押してしまった。

焦ってEscを押すと「Analyse」を選ぶメニューに戻ってしまった。

「また40時間やるのか、、、」と一瞬気落ちしたが、でも大丈夫。

ログさえあれば自分で設定できるので問題ない。

しかし、安易にEnterを押してはいけない。

9. Analyse再開

もう一度Analyseからやりなおすのだけど、すぐにStopしていい。

そのままパーティションを直す画面に進むが、ここでログを元に、「add partition」すればいいのだ。

backupを取ってあるなら「load backup」してもいい。

ていうか結果論だけど「認識してないけど必要そうなパーティション」は無かったのだから、40時間も待たずにすぐに「load backup」してもよかったということになる。

10. そして書き込みへ

パーティションに問題が無いと思ったら、Writeするのだ。

「ホントに書き込むの?」と聞かれるので引き返したくなるけどWriteするのだ。

11. 一部復活

PCの再起動後HDDの一部のRecovery tools(G:)の部分だけが見えるようになった。

しかし相変わらずディスク管理上では「無効」のままだし、ボリュームの一覧にもなぜかGは表示されない。 diskpartではパーティション見える。 ダイナミックなのがだめなのだろうか。

まとめ

HDDが見えない

TestDiskでパーティション検査

パーティションを正す

一部のパーティションだけOSから見えるようになる

次回予告

  • ファイルの復元
  • ベーシックデータに変換
  • ブートセクタ
  • 仮想ディスク