Eu gosto de 'Disks' ( gnome-disk-utility
) e sua capacidade de criar backups de partições do sistema.
Mas, em algum momento, li na internet sobre um programa que criaria imagens que não são tão grandes quanto a partição inteira, mas apenas o tamanho dos arquivos contidos nela. Agora não consigo encontrá-lo novamente.
Existe tal utilidade?
Respostas:
A resposta a seguir usa uma solução TUI , não uma GUI :
Dependendo do seu caso de uso (eu o uso para fazer backups do sistema), você pode usar o CloneZilla Live . Pode criar:
As principais vantagens são:
Além de todas essas vantagens, ele também pode copiar MBRs.
Se um backup de sistema frio não é o que você procura, você ainda pode usar a tecnologia na qual o CloneZilla se baseia
partclone
.fonte
A obtenção de imagens de disco menores geralmente é feita por meio da cópia de zero blocos desatados do sistema de arquivos inicial na imagem. O conceito é chamado escasso espaço em arquivos ou puching buracos em arquivos, e seu sistema de arquivo host tem a apoiá-lo. um pouco de linha de comando, mas tente o seguinte:
E então, uma vez instalado, você pode usar:
Isso criará uma imagem esparsa (zeros no arquivo não estão gravados) do seu disco. onde -f = formato, -O formato de saída. sdX o disco (também pode usar partições). O programa possui recursos avançados, como instantâneos e diferentes formatos de saída (vdi, vmdk, etc). Seu local em que você salva a imagem precisa suportar arquivos esparsos , caso contrário, o tamanho será tão grande quanto os zeros na partição serão gravados no disco. E para aproveitar ao máximo, execute um programa como o
sfill
ouzerofree
encontrado no apt na partição, porque o espaço livre nem sempre significa espaço zero e você deseja maximizar a quantidade de espaço zero no sistema de arquivos.Pontos ninja bônus. Como o linux considera os discos como "arquivos", você também pode usar o cp simples, com a condição de que sua partição de saída onde você estaciona o arquivo conheça arquivos esparsos.
Que criará uma cópia bruta por meio do cp ..
Exemplos de sistemas de arquivos que oferecem suporte a esparsos: ext4, btrfs, xfs, ntfs (o ntfs-3g, no entanto, pode não permitir gravações esparsas).
Exemplos de sistemas de arquivos que não: fat32.
fonte
sudo cp /home/<user>/Ubuntu.img /dev/sdX
, ou se você gosta de ddsudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX
,. A mesma coisa com qemu-img convert .. Se você diz, quer plantar uma máquina virtual em hardware real. Quando ele grava de volta, ele grava zeros no disco, assim você deixa de analisar , pois precisa endereçar corretamente a geometria da partição.Como não parece haver nenhum programa que satisfaça por si só as duas condições:
1) Ter uma interface gráfica semelhante a 'Discos';
2) Crie uma imagem de disco do tamanho do espaço usado,
Eu estava pensando em uma solução bastante simples, mas uma que envolve dois programas GUI, muito comuns no Ubuntu:
Um seria o mesmo 'Discos' (gnome-disk-utility) , usado para criar uma imagem de backup de uma determinada partição, e o segundo seria Gparted, para reduzir a partição o máximo possível antes de criar sua imagem de backup, e para redimensioná-lo de volta ao original depois disso .
Não vejo inconveniente em uma operação como essa: reduzir uma partição ao mínimo levaria apenas alguns minutos (cerca de um minuto para 10 GB) e criaria um espaço vazio à direita. Depois de criar uma imagem de backup do disco com 'Disks', usando o Gparted, a partição pode ser redimensionada novamente para a direita no espaço vazio até seu estado inicial, e isso levaria apenas alguns segundos.
Testado em uma partição com uma instalação do Ubuntu:
reduza a partição com o Gparted o máximo possível
imagem de backup dessa partição com discos
restaurar imagem com discos em uma partição maior que a imagem; essa partição deve ser desmontada primeiro: Como restaurar corretamente a partição do sistema (imagem ISO) com 'Discos' .
fonte
Editar : Isso não funcionará bem se os arquivos excluídos do sistema de arquivos ainda estiverem presentes na partição; portanto, primeiro é necessário limpar o espaço livre na partição de destino:
dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
Então:
Você pode ler todo o bloco de partições por bloco
dd
e enviar tudo para um utilitário de compactaçãogzip
. Provavelmente, qualquer ferramenta de compactação, mesmo usando as configurações de compactação mais rápida / mais baixa, comprimirá todo o espaço livre durante o processo.Com
gzip
:sudo dd if=/dev/sdX | GZIP=-1 gzip >/path/to/backup.gz
(
GZIP=-1
Define temporariamente a variável de ambienteGZIP
para-1
alcançar o menor nível de compactação mais rápido /)Para restaurar um backup:
gzip -d /path/to/backup.gz >/dev/sdX
fonte
Que tal usar
ddrescue
com a-S
opção?Isso clonará cada bloco, mas zero bloco encontrado no dispositivo de bloco
/dev/sdXY
para/<path_to_backup>/backup.img
fonte
Não pode ser usado para fazer uma cópia em uma unidade menor. Quando tenho uma unidade de 64 Gb, apenas 10% é preenchida com dados. Gostaria de poder copiar isso para um arquivo de imagem de 6 Gb, que eu possa copiar por sua vez para uma unidade de 16 Gb e depois expandi-la para 16 gb
A única possibilidade que conheço agora é usar o GParted para reduzir o original, copiá-lo e redimensionar os dois. Uma operação muito arriscada, pois você precisa encolher e redimensionar o original.
fonte
Você pode usar
rsync
para fazer backup apenas dos arquivos da partição para outra partição. Outar
para criar um arquivo compactado contendo todos os arquivos.Ambos provavelmente têm GUIs (múltiplas), mas eu nunca as usei.
fonte
Clonezilla pode realmente ser bastante amigável. O CD ao vivo não requer nenhum uso da linha de comando - eu ficaria feliz em chamá-lo de GUI, mesmo que não use o mouse - e acho que os padrões estão corretos em muitos casos. O problema é algo que você não mencionou explicitamente: não parece ter sido projetado como algo que você pode instalar em um sistema Linux arbitrário. Ele é empacotado especificamente para o Debian / Ubuntu, e o Live CD é a maneira mais fácil de executá-lo.
O Clonezilla / partclone usa a clonagem que reconhece o sistema de arquivos e usa seu próprio formato de imagem compactada.
Há outra possibilidade não-GUI de gerar arquivos esparsos simples (montáveis), que não dependem da detecção de setores zero.
Se / tmp for um ramdisk, ele avisará que potencialmente precisa de mais espaço para arquivos temporários. Então, você pode precisar adicionar a opção
--tmp /var/tmp
.fonte
virt-sparsify --version
? A opção está documentada em mine (man virt-sparsify
) ... Não posso jurar que a usei, mas pelo menos minha corrente/tmp
é tmpfs. Se você pode usar--in-place
, isso parece evitar o armazenamento temporário. Finalmente, você também pode tentarTMPDIR=/var/tmp virt-sparsify ...
. Os documentos da minha versão dizem que é assim que você deve definir o diretório tmp para versões anteriores à 1.28.