お手軽にインストールできるRaspberry Piですが、結構頻繁にSDカードが破損します。
転ばぬ先の杖ということで、rpi-cloneを用いてバックアップした記録です。
rpi-cloneは縮小コピーもできるので、サイズの小さいSDカードにコピーすることもできます。
また標準のSDコピーと比較して、短時間でコピーできることがポイントです。
リンク
rpi-cloneのインストール
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
バックアップしてみる
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 30G 0 disk
├─sda1 8:1 1 256M 0 part /media/test/bootfs
└─sda2 8:2 1 29.8G 0 part /media/test/rootfs
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.5G 0 part /
# バックアップ先のSDカードのデバイス名は「sda」
# バックアップ実行(SDカードのデバイス名は「sda」)としてバックアップ開始
sudo rpi-clone sda -f
このあといくつかの確認に"yes"と答えて、バックアップが開始され、およそ数分で完了します。
実際のログ
~ % sudo rpi-clone sda -f
Destination disk partition /dev/sda1 is mounted on /media/test/D2AD-2131.
The clone cannot proceed unless it is unmounted.
Do you want to unmount /media/test/D2AD-2131? (yes/no): yes
Booted disk: mmcblk0 31.9GB Destination disk: sda 31.3GB
---------------------------------------------------------------------------
Part Size FS Label Part Size FS Label
1 /boot 256.0M fat32 -- 1 29.1G fat32 --
2 root 29.5G ext4 rootfs
---------------------------------------------------------------------------
== Initialize: IMAGE partition table - forced by option ==
1 /boot (50.0M used) : MKFS SYNC to sda1
2 root (4.6G used) : RESIZE MKFS SYNC to sda2
---------------------------------------------------------------------------
Run setup script : no.
Verbose mode : no.
-----------------------:
** WARNING ** : All destination disk sda data will be overwritten!
-----------------------:
Initialize and clone to the destination disk sda? (yes/no): yes
Optional destination ext type file system label (16 chars max): rpi3-20240426
Initializing
Imaging past partition 1 start.
=> dd if=/dev/mmcblk0 of=/dev/sda bs=1M count=8 ...
Resizing destination disk last partition ...
Resize success.
Changing destination Disk ID ...
=> mkfs -t vfat -F 32 /dev/sda1 ...
=> mkfs -t ext4 -L rpi3-20240426 /dev/sda2 ...
Syncing file systems (can take a long time)
Syncing mounted partitions:
Mounting /dev/sda2 on /mnt/clone
=> rsync // /mnt/clone with-root-excludes ...
Mounting /dev/sda1 on /mnt/clone/boot
=> rsync /boot/ /mnt/clone/boot ...
Editing /mnt/clone/boot/cmdline.txt PARTUUID to use 884c6696
Editing /mnt/clone/etc/fstab PARTUUID to use 884c6696
===============================
Done with clone to /dev/sda
Start - 20:06:06 End - 20:11:56 Elapsed Time - 5:50
Cloned partitions are mounted on /mnt/clone for inspection or customizing.
Hit Enter when ready to unmount the /dev/sda partitions ...
unmounting /mnt/clone/boot
unmounting /mnt/clone
===============================