「外付けハードディスク(HDD)が読めなくなってしまった。過去10年分のデータが入っているのに。何とかならない?」との相談。 もともとWindowsパソコンに挿して使っていたのを、何も考えずにMacに挿した結果、Macでフォーマットされてしまったとのこと。
相談はいろいろとくる。
今回フォーマットされてしまったハードディスクはこれ。TOSHIBA製 HD-ED10TK。
壊した本人はまず業者に見積を取ったらしい。業者いわく「ディスクを分解して見てみましたが…Macでフォーマットされちゃってますね…これでは簡易不良では済まないです。中程度の故障ですから最低でも25万円は必要になります」と言われたとのこと。そんなバカな。いやボッタクリもいい加減にしろ。
業者には修理断りの連絡を入れディスクを送り返してもらうよう指示。戻ってきたらすぐこちらに送るよう伝えた。
数日後、到着。ディスクを分解するときに筐体のプラスチックをバキバキに壊してくれてある。ダメだこりゃ。なんて業者だ。初心者もいいとこ。
送られてきたディスクをMacに繋いでみる。「認識できないディスク」と出るが「無視」する。
ディスクユーティリティを開くと、マウントはされていないがディスクとしては認識されているのが見える。これならddコマンドが使える。
壊れたハードディスク(sourceディスク):TOSHIBA
データ退避先ディスク(destinationディスク):extfat4TB
さっそくddコマンドでディスクイメージを丸ごと退避(imgファイル)にする。
$ sudo dd if=/dev/rdisk4 of=/Volumes/exfat4TB/RYOU.img bs=1m
※ img名は適当に。今回は「利用(RIYOU).img」にするつもりが、打ち間違って「RYOU.img」にしてしまった。
しかし、ddコマンドがなぜか Operation not permitted エラーになってしまう。
これはMacのプロテクション機能が原因。System Integrity Protection(SIP)を無効にしないと、外付けHDDをddできない。
SIP無効化はカンタン。
いったんMacの電源を落とす → command + r を押したままMacを起動する → メニュー「ユーティリティ」→「ターミナル」を起動し
$ csrutil disable
してから、rebootするだけ。
再起動後、ターミナルから
$ csrutil status
して、disabledならSIPは無効化されている。
もう一度ddコマンドを走らせる。念のためrootでやる。今度はうまくいった。
imgへの吸い出しにはかなり時間がかかる。1TBのTOSHIBA外付けHDDを丸ごとimgファイルにするのに一晩かかった。
imgファイル化が完了したら、原本になる外付けHDD(sourceディスク)は外しておく。そして、このimgファイルに対して、復元ソフトを使ってファイルの救出にかかる。
復元ソフトは(色々試したが)Recoverit が最強そう。
昨年(2018年10月17日時点)で記事になっているし、メンテが続いている。
※ ディスクの認識まわりはOSに深く依存するし、32bitか64bitかでも大きく違ってくるはずなので、直近までちゃんとメンテナンスされているソフトウェアであるかがかなり重要になる。
Recoverit Free版をインストールして復元を試みた。消えたはずの画像ファイルがガッツリ読めている。
Raw_Fileとあるのがimgファイルのことで、その下をしっかり読み込めている。
まる2日かけて1TBを全セクタ読み込んだ。
10年分の写真や動画、約280GB分を認識。すごい復元力だ。
見つかった画像は、画面右下にある復元ボタンからファイルに書き出すことができる。
バッチリ成功。
しかし、Recoverit Free版だと100MBしか復元できない。製品版だと容量無制限で復元できるらしい。Mac版だと7,980円もするし安くないが、楽天でお得に買えそうなので、次回買うことにする。