Melhor ferramenta de compactação para imagens de disco completo que pode saturar uma conexão USB 3 em máquinas de baixa potência?

3

Costumo trabalhar em imagens de disco cheio, muitas vezes preciso ler e gravar imagens de disco completo em laptops não tão capazes usando um disco USB-3 como meu meio temporário.

A duplicação de uma imagem bruta é provavelmente o caminho mais rápido, mas eu tenho que lidar com espaço de armazenamento limitado disponível.

O que eu preciso é de alta taxa de transferência e baixo uso de CPU - a taxa de compactação não é tão importante para mim.

Eu gostaria de ter uma ferramenta que pudesse compactar levemente as imagens criadas - principalmente codificando espaços vazios no disco para que eu pudesse armazenar apenas dados úteis, ao mesmo tempo em que faria isso o mais rápido possível - esperançosamente quase tão rápido quanto um duplicação dd bruta.

Liguei para usar pxz -1 , pois ele pode usar vários núcleos de CPU para acelerar a compactação, esperando que a compactação mais rápida ainda seja útil. Isso não parece ser tão gordo quanto eu gostaria.

A compactação de uma imagem de disco de 500 GB foi estimada em 21 horas:

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | pxz -1 > Lenovo-Win8-sda.dd.xz
0:09:21 [9.26MiB/s] [6.54MiB/s] [>            ]  0% ETA 21:34:46

Nenhuma compressão foi prevista em 3 horas para completar a imagem:

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G > Lenovo-Win8-sda.dd
0:00:20 [80.2MiB/s] [49.8MiB/s] [>           ]  0% ETA 2:50:20

Usar lbzip2 -1 para compresson parece ser ligeiramente mais rápido que pxz -1 com ETA às 15 horas, o que ainda é muito lento.

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lbzip2 -1 > Lenovo-Win8-sda.dd.bz2
0:00:22 [9.07MiB/s] [9.76MiB/s] [>             ]  0% ETA 14:33:38

Existe alguma ferramenta de compactação mais rápida para o Linux?

    
por unfa 06.06.2018 / 16:20

4 respostas

6

LZ4

apt install liblz4-tool

Depois, você pode compactar com o comando lz4 e descompactar com lz4 -d .

O padrão é o modo de compressão mais rápido.

Estima-se que 500 GB do disco rígido interno para uma unidade externa através do USB 3.0 demore entre 2 e 3 horas:

mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lz4 > Lenovo-Win8-sda.dd.lz4
0:02:47 [97.5MiB/s] [58.1MiB/s] [>                ]  1% ETA 2:24:11
    
por 06.06.2018 / 16:40
3

Portanto, este não será o mais rápido absoluto (é mais lento que LZ4, LZOP e Snappy), mas pode ser rápido o suficiente para o seu uso e obterá way melhores rácios do que o LZ4 (e transferir menos dados também lhe poupará tempo).

ZStandard

Site oficial: link

O pacote Debian é chamado zstd

Diferentemente do LZ4, ele é multiencadeado (para compactação e descompactação) e, com as configurações de compactação mais baixas, pode facilmente saturar um link USB 3.0 (que provavelmente já está sendo feito no seu teste com LZ4), obtendo taxas de compactação equivalentes com as configurações padrão no Gzip.

    
por 06.06.2018 / 21:13
2

Isso soa como um Problema XY . Uma ferramenta de compactação genérica não é particularmente provável que faça um bom trabalho em uma imagem de disco, porque não é garantido que o espaço não utilizado esteja vazio. (Admito que existem maneiras de zerar o espaço não utilizado em um sistema de arquivos.)

Talvez seja melhor usar uma ferramenta de backup, como rsync, Clonezilla, TimeMachine, Duplicity, dump ou mesmo tar , para citar alguns - que entende o formato do sistema de arquivos e faz o backup apenas das partes usadas. Veja esta pergunta para uma discussão de alguns deles. Tal abordagem teria a vantagem de se tornar muito mais fácil para restaurar o backup em um disco de tamanho diferente.

    
por 06.06.2018 / 19:11
0

Eu uso Clonezilla e ele pode criar cópias clonadas ou imagens compactadas de uma unidade inteira, incluindo a cabeça da unidade com setor de inicialização para o modo BIOS, tabela de partições e tudo mais.

Uma imagem Clonezilla é um diretório com vários arquivos, onde os arquivos grandes são compactados, e o Clonezilla pode restaurar de uma imagem desse tipo para uma unidade exatamente do mesmo tamanho ou maior (mas não para uma unidade menor). Esse drive se comporta como o original (é inicializável, etc). Se a unidade for maior e a tabela de partições for GPT, talvez seja necessário restaurar a tabela de partições de backup no final da unidade manualmente, com gdisk ou com o script gpt-fix .

O Clonezilla é inteligente o suficiente para identificar blocos usados e ignorar blocos livres em sistemas de arquivos (usei-o com vários sistemas de arquivos Linux e sistemas de arquivos da Microsoft, onde usa partclone ), portanto, se houver uma justa atenção blocos, será muito mais rápido que a clonagem e compactação "cruas" (com ou sem zerar espaço livre).

Quando eu quero alta compactação e uso muito flexível sem o usuário final que precisa do Clonezilla, zerei espaço livre e cano dd via xz para obter um arquivo img.xz . Mas esse processo é muito lento e não é adequado para o seu caso.

    
por 13.06.2018 / 17:42