I wish to clone a large disk (a 500GB SSD, for what it's worth), and I am leaning toward using cat
, as suggested by Gilles here. But what gave me pause is that I do not really know what cat
does upon read errors. I know how dd
behaves in these cases, i.e. the command
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
does not stop for errors on read, and pads the read error with zeroes (the sync
option) so that data stays in sync. Unfortunately, it does so by padding the zeroes at the end of the block to be written, so that a single error in an early 512-byte read messes up the whole 64K of data (even worse with larger, faster block sizes).
So I am wondering: can I do better/differently with cat
? Or should I just move on to Clonezilla?