GNU ddrescue is a data recovery tool. It copies data from one file or block device to another, trying hard to rescue data in case of read errors. It is necessary for uploading and backuping the rpi systems.
step.1.1. recover system image
ddrescue -d -D --force raspbian-stretch.img /dev/sdb
step.1.2. or recover the compressed image
gzip -dc raspbian-stretch.zip | dd bs=4M of=/dev/sdb
step.2. create the disc image
ddrescue /dev/sdb backup.img