Como criar uma imagem de uma unidade flash inicializável sem desperdiçar espaço (como no dd) no Ubuntu

3

Eu tenho um cartão de memória flash inicializável com um sistema operacional Ubuntu, juntamente com outros programas, ou seja. um sistema totalmente funcional que uso em um computador de placa única. Eu gostaria de fazer o backup no disco rígido do meu PC (também executando o Ubuntu), mas sem desperdiçar espaço como o ddcomando faria (porque ele também faz backup de espaço livre). A unidade flash tem 32 GB de tamanho e apenas 10% de capacidade. Não possui nenhuma partição.

Quais são as opções?

EDITAR a unidade flash está formatada como ext4, portanto, partimagenão se aplica.

mmm
fonte

Respostas:

5

Se você deseja usar o dd, porque com ele você pode cozinhar rapidamente outras memórias flash:

  • defina como zero todo o espaço livre: dd if=/dev/zero of=/media/usb_device_dir/ZEROFILL ; rm /media/usb_device_dir/ZEROFILLisso cria um arquivo grande preenchido com zero e depois o remove.

  • dd if=/dev/usb_device | bzip2 > os_image.bz2

Ou faça um tar do seu sistema operacional:

cd /media/usb_device_dir
tar jcpvf /home/foo/os_image.tar.bz2 . 

Mas antes de extrair isso para um cartão flash limpo, você deve

  • formato

  • adicionar sinalizador inicializável

  • instalar um gerenciador de inicialização

Alessandro Pezzato
fonte
Oi Alessandro. Você poderia explicar como a primeira declaração cria um "arquivo grande"? Qual é o tamanho? Devo substituir /dev/zeropor alguma coisa, ou é um comando especial para dd?
E outra coisa: não deveria ser rm /media/usb_device_dir/* ZEROFILL *?
Sim, você está certo, é /media/usb_device_dir/ZEROFILLapenas um erro de copiar e colar. Ele grava zero nesse arquivo até que não haja espaço disponível.
Alessandro Pezzato 6/12/11
Apenas uma nota / adição de parâmetro bs=10Mpara o ddcomando acelera o progresso de forma dramática no meu PC
Kamil SROT
8

dd if=/dev/your_usb | lzma -9c > usb_image.bin.lzma não deve desperdiçar espaço.

Deixe me ser
fonte
Obrigado Let_Me_Be, existe uma maneira de fazer esse ddcomando em particular ser executado um pouco mais rápido? Por exemplo. menos compressão? Existe uma maneira de o ddcomando emitir alguma indicação de progresso? E por último mas não menos importante, qual é o comando para descompactar a imagem your_usbposteriormente?
1
@mmmlzcat usb_image.bin.lzma | dd of=/dev/your_usb
Let_Me_Be
pv /dev/your_usb | lzma -9c > usb_image.bin.lzmamostrará o progresso (requer o pacote pvinstalado).
Jaap Eldering /
1

Se você pode assumir que áreas vazias no sistema de arquivos estão preenchidas com zeros, a resposta de Let_Me_Be se aplica.

Caso contrário, dê uma olhada no Partimage

Daniel Böhmer
fonte
É provável que ext3 / ext4 preencha o espaço vazio com zeros? Sinto que não é assim, mas não tenho nada para fazer backup, a não ser considerações de desempenho.
Obrigado halo, editei minha pergunta, partimage não suporta ext4, infelizmente.