DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

ラズパイのシステムをCUIでSDカードにバックアップする方法 備忘録

以前作ったスマートロックですが、いろいろと改良してシステムのバックアップを取っておきたくなったので簡単にバックアップをとるための備忘録です。

dreamerdream.hateblo.jp

 

 

 

ラズパイOSには標準でSDカードにシステムのバックアップを取るためのツールが用意されています。

以前はddでバックアップを取っていたのでこのツールが登場しただけで万々歳でしたが、GUIからでないと操作できないものなのでSSHからではやや面倒です。Xを飛ばそうか?とも考えたのですが、調べてみるともっと簡単なツールでバックアップが取れることが判明しました。

<参考>

uepon.hatenadiary.com

方法はこちらの記事そのままです。

 

 

インストール

任意のディレクトリでGitからこちらのコマンドで「rpi-clone」をダウンロード

git clone https://github.com/billw2/rpi-clone.git

ダウンロード画面

Cloning into 'rpi-clone'...

remote: Enumerating objects: 180, done.

remote: Counting objects: 100% (4/4), done.

remote: Compressing objects: 100% (4/4), done.

remote: Total 180 (delta 0), reused 1 (delta 0), pack-reused 176

Receiving objects: 100% (180/180), 98.78 KiB | 2.06 MiB/s, done.

Resolving deltas: 100% (68/68), done.

 

ダウンロードの確認

ls

コマンドでディレクトリ内に

rpi-clone

が存在していれば成功です。

 

rpi-cloneディレクトリへ移動

cd rpi-clone/

 

中身の確認をすると

ls

以下のファイルが含まれているはずです。

LICENSE  README.md  rpi-clone  rpi-clone-setup

以下のコマンドでファイルをsbinディレクトにコピー

sudo cp rpi-clone rpi-clone-setup /usr/local/sbin

 

インストール操作は以上です。

 

 

バックアップの準備

完了したら以下のコマンドで使えるストレージを確認します。

lsblk

ストレージが無い状態では以下のように表示されます。

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

mmcblk0     179:0    0 29.1G  0 disk

├─mmcblk0p1 179:1    0  256M  0 part /boot

└─mmcblk0p2 179:2    0 28.9G  0 part /

 

USBにバックアップ先のSDカードをセットします。

 

もう一度ストレージを確認します。

lsblk

ストレージが認識されると以下のように表示されているはずです。(古いラズパイシステムで使っていた8GのSDカード)

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda           8:0    1  7.5G  0 disk 

├─sda1        8:1    1  256M  0 part /media/pi/BOOT

└─sda2        8:2    1  7.2G  0 part /media/pi/rootfs

mmcblk0     179:0    0 30.1G  0 disk 

├─mmcblk0p1 179:1    0  256M  0 part /boot

└─mmcblk0p2 179:2    0 29.8G  0 part /

sdaが増えていることがわかります。

この「sda」がバックアップ先です。

 

バックアップ

バックアップ操作は以下のコマンド一発だけ。

sudo rpi-clone sda

 

必用があればいろいろと問われます。

  Destination disk partition /dev/sda2 is mounted on /media/pi/rootfs.

  The clone cannot proceed unless it is unmounted.

Do you want to unmount /media/pi/rootfs?  (yes/no): yes

 

  Destination disk partition /dev/sda1 is mounted on /media/pi/BOOT.

  The clone cannot proceed unless it is unmounted.

Do you want to unmount /media/pi/BOOT?  (yes/no): yes

 

Booted disk: mmcblk0 32.3GB                Destination disk: sda 8.0GB

---------------------------------------------------------------------------

Part      Size    FS     Label           Part   Size    FS     Label

1 /boot   256.0M  fat32  --              1      256.0M  fat32  --

2 root     29.8G  ext4   rootfs          2        7.2G  ext4   rootfs

---------------------------------------------------------------------------

== SYNC mmcblk0 file systems to sda ==

/boot                 (50.0M used)   : SYNC to sda1 (256.0M size)

/                     (4.1G used)    : SYNC to sda2 (7.2G size)

---------------------------------------------------------------------------

Run setup script       : no.

Verbose mode           : no.

-----------------------:

 

Ok to proceed with the clone?  (yes/no): yes

 

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 c7f3dd05

Editing /mnt/clone/etc/fstab PARTUUID to use c7f3dd05

 

 

「バックアップを取るにはアンマウントが必用だけど、パーティションをアンマウントしていい?」ということと「バックアップとっていい?」とうことが問われています。

「yes」で続行しています。

バックアップが完了すると

Hit Enter when ready to unmount the /dev/sda partitions ...

と出るのでエンターを押すとバックアップは完了です。

 

最後にラズパイで起動の確認をしておきましょう。

 

※追記

バックアップ時にパーティションの分割容量の不足に陥った場合、Macでパーティションごと削除フォーマットする必用があったので、こちらの記事を参考にフォーマットしました。

<参考>

microSDカードをmacで初期化する(全パーティションを消す)

 

 

 

 

kampa.me