*当サイトのリンクにはAmazonアソシエイトやアフィリエイトリンクが含まれております。

Raspberry Pi 4 B で最小サイズのOSバックアップを作る

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
からパーテーションを広げて終了。

参考にさせていただいたのはコチラです。

最小限のRaspbianのイメージを作成とコピー

ではでは

Raspberry Pi 4 Model B/2GB
おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください