Raspberry Pi 2のイメージバックアップを行う

Sun Jan 15, 2017 in server using tags raspberrypi , home-network , homenas1

Table of Contents

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。

今回はhomenas1のバックアップを行います。

gitのインストール

$ sudo -E apt-get install git
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  git-man liberror-perl
提案パッケージ:
  gettext-base git-daemon-run git-daemon-sysvinit git-doc git-el git-email
  git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn
以下のパッケージが新たにインストールされます:
  git git-man liberror-perl
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。
4,015 kB のアーカイブを取得する必要があります。
この操作後に追加で 20.4 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main liberror-perl all 0.17-1.1 [22.4 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main git-man all 1:2.1.4-2.1+deb8u2 [1,267 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main git armhf 1:2.1.4-2.1+deb8u2 [2,725 kB]
4,015 kB を 6秒 で取得しました (630 kB/s)                                      
以前に未選択のパッケージ liberror-perl を選択しています。
(データベースを読み込んでいます ... 現在 33218 個のファイルとディレクトリがインストールされています。)
.../liberror-perl_0.17-1.1_all.deb を展開する準備をしています ...
liberror-perl (0.17-1.1) を展開しています...
以前に未選択のパッケージ git-man を選択しています。
.../git-man_1%3a2.1.4-2.1+deb8u2_all.deb を展開する準備をしています ...
git-man (1:2.1.4-2.1+deb8u2) を展開しています...
以前に未選択のパッケージ git を選択しています。
.../git_1%3a2.1.4-2.1+deb8u2_armhf.deb を展開する準備をしています ...
git (1:2.1.4-2.1+deb8u2) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
liberror-perl (0.17-1.1) を設定しています ...
git-man (1:2.1.4-2.1+deb8u2) を設定しています ...
git (1:2.1.4-2.1+deb8u2) を設定しています ...
$

rpi-cloneのインストール

$ git clone https://github.com/billw2/rpi-clone.git
Cloning into 'rpi-clone'...
remote: Counting objects: 58, done.
remote: Total 58 (delta 0), reused 0 (delta 0), pack-reused 58
Unpacking objects: 100% (58/58), done.
Checking connectivity... done.
$
$ ls -l rpi-clone/
合計 20
-rw-r--r-- 1 pi pi  4026  1月 15 00:57 README.md
-rwxr-xr-x 1 pi pi 13933  1月 15 00:57 rpi-clone
$
$ sudo cp -p rpi-clone/rpi-clone /usr/local/sbin/

rpi-cloneでのバックアップ

今回、バックアップ先のmicroSDカードのデバイスはsddでしたので、rpi-cloneコマンドの引数にはsddを指定しています。32GBのmicroSDカードのバックアップには5分程度かかりました。

$ sudo rpi-clone sdd -f

Forcing a partition initialization of destination disk sdd
The existing destination disk 'sdd' partitions are:
Disk /dev/sdd: 31725MB
Partition Table: msdos

Number  Start   End      Size     Type     File system  Flags
 1      4.19MB  70.3MB   66.1MB   primary  fat16        lba
 2      70.3MB  31725MB  31654MB  primary  ext4

*** All data on destination disk sdd will be overwritten! ***

Do you want to initialize the destination disk /dev/sdd? (yes/no): yes

Imaging the partition structure, copying 78 megabytes...
78+0 レコード入力
78+0 レコード出力
81788928 バイト (82 MB) コピーされました、 25.7102 秒、 3.2 MB/秒
Running fsck on /dev/sdd1...
Sizing partition 2 (root partition) to use all SD card space...
mke2fs 1.42.12 (29-Aug-2014)
/dev/sdd2 contains a ext4 file system
	last mounted on / on Sun Jan  1 18:13:44 2017
Creating filesystem with 7728128 4k blocks and 1933312 inodes
Filesystem UUID: bffb6652-49b7-45ce-a9c6-46e745372a7c
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:        
done


/dev/sdd is initialized and resized.  Its partitions are:
Disk /dev/sdd: 31725MB
Partition Table: msdos

Number  Start   End      Size     Type     File system  Flags
 1      4.19MB  70.3MB   66.1MB   primary  fat16        lba
 2      70.3MB  31725MB  31654MB  primary  ext4


Your booted /dev/mmcblk0p2 rootfs existing label: 
You may enter a label for the destination rootfs /dev/sdd2: 
======== Clone Summary ========
Clone mode               :  rsync all files to sdd root file system
Clone destination disk   :  sdd
Clone destination rootfs :  /dev/sdd2 (no label) on /mnt/clone
Clone destination bootfs :  /dev/sdd1 on /mnt/clone/boot
Verbose mode             :  off
===============================
Final check, is it Ok to proceed with the clone (yes/no)?: yes
=> Mounting /dev/sdd2 (no label) on /mnt/clone
=> Mounting /dev/sdd1 on /mnt/clone/boot
===============================
Starting the filesystem rsync to sdd
(This may take several minutes)...
*** Done with clone to /dev/sdd ***
    Started: 01:07:27    Finished: 01:10:05

Hit Enter when ready to unmount the /dev/sdd partitions...
unmounting /mnt/clone/boot
unmounting /mnt/clone
===============================
$

バックアップmicroSDカードからのリストア

バックアップmicroSDカードをRaspberry Piにセットして起動するだけです。特にリストアという作業は必要ありません。

以上