Depende se a imagem do disco é uma imagem completa do disco ou apenas uma partição.
Lavando a (s) partição (ões)
Se o disco estiver em boas condições de trabalho, você obterá melhor compactação se lavar o espaço vazio no disco com zeros. Se o disco estiver falhando, pule esta etapa.
Se estiver imaginando um disco inteiro, convém lavar cada uma das partições do disco.
CUIDADO: Tenha cuidado, você deseja definir o of
a um arquivo na partição montada, não a partição-SE!
mkdir image_source
sudo mount /dev/sda1 image_source
dd if=/dev/zero of=image_source/wash.tmp bs=4M
rm image_source/wash.tmp
sudo umount image_source
Criando uma imagem de partição
mkdir image
sudo dd if=/dev/sda1 of=image/sda1_backup.img bs=4M
Onde sda
é o nome do dispositivo e 1
o número da partição. Ajuste de acordo com o seu sistema, se desejar criar uma imagem para uma partição ou dispositivo diferente.
Criando uma imagem de disco inteira
mkdir image
sudo dd if=/dev/sda of=image/sda_backup.img bs=4M
Onde sda
é o nome do dispositivo. Ajuste de acordo com o seu sistema se desejar criar uma imagem para um dispositivo diferente.
Compressão
Faça uma imagem "squashfs" que contenha a imagem completa não compactada.
sudo apt-get install squashfs-tools
mksquashfs image squash.img
Compressão de Streaming
Para evitar que um arquivo temporário separado seja do tamanho total do disco, você pode transmitir para uma imagem squashfs.
mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'
Montando uma imagem de partição compactada
Primeiro monte a imagem do squashfs, depois monte a imagem da partição armazenada na imagem do squashfs montado.
mkdir squash_mount
sudo mount squash.img squash_mount
Agora que você montou a imagem compactada, monte a própria imagem (que está dentro da imagem do squashfs)
mkdir compressed_image
sudo mount squash_mount/sda1_backup.img compressed_image
Agora sua imagem está montada em compressed_image
.
EDIT: Se você quiser simplesmente restaurar a imagem do disco em uma partição neste momento (em vez de montá-la para navegar / ler o conteúdo), apenas dd
a imagem no squash_mount/sda1_backup.img
destino em vez de fazê-lo mount
.
Montando uma imagem de disco completo compactada
Isso requer que você use um pacote chamado kpartx. O kpartx permite montar partições individuais em uma imagem de disco completa.
sudo apt-get install kpartx
Primeiro, monte sua partição compactada que contém a imagem completa do disco
mkdir compressed_image
sudo mount squash.img compressed_image
Agora você precisa criar dispositivos para cada uma das partições na imagem completa do disco:
sudo kpartx -a compressed_image/sda_backup.img
Isso criará dispositivos para as partições na imagem completa do disco, em /dev/mapper/loopNpP
que N é o número atribuído ao dispositivo de loopback e P é o número da partição. Por exemplo: /dev/mapper/loop0p1
.
Agora você tem uma maneira de montar as partições individuais na imagem completa do disco:
mkdir fulldisk_part1
sudo mount /dev/mapper/loop0p1 fulldisk_part1
SquashFS
para esse tipo de coisa. Ele também remove a duplicação de arquivos duplicados.