Eu tive um pi configurado e funcionando bem por um tempo (RPi - 1). Eu queria criar uma imagem do RPi-1 para carregar uma cópia exata no meu segundo pi (RPi-2). O cartão SD no RPi - 1 é de 4 GB (apenas cerca de metade é realmente usada) e o cartão SD no RPi - 2 também é de 4 GB. Eu uso o Win32 Disk Imager para criar uma cópia do RPi-1, com êxito. Formatei o cartão SD para o RPi - 2 com o SD Formatter 4.0 (no Windows 7). No entanto, quando uso o Win32 Disk Imager para gravar a imagem RPi - 1 no cartão SD do RPi - 2, recebo: "Não há espaço suficiente no disco: Tamanho 7744512 Disponível: 7626752 setores Tamanho do setor: 512"
Sei que não é uma imagem ruim porque posso formatar o cartão SD para RPi - 1 e gravar a imagem novamente sem problemas.
O que estou perdendo aqui? Nem todos os cartões SD de 4 GB são do mesmo tamanho ou variam um pouco? Há algo que você precisa fazer em um cartão SD totalmente novo que eu perdi?
(RPi - 1 Cartão SD = Sandisk 4 GB // RPi - 2 Cartão SD = Kingston 4 GB)
Respostas:
Na verdade, nem todos os cartões SD têm o mesmo tamanho exato. Você precisaria encolher a partição para ajustá-la ao SD menor. Eu também tive um problema semelhante. O que eu fiz foi ter um SD separado com (no meu caso) Raspbian. E liguei o SD que queria redimensionar, usando um leitor de cartão USB.
Antes de reduzir a partição com segurança, você precisa garantir que não haja dados no final da remoção. Você pode fazer isso com
resize2fs -M -p /dev/sda2
(você deve substituir / dev / sda2 pelo caminho correto para o leitor de cartão USB e a partição linux que deseja redimensionar). Isso redimensionará o sistema de arquivos para o menor tamanho possível. Na verdade, você pode especificar o tamanho exato que deseja, mas isso envolve alguns cálculos matemáticos e de conversão em tamanhos e setores de blocos e outros. Mais seguro e fácil de não fazer isso.Depois disso, você pode reduzir a partição. Eu acho que usei
fdisk
para isso. Obtenha a posição inicial exata da partição, exclua-a e recrie-a usando a mesma posição inicial, mas com um tamanho menor.Por fim, você precisa ampliar o sistema de arquivos novamente para ocupar toda a partição usando
resize2fs -p /dev/sda2
fonte
e2fsck -f /dev/mmcblk0p2
(estou diminuindo a segunda partição do mmcblk0) para verificar a consistência. Então me foi permitido correrresize2fs -M -p /dev/mmcblk0p2
como sugerido.Sei que este é um artigo antigo, no entanto, acabei de ter o mesmo problema e o resolvi usando o método descrito aqui http://www.aoakley.com/articles/2015-10-09-resizing-sd-images.php
fonte
Seria melhor criar um tarball do sistema de arquivos, porque quando você cria uma imagem de disco completa, também copia os dados excluídos. Quando você exclui um arquivo, o inode é desvinculado, mas os dados reais ainda estão no disco. Uma imagem de disco completa usando
dd
copiaria esses dados antigos (exceto se você os substituir primeiro/dev/zero
, o que leva algum tempo), mas um backup usandotar
copiaria apenas os dados atuais.Ou ... você pode fazer como muitas distribuições: reduza o tamanho do sistema de arquivos para algo seguro como 1,9 GiB antes de criar sua imagem e redimensione para preencher o disco depois de restaurar o backup.
Advertência: Não conheço as ferramentas de imagem do Windows, sou usuário de Linux.
fonte
se você usa linux, aqui está um pequeno script:
crédito: Sirlagz (muuuuito desculpa!)
fonte
echo "$partinfo" | grep $fileSystemType | awk -F: ' { print substr($2,0,length($2) - 1) } '
" para se livrar de B no partstart.