Eu uso o alvo de snapshots de dmsetup
para testar as alterações em imagens de disco antes de confirmá-las (o principal caso de uso é ao recuperar dados - reparar o sistema de arquivos de imagem sem arriscar dados).
A imagem é apenas de leitura de loop, (e também faço um loop de um arquivo de apoio para o arquivo de apoio de snapshot) e crie um snapshot da seguinte forma:
$ echo 0 <size> snapshot <image-loop-device> <backing-loop-device> P 1 | \
dmsetup create <name>
Funciona bem: alterações em <name>
são salvas em <backing-loop-device>
e <image-loop-device>
não é alterado.
No entanto, se o <image-loop-device>
estiver montado, então dmsetup
falhará, com um erro Device or resource busy
. Por que o dmestup
deve precisar de um bloqueio exclusivo no dispositivo image
e existe uma maneira de contorná-lo (além de usar um dispositivo de loop separado para o suporte)?
Tags mount lvm loop-device linux