TestDisk 覚書 (FreeBSD)

2018-05-03

間違って Windows XP (今更?) のディスクのパーティションを飛ばしてしまった! (@o@)
FreeBSD 11.1 のインストーラ実行の最初の方で飛ばしてしまったというもの。

MBR 形式だろうから、パーティションを復活させるのは、自力でがんばれば不可能ではないかもしれないが、(入っていたものの重要度に比べても) ツラすぎる..

何か良い手段はないかとインターネット検索に助けを求めると..
いくつかツールが存在しており、特に TestDisk というものが、よさげである。
しかも、FreeBSD であれば ports で、NetBSD (他) であれば pkgsrc に用意されている。

(FreeBSD (ports ツリーを portsnap で取得していたとして))
% locate testdisk
/usr/ports/sysutils/testdisk
/usr/ports/sysutils/testdisk/Makefile
/usr/ports/sysutils/testdisk/distinfo
/usr/ports/sysutils/testdisk/pkg-descr

(pkgsrc でも sysutils/testdisk にある)

以下を参考にさせていただいた。

HDDのパーティションテーブルが消えてからのデータ復旧 | おおたの物置
【TestDisk】について このページが非常に詳しい。
TestDisk JP - パーティションの修復と削除したファイルの復元
TestDisk - Partition Recovery and File Undelete

導入

てもとの機材で最も都合が良かった、FreeBSD (11.1 / amd64 (AMD A10-6800K (GIGABYTE))) 機を用いることとした。

ハードディスク (東芝) の接続としては USB 3.0 (asmedia) <-> SATA 変換ケースを用いた。

TestDisk は ports からインストールした。 インストールは portinstall -s testdisk で行った。
このとき、「NTFS」 (Support NTFS via fuse-ntfs extensions) というもののチェックが外れていたが、チェックを付けておいた。 よく分からないが ntfs3g library というのを使うようになるようだ (後から確認した)。

復元

ほぼ一直線に進めただけだが。

対象となるのは以下のディスクである。

% dmesg
〜
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <TOSHIBA MK8032GSX 0> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 123456789012
da0: 400.000MB/s transfers
da0: 76319MB (156301488 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>

sudo testdisk で起動する (root 権限が必要)。

すると以下の画面キャプチャのようになる。

203021

Create (Create a new log file) が選択されたままエンターを押す。

USB で増設したディスク (反転表示) だけが表示された。
203039

dmesg 等から、反転表示されたディスクが他のディスクと間違っていないか、くれぐれも確認し、Proceed が選択されたままでエンター。
203056

Intel (AMD 機だが :-) のままエンター。 (Solaris のパーティションにも対応してるのかー)
203110

Analyze のままエンター。

すると FreeBSD のパーティション 1個になっている。
203127

Quick Search のままエンター。

すると、ほぼ元のパーティション構成? と思えるものがまず表示された。 CHS の Start と End を順に見ていっても、それっぽそうではある。
203256

Enter: to continue とあるのでエンターを押す。
203403

Deeper Search のままエンターを押す。

以下のような画面がしばらく続く。
203431 photo

二十数分かかっただろうか..
205726

Quick Search の結果と比べるとすれば、FreeBSD の「パーティション」が 1個増えたりしているし、全ての「パーティション」が D になっている。
なお p を押すと、ディレクトリやファイルを表示してくれるが、日本語のファイル名も表示してくれてよさげである。

まず、1番目 (1行目) が反転した状態のまま、右キーか左キーを何回か押して、D を * にする。
222209

下キーと右キー/左キーを押していって、3番目と 4番目と 5番目を P にする。
2番目の FreeBSD は D のまま。
222832

そうしたらエンターを押す。
223248

いまいちど、操作しているディスクが正しいことを確かめて、右キーで Write を選択して..
223543

エンターを押す。
223647

y を押す。
223759

Ok が選択されているので、エンターを押すと、コマンド一覧に戻った。

Quit を選択して..
224006

..エンター。 まだ終わらない。もう一度、Quit を選択して..
224055

..エンターで、終了。

だがしかし

..とやってみたが、ディスクを取り外して、取り付けて、電源を入れても、カーソルが画面の左上に出たままで、起動しなかった。 ブートコードも FreeBSD のインストーラが吹き飛ばしてしまったんだろうか。

さらに

となり、このディスクの復活は、断念してしまった。

ちゃんちゃん (´・ω・`)

以上


index