MacでのRaspberry Piのバックアップ&復元をちゃんと確認する
相変わらずRaspberry Piの無線LANの調子が悪くて、色々試しているうちに、起動時のSDカードの読み込みでエラーが発生するようになってしまいました。
「こんなときのためのバックアップ!」ということで、以前にMacのディスクユーティリティを使って作成しておいたdmgファイルで、再びディスクユーティリティを使ってSDカードに復元しようとしたら、何やらうまくいきません。半日ぐらいがんばってみましたが、うまいこといきません。ということで、イチからRAPIRO環境を立ち上げ直すことになりました。めんどくさいからって復元テストをサボっていたらこの様です。なんという片手落ち。
まだそんなに大したことはしていないし、幸いにしてやってきたことは全部このHPに載せてあるので、おそらく一日あれば復旧は可能だと思われますが、同じ思いをするのは二度とゴメンなので、面倒ですが今回はしっかりバックアップ&復元のテストをやってから環境構築を再開したいと思います。
1. Raspberry Piの起動確認
ここからNOOBSを落として来て、解凍。中身をSDカードにコピーして、Raspberry Piに挿してから電源ON。Raspbianを選択してインストール。起動できることを確認。
2. Macでバックアップ作成
前回はディスクユーティリティを使ってうまくいかなかったので、今度はコマンドラインで試してみる。参考はこちらとこちら。
まず、mountでSDカードのデバイス名を確認。
Mac-mini:~ xxxx$ mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk1s2 on /Volumes/Time Machine バックアップ (hfs, local, nodev, nosuid, journaled) /dev/disk2s1 on /Volumes/RECOVERY (msdos, local, nodev, nosuid, noowners) /dev/disk2s5 on /Volumes/BOOT (msdos, local, nodev, nosuid, noowners)
この場合だと、disk2がSDカードのデバイス名。まず、これをアンマウントする。
Mac-mini:~ xxxx$ diskutil umountDisk /dev/disk2 Unmount of all volumes on disk2 was successful
もう一回mountで、アンマウントされているかを確認。
Mac-mini:~ xxxx$ mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk1s2 on /Volumes/Time Machine バックアップ (hfs, local, nodev, nosuid, journaled)
次に、dmgファイルを作成する。
Mac-mini:~ xxxx$ sudo dd bs=1m if=/dev/disk2 of=20140329_raspbackup.dmg Password: 15193+1 records in 15193+1 records out 15931539456 bytes transferred in 2912.235535 secs (5470553 bytes/sec)
オプションの”bs=1m”は、「入出力のブロックサイズを1MBに指定」ということらしいですが、意味はよくわかっておりません。16GBのメモリーカードだと、処理が完了するまで結構時間がかかります。
バックアップファイルができたら、SDカードを取り出す。
Mac-mini:~ xxxx$ diskutil eject /dev/disk2 Disk /dev/disk2 ejected
3. バックアップデータの復元
バックアップデータをSDカードに写す前に、SDカードをフォーマットする。
SDカードを再び挿したら、ディスクユーティリティを開く。SDカードの下に「RECOVERY」と「BOOT」がマウントされているが、気にせずSDカード全体を選択し、MS-DOS(FAT)フォーマットを選択して消去。
パーティションが全部消えると確認されるが、気にせず消去。
消去が終わったら、mountでSDカードのマウント状態を確認。
Mac-mini:~ xxxx$ mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk1s2 on /Volumes/Time Machine バックアップ (hfs, local, nodev, nosuid, journaled) /dev/disk2s1 on /Volumes/RASPBERRYPI (msdos, local, nodev, nosuid, noowners)
disk2でマウントされているので、これをアンマウントする。
Mac-mini:~ xxxx$ diskutil umountDisk /dev/disk2 Unmount of all volumes on disk2 was successful
この状態で、バックアップデータをSDカードに写す。
Mac-mini:~ xxxx$ sudo dd bs=1m if=20140329_raspbackup.dmg of=/dev/disk2 Password: 15193+1 records in 15193+1 records out 15931539456 bytes transferred in 2987.544501 secs (5332653 bytes/sec)
これまた結構時間がかかる。終わったら、mountでマウント状態を確認。
Mac-mini:~ xxxx$ mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk1s2 on /Volumes/Time Machine バックアップ (hfs, local, nodev, nosuid, journaled) /dev/disk2s1 on /Volumes/RECOVERY (msdos, local, nodev, nosuid, noowners) /dev/disk2s5 on /Volumes/BOOT (msdos, local, nodev, nosuid, noowners)
SDカードのフォーマット前と同じマウント状態になっているので、大丈夫そう。あとはこれを取り出して、Raspberry Piで動作を確認する。
Mac-mini:~ xxxx$ diskutil eject /dev/disk2 Disk /dev/disk2 ejected
Raspberry PiにSDカードを挿して電源を入れると、無事に起動しました。
無意味にSDカードを消去したり復元したりするのは、時間がかかりますし、正直言って大変面倒です。が、それでも1回はやっておいて、作業記録をつけておくことをおススメします。できれば色々作り込んで行く前に。でないと、データが壊れた瞬間に、RAPIROで遊ぶモチベーションががくんと下がってしまいかねません。
ディスカッション
ピンバック & トラックバック一覧
[…] (3/29追記:Mac版は上記のリンクだけだと復元がうまくできないかもしれませんので、別記事でバックアップ&復元方法の記事を書きました) […]
[…] 由は、お仕事とかプライベートのこととかで時間がとれていないということに加えて、こちらの記事に書いたとおり、いろいろやっているウチにRaspberry Piのデータが吹っ飛んでしまった […]
[…] MacでのRaspberry Piのバックアップ&復元をちゃんと確認する […]
[…] MacでのRaspberry Piのバックアップ&復元をちゃんと確認する […]
[…] 』のバックアップ、および別のSDカード上へのデータの復元は、私が過去にラピロのバックアップを取るためにやったやり方と全く同じようにやれますので、必要であればご参照ください […]