アヤポコの雑記*2人目育児中

育児のこと、旅行のこと、仕事のこと。30代の第二子子育て中の雑記です。

【スポンサードリンク】

Macの内蔵HDDが読み取れなくなってからデータを救出するまで

macのクラッシュ

長年使っていたMacBook Pro 2012midが突然起動できなくなった。
スリープ状態にしていたmacを再度開くと、見たことのないフォルダに?のついたマークが。なんだ?と思って再度閉じてからまた開くとマークが変わって駐車禁止のようなマークがでてきた。
公式サイトによると、起動ディスクが問題となっている模様。
Mac の起動時に表示される画面について - Apple サポート

何度か再起動してもリンゴマークは現れず同じような状態。
起動時にcommand+Rを押してみると地球儀が現れて接続するwifiを聞かれる。wifiを接続してからしばらく待つが、正しく起動できなかったようで、ディスクユーティリティが開かれる。
ここで、内蔵HDDがマウントされていないことがわかる。手順に従ってFirst Aidから検証→修復を押しても状況はかわらない。
f:id:ayapc:20200324150853j:plain
command+Sでシングルユーザモードで入って "# root: "になった状態で "fsck -fy"を実行というのもやってみたけどやっぱりマウントされず。
2012年製のmacなので、そろそろHDD自体の寿命がきていたのかもしれない。
本体は買い替えることにしても、問題はソースやメモファイルなどバックアップを取っていない&クラウドにもあがっていないものが大量にあること。
なんとかしてデータを救出するべく、いろいろデータ救出ソフトを試してみる。
OS自体は外付けHDにインストールして外部HDからmacを起動できるようになった。

試してみたデータ救出ソフト

Disk Drill

インストールして、さっそくマウントされていない内蔵ディスクを指定してスキャンを開始。
Macintosh HD - Dataと記載がある場所があったのでそこを指定してみる。
かなり時間がかかるみたいで一晩おいておいたら次の朝にはリストが見れるようになっていた。
リストを見ると、欲しかったファイルがある!
チェックして復元ボタンをいそいそと押すと、アップグレードしますか?と聞かれる。
ここからは有料プランなのか。。と思いつつ、お金を払えばデータ回復できることがわかったので、いったんほかの方法で試してどれでもダメだったらこれに戻ってこようと決める。
www.cleverfiles.com


iSkysoft

次に試したのはこちら。
同じようにディスクを指定して復元をかけてみる。こちらは残り時間が表示されるインタフェースなので、進んでいる感じがしてうれしい。
そしてしばらくすると、欲しいデータも見えてきたが、もう少しスキャンが完了するまでは待つことに。
Macでのデータ復元には「iSkysoft 万能データ復元!for Mac」!

スキャンまでは無料、有料でデータ復旧ができる。


結局スキャンまでしか無料プランではできなかった。復元まで無料で使えるソフトを探してみる。
試してみたのはこちらどちらも2GBまでは無料プランで復旧できる。

EaseUS Data Recovery Wizard

2GBまではデータ復旧無料。試してみると実際に写真データを取り出すことができた。今回ほしかったメモファイルはどこにあるのかまだ探せていない。Macの純正アプリからデータを引っ張るのはなかなか難しそうだ。
ツリー表示ができるので、ディレクトリを指定してデータを引っ張ってくることができる。
EaseUS®データ復元フリーソフト - EaseUS Data Recovery Wizard Free


Mac Free Photo Recovery

これは結構お世話になった。せめて写真だけでも救出しておこうと、とりあえずできる限りの写真を救出してみた。
フォーマットしてしまったディスクにも使える。2GBまでは無料でデータ復元できる。色々無料版がシリーズになっているので、写真を復旧2GB分で使って、その後またHDDの無料プランを使うなどして欲しいデータを退避した。
Macの無料写真の回復:Macソフトウェアのための無料の写真ファイルの回復


無料で使えるものはどれもデータ量の制限があったり、スキャンまでだったり。
完全に無料で使えるものも探してみた。

Recuva for Mac

こちらは復旧まで無料で使用できた。最初にこのソフトを試せればよかったんだけど、検索で上位に出てくるものはなぜかスキャンまでが無料のものが多い。SEO対策でお金の掛け方が違うのかな。
Mac用Recuvaフリーウェアフルバージョン無料ダウンロードMac上でオンライン

RecoveRX

ツリー形式ではみることはできなかったが、これも上限なしで復旧することができる。データのファイル形式ごとに復旧するファイルを選択することがで切るので、復元したいファイルの拡張子がわかっていてjpegだけ引っ張ってくるようなことがしたい場合には有効。
https://jp.transcend-info.com/Support/Software-4

Lazesoft Mac Data Recovery

これも何回もディープスキャンをかけて色々取り出した。全て無料で使えて写真や動画も取り出すことができたが、メモデータは結局破損していて正常に取り出すことができなかったので結局は別の方法を試すことに。
Lazesoft Mac Data Recovery - Free Data Recovery for Mac


