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