NASをQNAPに買い換えてからも、バックアップ用に使用していたNetGear ReadyNas 104。
1年ほど前に、前面ディスプレイに"btrfs_merge_bio_hook+a0"と表示されたまま起動出来なくなりました。ReadOnlyモードやセーフモードでもブートできなかったので、とりあえず放置したまま、1年が経過。
その放置していたHDDを、そろそろ捨てたいので、一応中身を確認しておきたいと思うのですが
- ファイルシステムがBtrfs
- RAID5構成
- 4本のHDDのうち、1本は物理的に壊れている
という3つの問題が。
これらを解決できる方法として考えられるのが
- 自分のPCにUSBメモリーでブートできるLinux環境を用意する
- 安いPCを購入してLinux環境を作る
- Btrfsにアクセスできるソフトウェア(ドライバー)を使う
の3つ。
最初に考えたのが、オープンソースのWinBtrfsドライバー。加えてRAID5なので、WinMDも必要。ただ、現在使っているPCに3本のドライブを同時に接続するのがハードルが高い。手持ちの機器でUSB接続できるのが2本まで、SATAは既に6本のSSD/HDDが接続されていて空きが無い。よって、この案は後回し。
別のLinux PCを用意するという案も、手元にないので後回し。
とりあえず、ソフトウェアツールでなんとかしようとBtrfsパーティションを読み込めるツールをいくつか試したものの、RAIDに対応しておらずダメ。そんな中、「復旧天使」という復旧ツールを見つけて使ってみたところ、ディレクトリ構造まで確認できたので、必要なファイルが存在するかどうかは確認できました。
この普及天使というツールは
- 物理ドライブをドライブイメージとしてファイル化できる。
- 実際にデータを復旧しなければ無料(他のドライブへコピーするタイミングでライセンスが必要)。
今回は、手持ちの玄人志向HDDスタンドで2ドライブを接続、残り1本はドライブイメージを作成してマウント、という方法を取りました。

HDDスタンドに2ドライブをセットした状態で認識されたのはExt4パーティションと、SWAPパーティションの2つだけ。ここに3台目のHDDイメージを読み込むと…。

8TBのBtrfsのデータパーティションが見えるようになりました。自動認識なので特別な操作は不要。RAID5なので、4本のHDDの内、3本が生きていれば、普通に読み取れます。

あとはBtrfsパーティションを開くと、エクスプローラー風のUIで中身が見えます。ここからファイルを別のディスクにコピーする際には有償のライセンスが必要。
ということで、データ復旧はあっけなく完了。一応、全データをコピーしましたが、USB1ポート(5Gbps)でHDD2本を接続しているので、とにかく遅い…。丸一日かかりました。
頻繁に使うことが無いツールですが、使用中のQNAP TS-431PとTS-431Kで何かあった場合にも使えると考えると、持っておいて損はなさそう。ツールとして良く出来ていますし。
こういう時のためにサブPCがあったほうがいいなと思い、保険として安いミニPCを購入したものの、今回出番はありませんでした。


コメント