RaspberryPiでバックアップを作る時に色々な方法があります。
Win32DiskImagerを使って全部バックアップが一番楽ですが、SDのサイズが合わない時が微妙なんですよね。
そんなワケで先人の知恵を借りて最小サイズのバックアップを作ります。
目次
DDコマンドで最小サイズのOSバックアップ
私、仕事でラズパイを活用してので複数台あります。
なのでラズパイにラズパイのSDを入れてDDコマンドでバックアップを作ります。
そんなワケで自分メモ。
まず確認
まずドライブの確認。
$ sudo fdisk -l Device Boot Start End Sectors Size Id Type /dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA) /dev/sdb2 532480 30228479 29696000 14.2G 83 Linux
そんで最小サイズの確認をします。
$ sudo resize2fs -P /dev/sdb2 resize2fs 1.46.2 (28-Feb-2021) Estimated minimum size of the filesystem: 1047568
計算
1047568 * 4 * 1024 = 4290838528
1047568 + 25400 = 1072968
式の意味は私が参考にさせていただいたサイト様で。
最小サイズから求めます。
ファイルシステムのチェックとサイズの変更
$ umount /dev/sdb2 $ sudo e2fsck -f /dev/sdb2 $ sudo resize2fs -p /dev/sdb2 1072968
パーティションの縮小の現状確認
$ sudo fdisk -l /dev/sdb Disk /dev/sdb: 14.41 GiB, 15476981760 bytes, 30228480 sectors Disk model: MassStorageClass 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: 0x8d9f101a Device Boot Start End Sectors Size Id Type /dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA) /dev/sdb2 532480 30228479 29696000 14.2G 83 Linux
上の /dev/sdb2 End の値から変更値を出す。
1072968 * 8 = 8583744
8584000 + 532480 = 9116480
パーティションの縮小
まず削除
$ sudo fdisk /dev/sdb Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Partition number (1,2, default 2): 2 Partition 2 has been deleted.
パーティションを作成。
First sector に /dev/sdb2 のStart の値。
Last sector に 上で計算した値を入れる。
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (2048-30228479, default 2048): 532480 Last sector, +/-sectors or +/-size{K,M,G,T,P} (532480-30228479, default 30228479): 9116480 Created a new partition 2 of type 'Linux' and of size 4.1 GiB. Partition #2 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: N
確認。
Command (m for help): p Disk /dev/sdb: 14.41 GiB, 15476981760 bytes, 30228480 sectors Disk model: MassStorageClass 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: 0x8d9f101a Device Boot Start End Sectors Size Id Type /dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA) /dev/sdb2 532480 9116480 8584001 4.1G 83 Linux
そして書き込み。
Command (m for help): w The partition table has been altered. Syncing disks.
最終確認
$ sudo fdisk -l /dev/sdb Disk /dev/sdb: 14.41 GiB, 15476981760 bytes, 30228480 sectors Disk model: MassStorageClass 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: 0x8d9f101a Device Boot Start End Sectors Size Id Type /dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA) /dev/sdb2 532480 9116480 8584001 4.1G 83 Linux
4.1G になってます。
別のメディアにバックアップ
縮小出来たのでバックアップです。
最終確認の /dev/sdb2 END の値から数値を出します。
9116480 × 512 / 4096 / 1024 = 1,112.8
そしてDDコマンド。
$ sudo dd bs=4M count=1113 if=/dev/sdb of=/media/pi/5694DCC394DCA731/2023bk.img status=progress 4668260352 bytes (4.7 GB, 4.3 GiB) copied, 388 s, 12.0 MB/s 1113+0 records in 1113+0 records out 4668260352 bytes (4.7 GB, 4.3 GiB) copied, 388.091 s, 12.0 MB/s
以上がバックアップ。
あとはリストアの際に
raspi-config の
Advanced Options ⇒ Expand Filesystem Ensures
からパーテーションを広げて終了。
参考にさせていただいたのはコチラです。
ではでは
Raspberry Pi 4 Model B/2GB