SD card を ddコマンドでバックアップする

はじめに

Raspberry Pi を使用する多くの場合、ストレージとしてSD(microSD)カードを使いますが、以前の実績のある環境を復元できるようにするために、イメージとしてバックアップできると便利です。

今回は、以前使用していた16GBのSDカードをUbuntuネイティブ環境(22.04)にてバックアップしました。

dmesg

SDカード挿入後、dmesg には下記が出力されていました。

(略)
[   87.657425] mmc0: new ultra high speed SDR104 SDHC card at address 0007
[   87.670036] mmcblk0: mmc0:0007 SD16G 14.4 GiB 
[   87.672381]  mmcblk0: p1 p2 < p5 p6 p7 >

fdisk

対象となるファイルディスクリプタを探すため fdisk を実行します。

wurly@k8s-worker1:~$ sudo fdisk -l
Disk /dev/loop0: 63.45 MiB, 66531328 bytes, 129944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 63.91 MiB, 67010560 bytes, 130880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 111.95 MiB, 117387264 bytes, 229272 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 86.99 MiB, 91213824 bytes, 178152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 53.26 MiB, 55844864 bytes, 109072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 40.43 MiB, 42393600 bytes, 82800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SPCC M.2 PCIe SSD                       
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A8E08FB7-F229-41AB-BCDC-B318D4D0330E

Device           Start       End   Sectors   Size Type
/dev/nvme0n1p1    2048   2203647   2201600     1G EFI System
/dev/nvme0n1p2 2203648   6397951   4194304     2G Linux filesystem
/dev/nvme0n1p3 6397952 500115455 493717504 235.4G Linux filesystem


Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk0: 14.43 GiB, 15489564672 bytes, 30253056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00059948

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1         2048  2792968  2790921  1.3G  e W95 FAT16 (LBA)
/dev/mmcblk0p2      2792969 30253055 27460087 13.1G  5 Extended
/dev/mmcblk0p5      2793472  2859005    65534   32M 83 Linux
/dev/mmcblk0p6      2859008  2994175   135168   66M  c W95 FAT32 (LBA)
/dev/mmcblk0p7      2998272 30253055 27254784   13G 83 Linux

いろいろ出力されるのでわかりにくいですが、 “Disk identifier” が含まれている下記2つのブロックが物理的なストレージを示してます。

/dev/nvme0n1 がメインのNVMe SSDで、 /dev/mmcblk0 が今回の SDカードと判断します。

Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SPCC M.2 PCIe SSD                       
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A8E08FB7-F229-41AB-BCDC-B318D4D0330E

Device           Start       End   Sectors   Size Type
/dev/nvme0n1p1    2048   2203647   2201600     1G EFI System
/dev/nvme0n1p2 2203648   6397951   4194304     2G Linux filesystem
/dev/nvme0n1p3 6397952 500115455 493717504 235.4G Linux filesystem

Disk /dev/mmcblk0: 14.43 GiB, 15489564672 bytes, 30253056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00059948

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1         2048  2792968  2790921  1.3G  e W95 FAT16 (LBA)
/dev/mmcblk0p2      2792969 30253055 27460087 13.1G  5 Extended
/dev/mmcblk0p5      2793472  2859005    65534   32M 83 Linux
/dev/mmcblk0p6      2859008  2994175   135168   66M  c W95 FAT32 (LBA)
/dev/mmcblk0p7      2998272 30253055 27254784   13G 83 Linux

バックアップ

下記でバックアップしました。

$ sudo dd if=/dev/mmcblk0  of=./rasp3b20240223.dd
30253056+0 records in
30253056+0 records out
15489564672 bytes (15 GB, 14 GiB) copied, 291.306 s, 53.2 MB/s

リストア

やってみてはいませんが、下記でリストアできるはずです。

$ sudo dd if=./rasp3b20240223.dd of=/dev/mmcblk0

おわりに

以上です。

Copied title and URL