Resposta geral curta: não.
A opção --sparse
grava um arquivo esparso (imagem) em um sistema de arquivos que suporta esse recurso. De Wikipedia :
A sparse file is a type of computer file that attempts to use file system space more efficiently when the file itself is mostly empty. This is achieved by writing brief information (metadata) representing the empty blocks to disk instead of the actual "empty" space which makes up the block, using less disk space. The full block size is written to disk as the actual size only when the block contains "real" (non-empty) data.
When reading sparse files, the file system transparently converts metadata representing empty blocks into "real" blocks filled with zero bytes at runtime. The application is unaware of this conversion.
Eu uso muito arquivos esparsos como imagens, principalmente com dd
. É verdade que você pode economizar espaço e otimizar para isso (veja minha resposta para outra pergunta ; observe que se você usar ddrescue
porque você suspeita que sua unidade está com defeito, ou faz a análise forense ou a recuperação de dados, então você não deve "otimizar" desta forma). Também é verdade que a imagem esparsa pode ser pequena o suficiente para ser salva mesmo em partições substancialmente menores, mas isso não é clonagem; isso é apenas salvar um arquivo grande de uma maneira inteligente.
Um arquivo esparso que existe dentro de um sistema de arquivos em um disco pode ser o caminho certo para armazenar os dados, porque você pode montar as partições subjacentes e trabalhar com elas (pelo menos no Linux, o Windows não parece tão inteligente; algumas ferramentas úteis : kpartx
, mount -o offset=…
). Ainda nem o arquivo nem o disco que o contém podem substituir sua unidade de origem no BIOS / UEFI - ou seja, você não pode inicializar a partir dele e executar o sistema operacional que estava na unidade de origem (a não ser com virtualização, eu acho). Para inicializar, você precisa realmente clonar um dispositivo para o outro. Neste caso, não há camada de sistema de arquivos que entenda arquivos esparsos, então você precisa que sua unidade de destino seja pelo menos tão grande quanto a unidade de origem. (Surpreendentemente, até uma unidade maior pode causar alguns problemas: A Tabela de Partição deve estar no fim, clonagem simples para uma unidade maior irá colocá-la em uma posição errada.
Resumindo: se você precisar clonar para substituir um disco pelo outro e inicializar a partir dele ou usar o Windows com ele, o conceito de "arquivo esparso" não ajudará. Por outro lado, se você quiser arquivar os dados, metadados, tabela de partição, MBR, todos juntos, criar um arquivo esparso é um caminho a percorrer. O arquivo esparso também será uma boa idéia como armazenamento temporário se você planeja clonar indiretamente em um disco grande o suficiente depois.
Para ajustar todos os seus dados em um disco menor que substituirá o de origem, você precisa de uma ferramenta que entenda partições e sistemas de arquivos, com capacidade de reduzi-los. (Estritamente falando, isso não seria clonagem também.) ddrescue
não é uma ferramenta desse tipo.
Dois cenários em que ddrescue
ou dd
podem copiar com êxito os dados para um disco menor:
- Há espaço não particionado no final do disco de origem, portanto, todas as partições se encaixam no destino.
- Algumas partições (irrelevantes para o processo de inicialização, se houver) não cabem, mas você planeja descartá-las (remover da tabela de partição) da unidade de destino de qualquer maneira.
Nenhum desses cenários tem nada a ver com arquivos esparsos.