Você pode usar a captura instantânea do LVM para isso em vez de clonar. Se algo der errado, basta copiar o arquivo do clone.
Existe um libdevmapper / libdevmapper-event-lvm2snapshot que pode ser útil ao fazer isso de forma programática (sem bifurcação): link
Editar:
Se você puder alterar seu programa, aqui está outra solução: link
mmap () o arquivo duas vezes, uma vez normalmente e uma vez com MAP_PRIVATE
.
Isso evitaria as externalidades (performance esp) do lvm