-
Notifications
You must be signed in to change notification settings - Fork 12
Description
Hello, I am the author of fstransform https://github.com/cosmos72/fstransform a tool to change the file system type on a device, in place and without need for a backup. Your program looks very interesting, and had to solve some of yhe same challenges I met in mine.
If I understand correctly the documentation, luksipc cannot resume a conversion after a power failure, because it did not have time to create the"resume.bin" file contaning the pointers and the shadow block.
If you are interested, I have an idea to improve you program, so that it can resume a conversion even after a power failure.
In summary, the idea is:
Write the first block and the pointers into resume.bin before writing the LUKS header,
then encrypt the device backwards, i.e. first reading the (N-1)th block and encrypting it into the N-th block, then reading the (N-2)th block and encrypting it into the (N-1)th block, and so on...
Every time you encrypt one block, update the pointers in resume.bin and fsync() everything.
I did something similar in fstransform (actually a bit more complicated, I did not have the luxury of processing blocks sequentially) and it CAN resume a conversion even after a power failure :)