Manual
do
Maker
.
com
Já mostrei nesse outro artigo como adicionar múltiplos sistemas em um micro SD. Um dos propósitos para isso é quando se quer utilizar o mesmo Raspberry para diferentes finalidades, como por exemplo, desenvolvimento e lazer. É exatamente o meu caso, onde estou utilizando um Raspberry com o BBCM em minha TV, mas também preciso utilizá-lo para desenvolvimento de um projeto utilizando o AFMultiRadio Black Edition, desse outro artigo. Por conta disso, decidi escrever um artigo do processo que estou utilizando para fazer dual boot no Raspberry com Berryboot.
Se você tem o sistema de desenvolvimento instalado em um micro SD, o primeiro passo é copiá-lo para um sistema nativo. Nesse artigo explico como fazer esse processo. Nele, também está detalhado o processo para reduzir o sistema, de modo que seja plausível gerar uma imagem de sistema para dual boot.
Considerando que você já fez o backup e reduziu o tamanho do sistema, o próximo passo é converter a imagem gerada para squashfs. Caso se interesse por formatos de sistemas para embarcados, dê uma olhada nesse outro artigo, onde também explico como fazer a extração de dados de cada um deles.
O processo necessariamente deve ser feito em Linux, não tem outro jeito. Se você usa Windows, instale o VirtualBox e baixe um sistema Linux para virtualizar. Recomendo o Ubuntu.
Considerando que tudo esteja a contento, vamos montar nosso laboratório. Criaremos um diretório para acesso dos dados da imagem gerada, afim de fazer algumas modificações necessárias antes de converter a imagem para SquashFS. O processo todo consiste nos seguintes passos (antes de executá-los, leia o primeiro parágrafo após os comandos a seguir):
mkdir mnt
kpartx -av imagem_que_vc_criou.img
mount /dev/mapper/loop999p2 mnt
sed -i 's/^\/dev\/mmcblk/#\0/g' mnt/etc/fstab
sed -i 's/^PARTUUID/#\0/g' mnt/etc/fstab
rm -f mnt/etc/console-setup/cached_UTF-8_del.kmap.gz
rm -f mnt/etc/systemd/system/multi-user.target.wants/apply_noobs_os_config.service
rm -f mnt/etc/systemd/system/multi-user.target.wants/raspberrypi-net-mods.service
rm -f mnt/etc/rc3.d/S01resize2fs_once
mksquashfs mnt nova_imagem_para_berryboot.img -comp lzo -e lib/modules
umount mnt
kpartx -d imagem_que_vc_criou.img
Quando digitar a linha referente ao comando kpartx, um dispositivo de loop será criado. Substitua /dev/mapper/loop999p2 pelo dispositivo correto, trocando apenas a parte referente ao 999.
Ao final desse processo você terá uma imagem com o nome que escolheu, já no formato squashfs. Repare que no exemplo eu usei o nome nova_imagem_para_berryboot.img.
A exclusão do arquivo etc/console-setup/cached_UTF-8_del.kmap.gz é necessária para o caso de estar utilizando imagens baseadas no Debian, como o Raspbian, para forçar a regeneração do cache de mapa de teclado no primeiro boot. Desse modo, o teclado utilizado será o especificado no Berryboot.
Agora podemos iniciar o penúltimo passo antes de fazermos o dual boot com Raspberry. Copie a imagem convertida para um pendrive. Ao iniciar o boot com o Berryboot, edite o menu e selecione a opção secundária em Add OS, que é a Copy OS from USB Stick.
Se for necessário reservar alguma memória diferente do padrão para seu sistema, basta nomear a imagem com uma das extensões: .img128 .img192 .img224 .img240. Faça-o conforme a reserva desejada.
Após concluir a instalação do sistema, clique em Exit para reiniciar. Se desejar, pode ir em opções avançadas para mudar a prioridade de boot. E eis seu dual boot com Raspberry!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.