はじめに
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
おわりに
以上です。