割り当てられたスペースにのみddを使用するにはどうすればよいですか?

割り当てられたスペースにのみddを使用するにはどうすればよいですか?

DDを使ってディスク全体をバックアップしたい。 3つのパーティションで構成される512 GBのディスクがあり、8 GBだけを占有し、残りは使用されません。

root@routerMARS:~# parted  /dev/sda print
Model: ATA MT-512 (scsi)
Disk /dev/sda: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
128     17.4kB  262kB   245kB                      bios_grub
 1      262kB   17.0MB  16.8MB  fat16              legacy_boot
 2      17.0MB  8000MB  7983MB  ext2

私はそれを次のようにバックアップしたい

dd if=/dev/sda bs=4M conv=noerror | pv | gzip -c > /mnt/backupusb/sda.img.gz

それでは、私が思ったように、バックアップにwithを使用する必要がありますかddcount=$(( 8000 / 4 ))

私は次のことをしました。

DD_DISK=/dev/sda  
SAVE_FILE=/mnt/backupusb/sda.img.gz  
DD_BS=4194304 # 4 MB  
DISK_LEN=$(parted --script --json ${DD_DISK} unit B print | jq '.disk.partitions | map(.end) | [.[]|rtrimstr("B")|tonumber] | max')  
DD_COUNT=$(( (DISK_LEN + DD_BS - 1) / DD_BS )) # "DD_BS - 1" is to round up division

sync
dd if=${DD_DISK} bs=${DD_BS} count=${DD_COUNT} conv=noerror | pv --buffer-size ${DD_BS} --size ${DISK_LEN} --rate-limit 50M | gzip -c > ${SAVE_FILE}

合うかおすすめお願いします。

関連情報