Borden [off-list ref] writes:
For my own education/curiosity/intellectual banter: ddrescue,
badblocks, rsync and other utilities have log files that track
progress and allow it to resume if it's interrupted. Since resize
operations work in the linear process you described, how hard would it
be, theoretically, to implement a "needle position" in a move
operation to allow a move to pick up where it left off?
Theoretically it shouldn't be too hard. It's just a matter of deciding
on a location where you can safely record the checkpoint information and
then update the checkpoint between blocks. That's how LVM handles
moves safely. In the worst case, you restart the move at the last
checkpoint and just waste some time copying data that was already copied
but not checkpointed.