O Clonezilla usa dd
nos bastidores.
Sobre discos e partições
Um disco inteiro é como um dispositivo /dev/sda
. Este é o primeiro disco, o segundo disco é /dev/sdb
, o terceiro /dev/sdc
, etc. discos mais antigos conectados através de um cabo IDE são nomeadas como hda
, hdb
... Um disco pode ter várias partições como /dev/sda1
. A segunda partição no disco /dev/sda
é /dev/sda2
e assim por diante. Uma imagem (cópia literal de bytes) pode ser feita a partir de uma partição e disco. Observe que os primeiros 512 bytes de um disco contêm o MBR (Master Boot Record).
Uma partição não deve ser montada ao criar ou restaurar imagens; caso contrário, poderá ocorrer perda de dados ao ler nela (criar uma imagem) ou comportamento inesperado e corrupção de dados se você estiver gravando nela (restaurando a partir de uma imagem).
Nos exemplos abaixo, /dev/sda1
é a partição a partir da qual uma imagem deve ser criada.
Partições e dispositivos de disco /dev
são graváveis apenas pelo superusuário (raiz) e pelos usuários do disk
grupo. Não gosto de executar tudo como root, por questões de segurança (caso você tenha digitado um erro de digitação), mudo o grupo temporariamente para mim, para poder ler e escrever nele:
sudo chgrp my_user_name /dev/sda1
Se você pular o comando acima, deverá prefixar os dd
comandos abaixo com sudo
.
Fundamentos
O comando básico para criar uma imagem a partir de uma partição é:
dd if=/dev/sda1 of=disk.img
if
significa "arquivo de entrada", of
significa "arquivo de saída". Tudo no Linux é um arquivo, até dispositivos.
Para restaurar essa imagem, execute:
dd if=disk.img of=/dev/sda1
O pedido não importa, você também pode ter escrito o acima dd of=/dev/sda1 if=disk.img
.
Imagens compactadas
Como as partições geralmente são grandes, é recomendável compactar os dados antes de gravá-los na imagem:
dd if=/dev/sda1 | gzip > disk.img.gz
Isso funciona porque, se of
for omitido, a saída é gravada na "saída padrão", que é o canal no programa de compactação gzip
. A saída disso é gravada em disk.img
.
Para restaurar uma imagem compactada, execute:
gunzip -c disk.img.gz | dd of=/dev/sda1
Aqui gunzip
está o comando reverso do gzip. -c
faz com que a saída seja gravada na saída padrão, que é o canal no dd
comando. Como if
é omitida dd
, a entrada é lida na "entrada padrão", que é a saída de gunzip
.
Lendo uma imagem sem restaurá-la
Imagens não compactadas podem ser montadas para que você possa ler a partir dela. Se você compactou as imagens da sua partição, descompacte-as primeiro ( disk.img.gz
serão removidas, disk.img
serão criadas. Certifique-se de ter espaço suficiente!):
gunzip disk.img.gz
Como alternativa, descompacte uma imagem sem tocar na própria imagem:
gunzip -c disk.img.gz > disk.img
Agora crie um diretório no qual o disco pode ser montado e monte a imagem somente leitura ( ro
):
sudo mkdir /mnt/wind
sudo mount -o ro disk.img /mnt/wind
Agora você pode ver seus arquivos no /mnt/wind
. Quando terminar, desmonte-o e remova o ponto de montagem obsoleto:
sudo umount /mnt/wind
sudo rmdir /mnt/wind
Menos tamanho, mais uso da CPU, maior duração de backup e restauração
Se o tempo não for um problema e você não tiver muito espaço de armazenamento, poderá usar o bzip2
formato de compactação. Substitua simplesmente gzip
por bzip2
acima. É comum usar a .bz2
extensão para arquivos compactados com bzip2, então faça isso.