Copie o MBR e a partição de inicialização para um disco menor

4

Estou usando um cartão SD de 32GB para o meu pi de framboesa. Transferi com sucesso o sistema operacional ( Archlinux ARM ) para um disco rígido USB. O que significa que eu só preciso da partição de inicialização no cartão SD.

Um cartão de 32GB que usa apenas cerca de 100MB é um desperdício de espaço e eu tenho um cartão SD menor com 4GB.

Como faço para copiar o MBR e a primeira partição do cartão de 32GB para o cartão de 4GB?

Eu tentei salvar o MBR e a primeira partição do cartão maior com dd :

dd if=/dev/sdb of=mbr_image bs=446 count=1
dd if=/dev/sdb1 of=boot_image

Eu criei uma nova tabela de partições no cartão menor que se parece exatamente com a tabela no cartão original de 32 GB:

Device    Boot Start       End Blocks  Id System
/dev/sdc1 *     2048    194559  96256  c  W95 FAT32 (LBA)

Por fim, copiei as imagens armazenadas anteriormente em meu cartão menor:

dd if=mbr_image of=/dev/sdc bs=446 count=1
dd if=boot_image of=/dev/sdc1

Tudo parece bem em fdisk , mas não funciona. Meu framboesa não faz nada quando tento inicializar a partir do cartão menor.

Onde está o erro?

    
por ifschleife 31.01.2014 / 18:04

2 respostas

1

No meu caso, tenho tido problemas apenas para copiar o MBR. Para mim, os próximos passos funcionaram:

  1. fdisk o novo cartão com as partições desejadas.

  2. Monte o novo cartão e cp dos arquivos de partição desejados (acho que é apenas partição de inicialização) do antigo para o novo. Modifique (no caso você está usando grub2) /boot/grub/grub.cfg no novo cartão para que o UUID da partição de inicialização é agora o do seu cartão de 4GB (use blkid para identificar o UUID).

  3. Inicie o sistema com o cartão de 32 GB e monte o cartão de 4 GB.
  4. mount --bind / dev, / proc e / sys do cartão antigo para o novo um.
  5. chroot para o cartão de 4 GB montado.
  6. grub-install para o seu cartão de 4 GB.

EDITAR: Os passos 4 a 6 podem ser substituídos por grub-install --boot-directory=YourPathToMounted4GBBoot /dev/your4GBcard

    
por 03.03.2015 / 09:04
0

De acordo com este manual ao fazer o backup o MBR que você deseja usar bs=512 e, em seguida, bs=446 ao copiá-lo para o cartão menor.

dd if=/dev/mmcblk0 of=mbr_image bs=512 count=1
dd if=mbr_image of=/dev/mmcblk0 bs=446 count=1

Não tenho experiência prática com o Raspberry Pi, por isso não sei se o rótulo do dispositivo é importante. O site mencionado sugere usar /dev/mmcblk0 para o MBR e /dev/mmcblk01 para a partição do dispositivo.

EDITAR:

Eu esqueci isso antes. As etapas que você tentou e o link que mencionei parecem não ter a formatação do sistema de arquivos. Depois de criar /dev/sdc1 usando o fdisk, você precisará formatar o sistema de arquivos antes que ele seja utilizável.

mkfs.vfat -F 32 /dev/sdc1

Depois disso, execute dd if=boot_image of=/dev/sdc1 e ele deve funcionar.

    
por 31.01.2014 / 19:17