O GNU / Linux possui montagem de união que sobrepõe dirs. Assim, você pode montar um dir gravável em cima de um dir somente leitura. Quando o diretório gravável é desmontado, o diretório somente leitura é intocado.
Estou procurando a mesma funcionalidade para dispositivos de bloco - de preferência com a parte gravável armazenada em um arquivo. Então, eu gostaria de executar algo como:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Se eu escrever em / dev / newdevice, as alterações deverão ser armazenadas em overlayfile. Se eu ler os setores gravados, devo obter os dados do overlayfile. Se eu ler setores não gravados, devo obter os dados do / dev / dispositivo somente leitura.
Existe uma ferramenta desse tipo?
block-device
loop-device
snapshot
Ole Tange
fonte
fonte
Respostas:
Você pode fazer isso com o mapeador de dispositivos e seu
snapshot
destino.Basicamente, você faria o mesmo que o LVM faz ao criar um instantâneo gravável.
Em seguida, você pode acessar o dispositivo sobreposto como
/dev/mapper/newdevice
.Se você também precisar acessar o dispositivo original ao mesmo tempo, poderá:
E acesse-o novamente
/dev/mapper/originaldevice
.Você pode gravar nesse dispositivo e, além dos pedaços gravados no dispositivo de captura instantânea, o arquivo de sobreposição conterá uma cópia dos pedaços que foram substituídos ao gravar na origem da captura instantânea.
O arquivo de sobreposição pode ser um arquivo esparso. (por exemplo, crie-o como
truncate -s10G the-file
) e não precisa ser tão grande quanto o dispositivo original. Você pode dizer o quão cheio estádmsetup status "$newdevname"
.Nota: Existem requisitos de tamanho e conteúdo em um dispositivo de captura instantânea .
fonte