Se o comando para replicar um cartão SD :
date; sudo sh -c 'pv /dev/mmcblk0 >pv sdcard.image'; date
images uma nova instalação do Raspbian em um cartão SD de 128 GB, então o arquivo sdcard.image será de 128 GB. Suponha que uma nova instalação do Raspbian ocupe 10 GB de espaço. A maior parte da imagem não conteria dados ('espaço vazio'). Seria útil se a imagem resultante:
- é de tamanho mínimo (antes de qualquer compactação e não copie 'espaço vazio')
- pode ser instalado em um
minimal SD-Card
(cartão SD de 16 GB ou maior)
A minimal SD-card
capacidade é o menor cartão SD que pode aceitar uma nova instalação Raspbian: como não há cartão SD de 10 GB, o próximo tamanho maior (16 GB) é definido como o cartão SD mínimo.
As preferências de soluções são para simplicidade e comandos Unix padrão (scripts, se necessário).
Como os 2 objetivos podem ser alcançados? Uma estratégia sensata determinaria a quantidade de dados (10 GB) no cartão SD e alteraria os parâmetros do disco para um tamanho de disco um pouco maior que 10 GB: neste caso 16 GB?
Referências:
Eu faria assim:
Reduza a(s) partição(ões) no cartão original, ou em uma cópia clonada dele, para fazer com que (ou todas as partições, se houver mais de uma) caiba no tamanho de destino.
Sugiro usar
gparted
o que tem uma interface gráfica de usuário e é mais amigável e seguro em comparação com as alternativas de linha de comando.Nesse caso, sugiro encolher para 15 GB (com alguma margem menor que o tamanho nominal de 16 GB porque algumas unidades são ligeiramente 'subdimensionadas'). Eu não tornaria o tamanho o menor possível (10 GB) porque isso dificultaria ou impossibilitaria a execução do sistema antes que o tamanho da partição fosse aumentado para usar o espaço restante da unidade.
Substitua todo o espaço livre no(s) sistema(s) de arquivos com zeros, pois isso torna a compactação muito mais eficiente.
Sugiro
zerofree
para partições com sistemas de arquivos ext2, ext3 ou ext4 e criar um arquivoblank
paradd
outros sistemas de arquivos e, em seguida, remover esse arquivoblank
. Vejaman zerofree
.Crie o arquivo de imagem clonado (e compacte-o se desejar).
Sugiro usar o alias Disks
gnome-disks
para essa finalidade. É uma ferramenta com uma interface gráfica de usuário e é mais amigável e segura em comparação com as alternativas de linha de comando.Se você usar a tabela de partição MSDOS de estilo antigo, as coisas serão mais fáceis de gerenciar após a clonagem da imagem para uma unidade de destino de tamanho diferente da original.
Com uma tabela de partição GUID, GPT, haverá problemas com a tabela de partição de backup no final da unidade. Ao criar uma GPT, a tabela de partições principal é criada na extremidade principal da unidade e uma cópia de backup da tabela de partição na extremidade final da unidade. Quando você clona uma unidade, essa unidade de destino quase sempre terá um tamanho pelo menos ligeiramente diferente, e isso significa que a tabela de partição de backup não estará lá (quando o tamanho de destino for menor que a origem) ou deslocada (não no final (quando o tamanho de destino é maior que o de origem) Isso pode ser corrigido com
gdisk
, mas é mais fácil evitar o problema e usar a antiga tabela de partições do MSDOS.