現状をバックアップして、これから何か作るたびにこのベースをSDカードに復元して、ホスト名を変えれば効率が良さそう。
そういうわけで、今回はOSのバックアップ、および復元をまとめた。
(今回は短め)
前提
※今回の操作は、方法を間違うとデータを著しく破損させたりするため、十分注意して自己責任で。
マジで十分注意すること!!
まず、バックアップと復元は同じ容量の SDカード間で行う。
また、バックアップファイルがSDカード容量と同じサイズになるため、あまり容量が多いと色々不便。
そのため、SDカードはRaspbianが推奨する最小の容量である8GBを選択した。
バックアップ、復元の方法
基本的にOSごとにファイルの形式や保存方法は異なる為、ただ中身をコピーしてもRaspbianのバックアップはできない。
MicroSDをまるっとディスクイメージ化しておいて、別のSDにそのイメージを指定して復元する方法をとるのが一般的。
Raspbianのバックアップ
Windowsの場合
Windowsはコマンドなどが独特であまり使用されない代わりに、アプリケーションが充実している。
今回も便利なソフトを拝借してサクッとやってしまおう。
Win32DiskImagerをインストールする。このソフトはバックアップも復元もできる。
なんか起動に管理者権限が必要とのこと。はじめはexeを右クリックして「管理者として実行」を選択すると起動できる。
SDカードを挿したら「Device」の項目にバックアップ元のドライブ名が表示されるので、適切なもの(MicroSD)を選択する。
「Image File」に保存先のパスを入れたら「Read」を押すことができる。
"xxxxxxx.img"とかわかりやすい拡張子をつけておいたほうがいいね。
簡単簡単。
Macの場合
Mac OSXはUnix由来のOSなので、Unix、Linuxなどで実装されたコマンドを使うことができる場合が多い。
今回もそれを使用する。
まず、MicroSDカードのマウント先を確認する。マウント先とは簡単に言うと、MacにSDカードがどんな名前で認識されているか、ということを表す。
まずはSDカードを挿さないで
$ diskutil list
とコマンドを打つ。すると認識されているディスクが表示される。/dev/disk0 (internal, physical):
...
みたいに表示される。その後、SDカードを挿してから同様にdiskutilコマンドを打つと、先ほどのリストとの差分でMicroSDのdisk番号がわかる。
/dev/disk0 (internal, physical):
...
/dev/disk1 (external, physical):
...
みたいにexternalが一つ増える。上記の例の場合はdisk1が増えていることがわかる。これを覚えておく。
ddコマンドでバックアップを取る。MicroaSDのマウント先がdisk1の場合、
$ sudo dd bs=1m if=/dev/rdisk1 of=[保存先のパス]/RaspbianBackup.img
などとコマンドを打つ。ただし、imgファイル名は好きに決めてね。少し解説すると、ddコマンドは、ifで指定したファイルの内容をofで指定したファイル名でコピーするが、これが0/1レベルのコピーだというなかなか漢らしいコマンド。
bsは一度に処理するブロックのデータサイズ。ifのディスク名が「/dev/disk1」でなく「/dev/rdisk1」なのはアンバッファ・モードという書き込み、読み込みを行うための指定方法で、こっちのほうがコピーが速くなる、くらいに思っておくといい。
Win/Macどちらも同じくらいの時間がかかる。イメージファイルのサイズはMicroSDカードと同じ容量だが、有効なデータが少ないため、圧縮がかなり効く。保存する際にはオススメ。
Raspbianの復元
Windowsの場合
Win32DiskImagerを起動後、復元先のMicroSDカードを挿したら、「Device」の項目にドライブ名が表示される。
「Image File」にバックアップイメージファイルを選択して「Write」を押すと、復元が始まる。
超簡単。
Macの場合
バックアップと同じ方法で、SDカードのマウント先を確認しておく。(ここではdisk1とする)
SDカードに復元するのだから、当然まず、SDカードを挿す。
ただこの状態で書き込もうとすると、ビジーだと言われて書き込めない。OSがロックをかけている。
かといって、FinderでSDカードの取り出しを行うと、認識まで解除されるので書き込めない。
そこで、SDカードを挿した後にdiskutilコマンドでアマウントを行う。
$ diskutil unmountDisk /dev/disk1
ディスク名は適切に書き換えてね。次にddコマンドを、ifとofをバックアップ時とは逆にして入力する。具体的には
$ sudo dd bs=1m if=[保存先のパス]/RaspbianBackup.img of=/dev/rdisk1
しばらくすると書き込みが終わる。復元してRaspberry Piで起動し直したところ、普通にGUIでリモートログインができた。
これはいける!!
一見長く見える記事だけど、Win/Macどちらも書いたし説明部分が多い為、やってみるとすぐだと思う。
今回はここまで、次回こそは・・・
0 件のコメント:
コメントを投稿