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 権限が必要)。
すると以下の画面キャプチャのようになる。
↓
Create (Create a new log file) が選択されたままエンターを押す。
↓
USB で増設したディスク (反転表示) だけが表示された。
↓
↓
dmesg 等から、反転表示されたディスクが他のディスクと間違っていないか、くれぐれも確認し、Proceed が選択されたままでエンター。
↓
↓
Intel (AMD 機だが :-) のままエンター。
(Solaris のパーティションにも対応してるのかー)
↓
↓
Analyze のままエンター。
↓
すると FreeBSD のパーティション 1個になっている。
↓
↓
Quick Search のままエンター。
↓
すると、ほぼ元のパーティション構成? と思えるものがまず表示された。
CHS の Start と End を順に見ていっても、それっぽそうではある。
↓
↓
Enter: to continue とあるのでエンターを押す。
↓
↓
Deeper Search のままエンターを押す。
↓
以下のような画面がしばらく続く。
↓
↓
二十数分かかっただろうか..
↓
↓
Quick Search の結果と比べるとすれば、FreeBSD の「パーティション」が
1個増えたりしているし、全ての「パーティション」が D になっている。
なお p を押すと、ディレクトリやファイルを表示してくれるが、日本語のファイル名も表示してくれてよさげである。
↓
まず、1番目 (1行目) が反転した状態のまま、右キーか左キーを何回か押して、D
を * にする。
↓
↓
下キーと右キー/左キーを押していって、3番目と 4番目と 5番目を P にする。
2番目の FreeBSD は D のまま。
↓
↓
そうしたらエンターを押す。
↓
↓
いまいちど、操作しているディスクが正しいことを確かめて、右キーで
Write を選択して..
↓
↓
エンターを押す。
↓
↓
y を押す。
↓
↓
Ok が選択されているので、エンターを押すと、コマンド一覧に戻った。
↓
Quit を選択して..
↓
↓
..エンター。
まだ終わらない。もう一度、Quit を選択して..
↓
↓
..エンターで、終了。
だがしかし
..とやってみたが、ディスクを取り外して、取り付けて、電源を入れても、カーソルが画面の左上に出たままで、起動しなかった。
ブートコードも FreeBSD のインストーラが吹き飛ばしてしまったんだろうか。
さらに
-
TestDisk の MBR Code のメニューでブートコードを書いてみたが起動しない。
- FreeBSD の fdisk でブートコードを書いてみたが起動しない。
- NetBSD の fdisk でブートコードを書いてみたが起動しない。
-
その状態で TestDisk で NEC-RESTORE の方をアクティブにしたらそれは起動した。
このことから、パーティションの復活はまるっきり失敗したというわけではなさそうだ。
-
そこからリストアを試みたが Norton Ghost が Application Error 19235
(Decompression error (!!)) となって失敗した。
(余段だがリカバーメディアの販売を調べたが終了していた)
となり、このディスクの復活は、断念してしまった。
ちゃんちゃん (´・ω・`)
以上
index