自宅のRaspberryPiなんですが、そろそろ色々と積み上げてきたものがあるので、ここいらでバックアップを取っておこうかと、その操作備忘録として、Macユーザー向けのRaspberryPiバックアップ方法をまとめていきます。
RaspberryPiはご存知の通り、内臓のHDD/SDDは持っていないので、全てmicroSDカードに保存しています。microSDカードですからね、いつか何かの拍子に書き込みエラーでデータが飛ぶこともありえますし、更には色々弄っている間に設定間違えて直せなくなるっていうことも可能性としてはありますから、念のためのバックアップは取っておきましょう。
バックアップ方法
標準ターミナルでのバックアップ方法
方法はいくつかあるかと思いますが、今回は一番簡単な方法でやります。ブロックデバイスを直接読み書きしてデータのコピーや変換を行う dd コマンドですが、MacでのUNIX標準コマンドとして使えるので、ddコマンドを使って、ディスクをimgファイルに書き出していきます。
先ずはRaspberryPiからSDカードを抜いていきますが、念のためしっかりシャットダウンさせてから行いましょうね。ここで電源ブチっとしてデータ壊れたら元も子もないですし。
RaspberryPiをシャットダウンして、SDカードを取り出す
$ sudo shutdown now
Connection to 192.xxx.xx.xx closed by remote host.
Connection to 192.xxx.xx.xx closed.
シャットダウンが完了したら、RaspberryPiの裏側からmicroSDカードを抜いていきます。 microSDカードが抜けたら、SDカードアダプタなどをつけて、Macに刺しましょう。ここら辺の手順はRaspberryPiを構築できている人であれば問題ないですよね。
さて、SDカードをMacに差してからは、ターミナルでの作業になります。
Macでのマウントディスク名を確認する
ターミナルAppを起動して、以下のコマンドを入力してディスク名を確認します。
$ diskutil list
<中略>
/dev/disk4 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk4
1: Windows_FAT_16 RECOVERY 1.7 GB disk4s1
2: Linux 33.6 MB disk4s5
3: Windows_FAT_32 boot 72.4 MB disk4s6
4: Linux 14.1 GB disk4s7
ここでいくつかディスクが表示されますが、今回ワタシの環境だと、/dev/disk4という名前でマウントされていることが確認できました。この番号は環境によって違うので注意してください。
ディスク名を確認できたら、バックアップのためにアンマウントしないといけないので、以下のコマンドでアンマウントしましょう。
$ diskutil umountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
ddコマンドでバックアップする
では早速ddコマンドでバックアップします。コマンドは以下を入力します。このコマンドの場合、保存先はカレントディスク(現在の場所)になっています。また出力名は、”raspi-backup.img”にしていますが、ここもわかりやすいものに変えてください。
## (if=”マウントディスク名” ディスク名は環境によって変えること)
$ sudo dd if=/dev/disk4 of=raspi-backup.img bs=1m
Password:
15193+1 records in
15193+1 records out
15931539456 bytes transferred in 2209.929648 secs (7209071 bytes/sec)
因みにバックアップには結構時間がかかるので注意してください。マシンパワーにも依存するかと思いますが、今回16GBのSDカードの場合で30~40分程度かかりました。
これでバックアップされたファイルをどこかに保存しておけば、作業は完了です。
リストア方法
標準ターミナルを使ったリストア方法
ここで標準ターミナルを使ったリストア方法をまとめています。リストアをするときには、別アプリなどを使った方がリストア時間が短くて済むなども利点もありますが、今回は追加アプリを使わないで、バックアップと同じく、Macで使えるUNIX標準コマンドのddコマンドを使っていきます。
先ずはバックアップと同じようにMacでのマウントディスク名を確認していくので、リストア先のmicroSDカードをSDカードアダプタに入れて、Macに刺していきます。手順としては、バックアップと同じですが、念のため再喝していきます。
Macでのマウントディスク名を確認する
ターミナルAppを起動して、以下のコマンドを入力してディスク名を確認します。
$ diskutil list
#<中略>
/dev/disk4 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk4
1: Windows_FAT_16 RECOVERY 1.7 GB disk4s1
2: Linux 33.6 MB disk4s5
3: Windows_FAT_32 boot 72.4 MB disk4s6
4: Linux 14.1 GB disk4s7
ここでいくつかディスクが表示されますが、今回ワタシの環境だと、/dev/disk4という名前でマウントされていることが確認できました。この番号は環境によって違うので注意してください。
ディスク名を確認できたら、バックアップのためにアンマウントしないといけないので、以下のコマンドでアンマウントしましょう。
$ diskutil umountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
ddコマンドでリストアする
バックアップしたファイルを選択して、リストア先のマウントディスク名にリストアしていきます。以下のコマンドの場合は、カレントディスク(現在の場所)にバックアップファイル”raspi-backup.img”があることになっていますが、環境によってこれも変更してください。
## (of=”リストア先マウントディスク名” ディスク名は環境によって変えること)
$ sudo dd if=./raspi-backup.img of=/dev/disk4 bs=1m
リストアについても、ファイルサイズにも寄りますが、バックアップと同じく結構時間がかかりますので、作業時間など注意してください。
コメント