« RPiでUSBメモリを使う | トップページ | 1/12 Ferrari 312T4 ボディー塗装 »

2015年8月11日 (火)

RPiで起動中のシステムをusbメモリにバックアップ

SDカードが壊れた時のために激速とのうわさのlz4をインストールして運転しながらUSBメモリにバックアップをとってみた。これをcronで1週間に1度くらいの頻度で実行すればいいかな。本当は、起動中のシステムをバックアップしてはいけないらしいけど、DiskImageでも別途バックアップをたまにとることにする。

●lz4のインストール
wget https://github.com/Cyan4973/lz4/archive/r130.tar.gz
tar -xvf r130.tar.gz
cd lz4-r130/
sudo apt-get install cmake
cmake ./cmake_unofficial/
make
sudo cp lz4 /usr/local/bin/

●バックアップのスクリプト

#!/bin/sh
BKDIR=/media/usb0/
BKNAME=`date +%Y%m%d`.img.lz4
dd bs=4M if=/dev/mmcblk0 | /usr/local/bin/lz4 -1 -c > $BKDIR$BKNAME
echo "backup Complete!!"

ウェブのスクリプトをそのままコピペしたら、リダイレクトの記号>が文字化けして>になってた。16GのSDカード(3.1Gが使用中)をバックアップとるのに40分で、ファイルサイズは2.3Gだった。

8GのSDカードだと26分で、サイズは2Gになった。

7969177600 bytes (8.0 GB) copied, 1552.17 s, 5.1 MB/s
backup Complete!!

pi@raspberrypi2 ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.2G  3.0G  4.0G  43% /
devtmpfs        459M     0  459M   0% /dev
tmpfs            93M  548K   93M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           186M     0  186M   0% /run/shm
/dev/mmcblk0p1   56M   20M   37M  36% /boot
tmpfs            32M  4.0K   32M   1% /tmp
tmpfs            16M     0   16M   0% /var/tmp
tmpfs            16M  396K   16M   3% /var/www
tmpfs            32M 1016K   32M   4% /var/log
/dev/sda1        15G  2.0G   12G  15% /media/usb0
毎週月曜日の3:00に実行するようにcronに登録。
0 3 * * 1 sh /home/pi/backup.sh

●バックアップの復元

約1年使ってついにSDカードが逝った。USBメモリに1週間ごとにバックアップがとってあるけど、これを解凍してSDカードに書き戻すのが一苦労。

lz4をウィンドウズで解凍するソフトを探してみたけど、Lhaz 2.4が対応しているはずなのに、実際には落ちる。しょうがないので、raspberryでUSBメモリに解凍してからsambaでWindowsマシンにコピーして、それをImageWriterでSDカードに書き込んでバックアップを復活させた。 復活のコマンドは次の通り。

/usr/local/bin/lz4 -d 20160711.img.lz4

« RPiでUSBメモリを使う | トップページ | 1/12 Ferrari 312T4 ボディー塗装 »

RaspberryPi」カテゴリの記事

カテゴリー

フォト
無料ブログはココログ