GUI para criar uma imagem de backup de partição não maior que seus arquivos?


8

Eu gosto de 'Disks' ( gnome-disk-utility) e sua capacidade de criar backups de partições do sistema.

insira a descrição da imagem aqui

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?


3
CloneZilla, talvez?
muru

1
A meu ver, o clonezilla pode ser executado apenas como uma sessão ao vivo. Eu editei para especificar que eu estou procurando um programa que pode ser instalado e executado a partir de um sistema operacional, estou usando múltiplos Ubuntus e eu prefiro esta solução

Respostas:


9

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:

  • imagens esparsas ,
  • imagens compactadas de:
    • sistemas inteiros,
    • unidades inteiras
    • partições simplesmente individuais.

As principais vantagens são:

  • que ele inicializa de:
  • vem com seu próprio sistema operacional (baseado no Ubuntu)
  • pode fazer backups precisos do sistema a frio, facilmente restaurados.

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.


1
Eu editei para especificar que eu estou procurando um programa GUI que pode ser instalado e executado a partir de um sistema operacional, estou usando múltiplos Ubuntus e eu prefiro esta solução

como instalar o pyclonezilla? não uma entrada de google para esta pergunta

1
Eu fui rápido demais para apontar a GUI: não funciona. Apenas CLI! Excluirei minha resposta depois que você deixar uma nota que leu.
Fabby

1
Como não há programa, ao que parece, preenche as duas condições: 1) Tenha uma interface gráfica semelhante a 'Discos'; 2) Crie uma imagem de disco tão grande quanto o espaço usado, não há sentido em excluir sua resposta. As respostas da CLI às perguntas da GUI geralmente são apresentadas aqui e geralmente aceitas, por um bom motivo. Eu só estava tentando pressionar pelo que queria.

1
: DI levaria um backup e , em seguida, encolher ... ;-)
Fabby

4

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:

sudo apt-get install virt-manager qemu-utils 

E então, uma vez instalado, você pode usar:

qemu-img convert -f raw -O raw  /dev/sdX /home/<user>/Ubuntu.img

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 sfillou zerofreeencontrado 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.

sudo cp --sparse=always /dev/sdX /home/<user>/Ubuntu.img

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.


Eu editei para especificar que eu estou procurando um programa GUI que pode ser instalado e executado a partir de um sistema operacional, estou usando múltiplos Ubuntus e eu prefiro esta solução

qual seria o comando para restaurar a imagem?

Normalmente, em farms de servidores, não temos muito em opções de GUI e construímos scripts em torno dos comandos. É por isso que a linha de comando geralmente é mais completa / poderosa no Unix. Convertendo de volta é tão fácil quanto inverter os parâmetros .. sudo cp /home/<user>/Ubuntu.img /dev/sdX, ou se você gosta de dd sudo 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.
user283885

1
Entendo seu ponto de vista e peço desculpas por não ter conhecimento de nenhuma ferramenta GUI para atender às suas necessidades. Eu apenas pensei que pelo menos algo em segundo poderia ser útil para você.
user283885

1
Bem-vindo a este lado da cerca. A razão pela qual apontei para farms de servidores é por causa de como a maior parte do desenvolvimento é feita ultimamente. Por exemplo, o qemu-img é um utilitário de um projeto muito maior (openstack, iniciado por redhat, rackspace e nasa). Você tem essas grandes empresas que constroem software para se adequar aos seus datacenters e, em seguida, há caras como nós que pegam carona nesse esforço. Claro que funciona, mas é espartano na melhor das hipóteses. Por enquanto, o melhor que posso fazer é compartilhar o conhecimento com os outros.
user283885

4

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:


1
Como acabei de receber um voto positivo para a minha resposta, lendo se você já encontrou uma resposta perfeita, e esta parece ser a única! Por que você não aceita este?
Fabby

2

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:

  1. Monte a partição de destino
  2. Corre dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
  3. Desmonte a partição de destino

Então:


Você pode ler todo o bloco de partições por bloco dde enviar tudo para um utilitário de compactação gzip. 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=-1Define temporariamente a variável de ambiente GZIPpara -1alcançar o menor nível de compactação mais rápido /)

Para restaurar um backup:

gzip -d /path/to/backup.gz >/dev/sdX


O que você acha de reduzir a partição com o gparted antes de usar o Disks para fazer backup?

@cipricus É melhor esperar por alguém para dizer alguma coisa sobre isso, porque eu não tenho certeza, mesmo difícil que eu acho que deve ser bom para fazê-lo dessa maneira, quer
kos

@ kos Encontrei o comando ddrescue que você forneceu produziu uma imagem sem esforço, mas não reduziu o tamanho do arquivo. Eu estava criando uma partição NTFS para o ext4, que parece funcionar com arquivos esparsos, mas o tamanho do arquivo .img mostrado no Nautilus correspondia exatamente ao tamanho da partição de origem. Então, parece que ainda é necessário mexer com o gParted?
21916 PhilJ

1

Que tal usar ddrescuecom a -Sopção?

ddrescue -S /dev/sdXY /<path_to_backup>/backup.img

Isso clonará cada bloco, mas zero bloco encontrado no dispositivo de bloco /dev/sdXYpara/<path_to_backup>/backup.img


Parece bom. Mas qual seria o comando para restaurar a imagem?

@cipricus Eu descobri que isso é realmente altamente dependente do sistema e não funcionará em todas as distribuições, então eu adicionei um método mais simples e talvez um pouco mais lento para realizar o mesmo sem fazer o download de software adicional, que é o método que eu realmente use
kos

0

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.


0

Você pode usar rsyncpara fazer backup apenas dos arquivos da partição para outra partição. Ou tarpara criar um arquivo compactado contendo todos os arquivos.

Ambos provavelmente têm GUIs (múltiplas), mas eu nunca as usei.


0

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.

virt-sparsify /dev/your-block-device backup.img

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.


Descobri que o método virt-sparsify certamente reduz o tamanho do arquivo .img, mas requer um diretório / tmp muito grande, aproximadamente igual ao tamanho da partição que está sendo visualizada. Ele emitiu uma mensagem de aviso, mas quando tentei a opção --tmp mostrada acima (variada para a minha configuração), ela me deu> opção desconhecida `- --tmp 'Não sei agora como desviar a saída / tmp para outro lugar e qualquer conselho sobre isso seria útil para mim e para os futuros leitores deste post.
philj

Especifique 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 tentar TMPDIR=/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.
sourcejedi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.