データ復元系のソフトはどれもスキャンには相当時間がかかります。夕方にセットして朝までスキャンしっぱなしで置いてやっとスキャンが終わるくらい。
復元したいデータが少しであれば2GBの無料枠があるEaseUS Data Recovery Wizardを使うのが良さそう。メモのデータだけ、とかソースだけの場合。写真や動画など2GBを超える容量の大きなものを取り出すならデータが破損して一部取り出せない可能性もあるがRecoveRXなどを試してみてもいいかもしれない。
何しろフォーマットしたデータまで取り出せるなんてびっくりだった。

MacBook Pro 2012midからマウントしていないHDDを取り出す

そうこうしている間に購入していた新しいMacBookが到着。古いMacからHDDを取り出して外付けとして接続してデータを取り出せるか挑戦。
まずはヨドバシのサイトで玄人志向GW2.5CR-U3 [HDDケース 2.5型SATA]を購入。
マウントしなくなった旧2012年式Macに入っていた内臓HDDを取り出してケースにはめてみる。
前にもメモリ増設するときに精密ドライバーなんかを揃えていたので、家にあったドライバーでネジを取って中からそっとHDDを取り出す。
f:id:ayapc:20200324150102j:plain取り出したHDDをそのまま購入したケースにはめる。

http://www.yodobashi.com/product/100000001002270038


新しく購入したMacに挿すと、なんと外付けとして認識してくれた。フォルダもアプリケーションもそのまま。
その後旧2012年式Macにも挿してみるが、こちらは外付けとして認識してくれなかった。何が違うかは不明。
ちなみに最新式のMacBookはタイプCの差込口しかないので、購入したケースのままでは接続できない。別で変換器をかますか、タイプCの接続ケーブルを使う必要がある。今回は家にあったバッファロのHDDのタイプCケーブルで対応した。

外付けHDDとして読み込めたので、旧データをフォルダから新しいMacにコピーすることができた。今までやっていたスキャン→復元の動作はなんとここにきて全て不要な作業となった。
今回の悪い場所はHDDと完全に特定できているので、このまま取り出したHDDの代わりに新しいSSDなんかを入れても旧2012年式Macは再利用できそう。

メモの回復

本題、バックアップしていなかったメモの内容を回復する。
いくつか調べてみると、このフォルダにあるファイルが必要だということがわかった。
/Users/[ユーザ名]/Library/Containers/com.apple.Notes/Data/Library/Notes

  • NotesV7.storedata
  • NotesV7.storedata-shm
  • NotesV7.storedata-wal

NotesV7.storedataが15MBあり、これの中にデータが入っていそう。新しいMacの同じ場所にあるファイルを上書きしたりなんだりと色々試してみるが、なかなかメモの内容が期待した通りに更新されない。
NotesV7.storedataこのファイルをそのままテキストファイルとして開けるという情報も見つけたが、テキストでそのまま開いても文字化けして読み取ることができなかった。

ターミナルからNotesV7.storedataのファイルをSqlite3で読み込んでからコマンドを叩いてCSVとして書き出しすることで、やっと内容が読めるようになった。CSVにしたものを整形してHTML形式にしてなんとか救出。
参考にしたのはこちら。
http:// discussions.apple.com/thread/8402323

一気にリストアできなかったけどなんとか救出できた。


実際に叩いたSQLはこちら。

select f.ZNAME AS Folder, n.ZTITLE AS Title, b.ZHTMLSTRING AS NoteHTML,n.ZDATECREATED AS Created, n.ZDATEEDITED AS Edited
from ZNOTE n
inner join ZFOLDER f ON n.ZFOLDER = f.Z_PK
inner join ZNOTEBODY b ON n.ZBODY = b.Z_PK;

メモの日付変更

救出したファイルだが、そのままメモにはっつけると作成日と変更日が貼り付け時点の日付になってしまう。できたら日付もそのまま昔のデータを保持したい。
色々調べたが、evernoteの形式で読み込むのが一番良さそうだったのでその方法を採用。
Evernoteに一回メモを読み込ませて作成日、変更日を編集してからインポートする。2個目以降は雛形を作って残りの読み込ませたいメモのインポートファイルを大量生成して一気にメモに読み込ませた。メモのアプリのファイル→”メモ”に読み込むでEvernoteからエクスポートした拡張子「.enex」の形式のファイルを読み込むことができる。

使った雛形

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export3.dtd">
<en-export export-date="20200212T035639Z" application="Evernote" version="Evernote Mac 7.14 (458244)">
<note><title>メモのタイトル</title><content><![CDATA[<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note>メモの中身メモの中身メモの中身メモの中身メモの中身<div>2行目メモの中身</div>
</en-note>]]></content><created>20190919T012328Z</created><updated>20190919T012336Z</updated><note-attributes><author>ユーザ名</author> <source>desktop.mac</source><reminder-order>0</reminder-order></note-attributes></note>
</en-export>


上記の雛形の変更する部分はこちら。

  • created
  • updated
  • title
  • en-note


参考にしたのはこちら。
How to change the date created and date modified of a note in Notes.app? - Ask Different


とりあえず上記の奮闘の結果、メモもソースも元どおりとなった。
ソースはそのままデータ復元の流れでもとりだせたし、外付けHDDとなった元内蔵HDDからも取り出すことができた。
Apple仕様のメモは保存場所の実態が見えないようになっていることから復元にかなり手間どった。

新しいMacと共に正常な環境に戻してからTime Machineを設定し、メモもiCloudに移行して一安心。色々と高い勉強代だった。