2012年11月29日

WindowsでREGZAハードディスクのXFSパーティション、Wii WBFSが復旧可能なTestDiskの使い方

REGZA録画用ハードディスクが壊れてしまった・・・、そんな人の為に竹田さんが考えたアイデアを僕が形(デスクトップ・アプリケーション)にしたREGZA HDD EASY REPAIRですが、データ領域の構成情報(パーティション・テーブル)、データ領域(パーティション)自体が消えてしまった場合には修復することは出来ません。

repair

この状態だと、詳しい状況の把握が困難かつ手順が複雑化するので結果が出るまでに時間が掛かってしまいます。

何か良いツールは無いかなーと気にかけていたところ、TestDiskなる無料・オープンソースのツール発見!

早速、実践レポートしてみます。

パーティション・テーブル、パーティション自体が見えなくなってしまう状況とは


ハードディスク内のパーティション・テーブル、パーティション自体が見えなくなると、たとえデータ本体が残っていても、OS(Windows、Linux)からは中身を参照できなくなります。

僕の使っているUbuntuを例にすれば、ハードディスク(/dev/sda)が3つのパーティションで構成されているので、/dev/sda1〜sda3の3つの論理ファイルとして見えます。
(REGZA用ハードディスクは1パーティションで構成される為、/dev/***1と見えます)

$ ll /dev/sda*
brw-rw---- 1 root disk 8, 0 11月 29 17:45 /dev/sda
brw-rw---- 1 root disk 8, 1 11月 29 10:14 /dev/sda1
brw-rw---- 1 root disk 8, 2 11月 29 17:45 /dev/sda2
brw-rw---- 1 root disk 8, 5 11月 29 10:14 /dev/sda5

実際に使っているハードディスクで試すわけにはいかないので、今日は外付けハードディスクのパーティション・テーブル(構成情報)を消してみましょうか。

ハードディスクはREGZAと同じくXFSファイル・システムでフォーマットし、data.txtという名前でファイルを作っておきます。
 
testdisk_linux2

このハードディスク本体は/dev/sdcで、パーティションは1つ(sdc1)だけ。

$ ls /dev/sdc*
/dev/sdc  /dev/sdc1

次のコマンドでパーティション・テーブルを消してみます(全て0で上書きしてみます)。

$ sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.00392932 秒、 130 kB/秒

すると、ハードディスクを接続しても、本体は認識されますがパーティションは見えなくなってしまいました。

$ ls /dev/sdc*
/dev/sdc

以前の詳しい状況が分かっていれば再度パーティション・テーブルと第一パーティションを作成すれば治りますが、

$ sudo parted --script /dev/sdc mktable gpt # make partition table as gpt
$ sudo parted -- /dev/* unit s mkpart primary 40s 100% # make partition from 40 sector to end of disk

パーティションの数、それらの開始・終了位置がわからないので修復するのは大変。

こういった作業がTestDiskで自動化できるんです。


TestDiskのダウンロードと使い方


TestDiskはオープンソース、無料で開発されているデータ復旧用ツールです。

TestDisk Download - CGSecurity

凄いところは対応するファイルシステムの多さ。

TestDisk can find lost partitions for all of these file systems:

  • BeFS ( BeOS )
  • BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
  • CramFS, Compressed File System
  • DOS/Windows FAT12, FAT16 and FAT32
  • XBox FATX
  • Windows exFAT
  • HFS, HFS+ and HFSX, Hierarchical File System
  • JFS, IBM's Journaled File System
  • Linux btrfs
  • Linux ext2, ext3 and ext4
  • Linux GFS2
  • Linux LUKS encrypted partition
  • Linux RAID md 0.9/1.0/1.1/1.2
    • RAID 1: mirroring
    • RAID 4: striped array with parity device
    • RAID 5: striped array with distributed parity information
    • RAID 6: striped array with distributed dual redundancy information
  • Linux Swap (versions 1 and 2)
  • LVM and LVM2, Linux Logical Volume Manager
  • Mac partition map
  • Novell Storage Services NSS
  • NTFS ( Windows NT/2000/XP/2003/Vista/2008/7 )
  • ReiserFS 3.5, 3.6 and 4
  • Sun Solaris i386 disklabel
  • Unix File System UFS and UFS2 (Sun/BSD/...)
  • XFS, SGI's Journaled File System
  • Wii WBFS
  • Sun ZFS

まずは、以下のダウンロード・ページからお使いのパソコンにあった最新版パッケージをダウンロードしましょう。


testdisk-download

ダウンロードしたtestdisk-***.zipというファイルを解凍すると、taskdisk_win.exeというファイルがあります。


testdisk_win2

ここまで準備ができたら、先程故意に障害を起こしたハードディスクをWindowsに接続してみます。

機器本体は認識しますが、ファイルシステムの種類がXFSということもあり、中身を見ることはできません。

testdisk_win1

この状況でtestdisk_win.exeをダブルクリックして起動したら、まずログの出力方法を選択。
矢印キー(↑↓→←)で移動、決定はEnterキーで操作します。

ログ出力に関してはCreate(testdisk.logにログを保存)かNo Logで良いかと。

testdisk_win3

すると、ハードディスクの一覧が表示されるのですが、何と!普通Winddowsでは認識できないはずのXFSファイルシステムでもOK。

testdisk_win4

表示される容量、モデル名を参考に復旧するハードディスクを選択したら、Proceedを選んでEnter。

続いてパーティション・タイプを選択します。 Windowsであれば、まずIntel/PCですが、今回はREGZA録画用ハードディスクという前提なのでEFI GPTパーティションを選択(Enter)。

testdisk_win5

ちなみに、もしパーティション・テーブルが正常な場合は、画面下に推奨値が表示さるので参考にして下さい。

gpt

さあ、復旧作業に取り掛かりましょう。 表示されるメニューからAnalyseを選択してEnterキーを入力。

testdisk_win6

次の画面ではパーティションの一覧が表示されますが、今回はパーティションが消失しているので、そのままQuick Searchを選択してEnterキーを入力。

testdisk_win7

暫く待つとパーティションのスキャンが終わるのでそのままEnter(Continue)。

testdisk_win910

最後にハードディスクに書き込む(Write)か否かを選びます。 

testdisk_win911

勿論、ここではWriteするしかないので、最終確認画面でYを入力してEnter。

testdisk_win912

やっと終わりました。 最後は注意表示が出るのでOK、Quitを選択してTestDiskを終了し、ハードディスクを取り外します。

testdisk_win913

本当に復旧したんでしょうか? ハードディスクを再度Ubuntuにつなげてみます。

testdisk_linux3

お、無事認識されました!

testdisk_linux4

中身のデータも無事読み込むことが出来ました。


もちろんUbuntu(Linux)でも大丈夫


今回は最も利用者の多いであろうWindows版を例に説明しましたが、TestDiskにはLinux版、Mac版も用意されているので、Ubuntuでも利用できます。

Linux版では解凍したディレクトリに移動して次のコマンドを実行します。

$ sudo /path/to/testdisk-***/testdisk_static
(*部分はご利用のバージョンに依存します)

端末(ターミナル)のウインドウ・サイズが小さい(行数が少ない)とこんなエラー(TestDisk need 24 lines to work)が出るので注意して下さいね。

testdisk-24line-warning


大事なデータが復旧して笑顔が見れますように!



ファイナルデータ 10plus 特別復元版
AOSテクノロジーズ (2012-01-26)
売り上げランキング: 224

あきらめない主義 自分を始める30の視点
谷口郁子 
幻冬舎 
売り上げランキング: 259175

Posted by netbuffalo at 22:39│Comments(5)TrackBack(0)家電 | Linux


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4287051
この記事へのコメント
42Z1にてAVHD-UQ2.0を使っておりましたが、昨秋頃から再生時に所々モザイクが入ってなめらかに再生できなくなり、12月にとうとう認識しなくなって、「新しいUSBハードディスクを検出しました。登録を行いますか?」のメッセージが出るようになりました。年明けに東芝に電話して、TVとHDDの電源を落としてUSBをつなぎ直すという手順を2回行いましたが改善せず、登録し直すしかないといわれましたが、録画内容があきらめきれず、こちらにたどり着きました。
LenovoのノートPC G500(windows 8.1)でubuntu12.04.1(いくつかバージョンを試しましたが、これのみ確実に起動できました)をUSBメモリから起動して、ディスクユーティリティでデバイス名を確認したところ、末尾に1がありませんでした。
そこで、testdisk7.0にて、パーティションの復旧を試みましたが、Analyseを選択してEnterした後の画面に、

check_FAT: can’t read FAT boot sector
No FAT, NTFS, ext2, JFS, Reiser, cramfs or XFS marker
1 P MS Data 40 3907029134 3907029095 [primary]
1 P MS Data 40 3907029134 3907029095 [primary]

と出て、画面下のQuick SearchをEnterしても、処理が進みません。
このような状態でも、HDD Regeneratorを使うなどすれば、復旧可能でしょうか。よろしくご教示下さい。
Posted by X10ファン at 2016年01月10日 20:24
X10ファンさん、ご相談ありがとうございます。

大切な録画が見れず大変残念ですね。HDD Regeneratorで修復できるかですが、残念ながら私からは何とも言えません。お金をかければ修復する可能性は高まるとは思いますが、その可能性は決して高くは無い、というところだと思います。
Posted by netbuffalo at 2016年01月12日 22:47
5
すみません、こちらの書き込みをご連絡いただいたのですがスマホから投稿できなかったので、いったん別の方法でX10ファンさんに回答しました。
回答としては、不良セクターはパーティション情報のある先頭付近にあることが多いため、HDD Regeneraterで不良セクターが直るとTestDiskでパーティションが復旧できることがあります。xfs raidと誤認識しますが、復旧天使やUbuntuでデータが取り出せたら、別のxfsのHDDにコピーしてUUIDを移植したら復旧完了します。
もちろんこれはベストケースですので、実際やってみないとわからないです。
xfs_repairは不用意に掛けるとデータが失われますので注意してください。
Posted by 竹田 at 2016年01月13日 00:15
netbuffaloさん、竹田さん

ご回答へのお礼が遅くなってしまい、恐縮ですが、ありがとうございます。
幸いにも?上記の状態で頓挫し、xfs_repairを掛けるまでにはたどり着いておりません。
竹田さんには別のところでも申し上げましたが、もはや手に負えなさそうなので、来月HDDのある実家に戻った際に作業代行依頼の段取りをしようと考えています。
お二方から貴重なコメントをいただき、誠にありがとうございます。
Posted by X10ファン at 2016年01月15日 22:56
wiiuに外付けhddを接続して遊んでいたところ、突然中のデータが読み込めなくなった(wiiuに認識はされています。パソコンに接続しても認識したのですが、中身は見れず、本来出るはずのフォーマット要求もありませんでした。)ため、testdiskでwiiuのフォーマットに互換のあるwiiのwbfs修正法を使って直そうとしているのですが、肝心の修正法選択画面にWiiのwbfsの選択肢が出てきません。どうすればwbfsで修正できるのでしょうか。
Posted by ガンダム135号 at 2017年06月29日 14:21

コメントする

名前
URL
 
  絵文字