Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

raspi-cloneでCLIでもカードコピー

RaspberryOSのGUI版にはSDCardCopyerという便利なモンがありますが、CLIでは使えません。
そこらへんを何とかするツールとしてraspi-cloneというのがあります

実際のところ

導入

aptでは入らないのでgitから

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

簡単に呼び出せるようにするためか、
バイナリを直接ぶっこむ方法を公式が推奨しております。

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

実行

まずSDカードの中身を確認します。
SDカードリーダーに焼き対象のSDカードを挿して、fdiskで実態を確認。
私の手元ではsda1に入っている様子

$ sudo fdisk -l
...
Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        8192 60456959 60448768 28.8G  c W95 FAT32 (LBA)

挿しているのは一枚だけなので、以下の様に書き込みコマンドを実行。
"f"は初期化を強制、"p"はパーティションのサイズを変更。
後ろのは要らなかったかもしれない。

$ sudo rpi-clone -f -p 256M sda

Booted disk: mmcblk0 31.0GB                Destination disk: sda 31.0GB
---------------------------------------------------------------------------
Part      Size    FS     Label           Part   Size    FS  Label
1 /boot   256.0M  fat32  --              1       28.8G  --  --
2 root     28.6G  ext4   rootfs
---------------------------------------------------------------------------
== Initialize: IMAGE partition table - forced by option ==
1 /boot               (48.0M used)   : RESIZE  MKFS  SYNC to sda1
2 root                (3.1G used)    : RESIZE  MKFS  SYNC to sda2
---------------------------------------------------------------------------
-p 256M                : resize /boot to 524288 blocks of 512 Bytes.
Run setup script       : no.
Verbose mode           : no.
-----------------------:
** WARNING **          : All destination disk sda data will be overwritten!
-----------------------:

...

===============================
Done with clone to /dev/sda
   Start - 01:53:37    End - 02:49:00    Elapsed Time - 55:23

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
===============================|

というわけで、RasPi4B+の8Gですら約一時間かかりました。
3B+だと三時間とか普通にかかりそうな勢いです。