É assim que você inicia o Raspberry Pi a partir do USB ou da sua rede

Normalmente, você inicia um Raspberry Pi a partir de um cartão (micro) SD. Mas às vezes isso não é tão conveniente. Recentemente, os desenvolvedores da família de minicomputadores adicionaram dois novos modos de inicialização: USB e Rede. Com o modo USB, você inicia o Raspberry Pi a partir de um sistema operacional em um stick USB ou disco rígido conectado via USB.

Com o modo de rede, você nem precisa de um dispositivo de armazenamento local: o Raspberry Pi baixa seu sistema operacional pela rede de outro computador. Dessa forma, você também pode inicializar facilmente vários Raspberry Pis por meio de um sistema operacional em um computador central. Se você atualizar esse sistema operacional central, todos os seus Raspberry Pis executarão automaticamente a versão mais recente.

01 Modos de inicialização experimentais

Os novos modos de inicialização são experimentais e desenvolvidos para o Raspberry Pi 3. O código de inicialização necessário para isso está no BCM2837: o processador do Raspberry Pi 3. Se você tem um Raspberry Pi 1, 2 ou Zero, também pode use os novos modos de inicialização, mas de uma forma indireta: formate um cartão SD com fat32, copie o arquivo bootcode.bin para o cartão e inicialize seu Pi a partir deste cartão. Isso pode não estar completo sem um cartão SD, mas você pode inicializar seu Pi a partir de USB ou da rede.

02 Possíveis problemas com USB

A inicialização via USB nem sempre funciona. Por exemplo, alguns dispositivos USB ligam muito lentamente. Discos rígidos externos também nem sempre respondem em dois segundos, o tempo que o código de inicialização espera por padrão. Você pode aumentar esse tempo limite para cinco segundos, mas algumas unidades ainda nem estão prontas. Outros dispositivos USB têm requisitos muito específicos para o protocolo de comunicação, que o código de inicialização do Raspberry Pi 3 (limitado a 32 kB ROM) não atende. Portanto, você pode ter que experimentar alguns discos.

03 Atualização de Firmware

Presumimos que você esteja executando o Raspbian no Raspberry Pi. Caso contrário, baixe uma imagem e coloque-a em um cartão SD com o programa Win32DiskImager e inicialize o Pi a partir dele. Primeiro, atualize todos os repositórios com sudo apt-get update. Se você estiver executando o Raspbian Lite (a versão sem interface gráfica), execute primeiro sudo apt-get install atualização rpi porque essa versão mínima do Raspbian não tem o pacote rpi-update. Em seguida, atualize o firmware do 'next 'branch com sudo BRANCH = next rpi-update.

04 Habilite o modo USB

Abra o arquivo de configuração de inicialização com sudo nano /boot/config.txt e adicione o comando program_usb_boot_mode = 1 até o fim. Salve o arquivo com Ctrl + O e saia do nano com Ctrl + X. Reinicie seu Pi com sudo reboote, após a reinicialização, certifique-se de que o modo USB esteja ativado. Você faz isso com o comando vcgencmd otp_dump | grep 17:, que deve retornar um número terminando em 0x3020000a. Em seguida, abra o arquivo de configuração de inicialização novamente e exclua o comando program_usb_boot_mode = 1, para que você não habilite acidentalmente o modo de inicialização USB em outro Pi no qual inserir este cartão SD.

05 Particionando Armazenamento USB

Agora conecte seu dispositivo de armazenamento USB ao seu Pi. Particionar este dispositivo com sudo parted / dev / sda. Crie uma nova tabela de partição com msdos mktable e confirme com sim que você deseja destruir todos os dados no disco. Em seguida, crie uma partição FAT32 de 100 megabytes com mkpart primário fat32 0% 100M e uma partição ext4 que ocupa o resto do disco com mkpart primário ext4 100M 100%. Veja as mudanças com impressão e feche com Sair. Em seguida, crie o sistema de arquivos de inicialização com sudo mkfs.vfat -n BOOT -F 32 / dev / sda1 e o sistema de arquivos raiz com sudo mkfs.ext4 / dev / sda2.

06 Raspbian copy

Instale o programa rsync com sudo apt-get install rsync. Em seguida, crie um novo diretório com sudo mkdir / mnt / usb e montar o sistema de arquivos ext4 do armazenamento usb nele com sudo mount / dev / sda2 / mnt / usb /. Em seguida, crie um diretório de inicialização com sudo mkdir / mnt / usb / boot e monte o sistema de arquivos de inicialização nele com sudo mount / dev / sda1 / mnt / usb / boot /. Agora copie o sistema Raspbian que você está executando do cartão SD para o sistema de arquivos em seu armazenamento USB. Você faz isso com o comando sudo rsync -ax --progress / / boot / mnt / usb. Seja paciente, pois pode demorar um pouco.

07 Chroot

O armazenamento USB agora contém uma cópia do Raspbian em execução, mas nem tudo deve ser idêntico. Por exemplo, o novo sistema precisa de chaves ssh diferentes. Portanto, vá para o armazenamento USB com cd / mnt / usb e montar alguns sistemas de arquivos especiais com sudo mount --bind / dev dev, sudo mount --bind / sys sys e sudo mount --bind / proc proc. Em seguida, insira um cromada (mudar a raiz) com sudo chroot .. Todos os comandos que você executa agora serão executados no sistema no armazenamento USB, não mais no sistema no cartão SD.

08 novas chaves ssh

Você agora é um usuário root no chroot. Primeiro, exclua as chaves ssh existentes, pois são as que copiamos do sistema do cartão SD. Você faz isso com rm / etc / ssh / ssh_host *. Em seguida, gere novas chaves ssh reconfigurando o servidor OpenSSH com dpkg-reconfigure openssh-server. Em seguida, saia do chroot com saída. Todos os comandos que você executa agora serão executados novamente no sistema no cartão SD. Em seguida, desmonte os sistemas de arquivos especiais com sudo umount dev, sudo umount sys e sudo umount proc.

09 Personalize o sistema de arquivos raiz

Agora certifique-se de que o Pi está usando o sistema de arquivos raiz no armazenamento USB em vez do cartão SD. Para isso, você modifica o arquivo /boot / cmdline.txt com isso sudo sed -i "s, root = / dev / mmcblk0p2, root = / dev / sda2,"/mnt/usb/boot/cmdline.txt. Faça o mesmo no arquivo / etc / fstab: sudo sed -i "s, / dev / mmcblk0p, / dev / sda," / mnt / usb / etc / fstab. Em seguida, vá para seu diretório inicial com cd, desmonte os sistemas de arquivos do armazenamento usb com sudo umount / mnt / usb / boot e sudo umount / mnt / usb e desligue o Pi com sudo poweroff. Desconecte o cabo de alimentação, remova o cartão SD e conecte o cabo de alimentação novamente. Se tudo correr bem, seu Pi será inicializado a partir do armazenamento USB.

Postagens recentes

$config[zx-auto] not found$config[zx-overlay] not found