O Raspberry Pi é um ótimo e versátil kit, capaz de projetos tão diversos quanto rodar um media center para usar como um rádio de transmissão. Mas tem uma falha gritante: a incapacidade de arrancar a partir de USB.
Bem, até agora, isso é.
Se você estiver usando um Raspberry Pi 3 O Raspberry Pi 3: Mais rápido, melhor, com Wi-Fi e Bluetooth O Raspberry Pi 3: Mais rápido, melhor, com Wi-Fi e Bluetooth Hoje, a fundação Raspberry Pi anunciou o lançamento do Raspberry Pi 3. É a atualização mais significativa para a popular linha de computadores de baixo custo. Leia mais, agora é possível abrir mão do microSD e, em vez disso, inicializar o computador a partir de um dispositivo USB. Isso pode ser um flash stick, um SSD com um adaptador USB ou até mesmo uma unidade de disco rígido USB de tamanho completo. Este é um desenvolvimento significativo, então vamos dar uma olhada em como você pode configurar o seu Raspberry Pi 3 para inicializar a partir do USB.
Introdução: instalar o Raspbian e adicionar novos arquivos
É melhor começar este projeto com uma nova cópia de Raspbian, então baixe a versão mais recente (estamos usando Raspbian Jessie 5 maneiras novas Jessie Raspbian faz Raspberry Pi ainda mais fácil de usar 5 maneiras nova Jessie Raspbian faz Raspberry Pi ainda mais fácil de usar seguinte o lançamento do Debian Jessie em julho, a comunidade do Raspberry Pi foi abençoada com uma nova versão da variante Raspbian, baseada na distro "pai". Leia mais) e instalá-lo da maneira usual Como instalar um sistema operacional no seu Raspberry Pi Como instalar um sistema operacional para o seu Raspberry Pi Veja como obter um novo sistema operacional instalado e em execução no seu Pi - e como clonar sua configuração perfeita para recuperação rápida de desastres. Consulte Mais informação . Assim que isso for feito, retire com segurança o cartão do seu PC, insira-o no Raspberry Pi e na inicialização, conecte remotamente ao SSH Configuração do seu Raspberry Pi Para uso sem cabeça com o SSH Como configurar o Raspberry Pi para uso sem cabeça com SSH O Raspberry Pi pode aceitar comandos SSH quando conectado a uma rede local (por Ethernet ou Wi-Fi), permitindo que você o configure facilmente. Os benefícios do SSH vão além de atrapalhar a triagem diária ... Leia Mais assim que for carregado.
Entre (a menos que você tenha alterado suas credenciais padrão Protegendo seu Raspberry Pi: De senhas a firewalls Protegendo seu Raspberry Pi: De senhas a firewalls Qualquer um pode usar o Google para encontrar o nome de usuário e senha padrão do seu Raspberry Pi. Não dê intrusos Que chance! Leia mais) em seguida, execute os seguintes comandos, que irá substituir os arquivos start.elf
e start.elf
padrão com alternativas baixadas recentemente:
sudo apt-get update sudo BRANCH=next rpi-update
Esta atualização entrega os dois arquivos no diretório /boot
. Com os arquivos baixados, prossiga para ativar o modo de inicialização USB com:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Este comando adiciona a instrução program_usb_boot_mode=1
ao final do arquivo config.txt
.
Você precisará reiniciar o Pi quando isso for feito.
O próximo passo é verificar se a OTP - memória programável única - foi alterada. Verifique isso com:
vcgencmd otp_dump | grep 17:
Se o resultado for representativo do endereço 0x3020000a
(como 17:3020000a
), tudo está bem até agora. Neste estágio, caso deseje remover a linha program_usb_boot_mode=1
do arquivo config.txt
, você pode. O Pi agora está habilitado para boot USB, e você pode querer usar o mesmo cartão microSD em outro Raspberry Pi 3, com a mesma imagem, então remover a linha é uma boa idéia.
Isso é feito facilmente editando config.txt
em nano:
sudo nano /boot/config.txt
Excluir ou comentar a linha correspondente (com um # anterior).
Prepare seu dispositivo de inicialização USB
Em seguida, conecte um pendrive formatado (ou pronto para ser apagado) em uma porta sobressalente no seu Raspberry Pi 3. Com isso inserido, vamos continuar copiando o sistema operacional.
Comece identificando seu pendrive, com o comando lsblk
.
Neste exemplo, o cartão SD é mmcblk0
enquanto o dispositivo USB é sda
(sua partição formatada é sda1
). Se você tiver outros dispositivos de armazenamento USB conectados, o dispositivo USB poderá ser sdb, sdc, etc. Com o nome do dispositivo USB instalado, desmonte o disco e use a ferramenta parted para criar uma partição de 100 MB (FAT32) e uma partição Linux:
sudo umount /dev/sda sudo parted /dev/sda
No prompt (parted), digite:
mktable msdos
Você pode ser informado de que o disco está envolvido de alguma outra forma. Em caso afirmativo, selecione Ignorar e, em seguida, observe o aviso informando que os dados no disco serão destruídos. Como explicado anteriormente, esse deve ser um disco que você deseja excluir ou formatar, portanto, concorde com isso.
Se você tiver algum problema aqui, talvez seja necessário alternar para a área de trabalho (manualmente ou por VNC Como executar uma área de trabalho remota em Raspberry Pi com VNC Como executar uma área de trabalho remota em Raspberry Pi com VNC E se você precisar de acesso para o desktop Raspberry Pi do seu PC ou laptop, sem ter que conectar um teclado, mouse e monitor? Aqui é onde VNC vem. Leia mais) e confirme o disco é desmontado, antes de digitar o comando msdos mktable em um comando de janela linha.
Proceda em parted com o seguinte:
mkpart primary fat32 0% 100M mkpart primary ext4 100M 100% print
Isto irá mostrar algumas informações sobre o disco e as novas partições. Prossiga para sair do parted com Ctrl + C, antes de criar o sistema de arquivos de inicialização e o sistema de arquivos raiz:
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1 sudo mkfs.ext4 /dev/sda2
Você então precisa montar os sistemas de arquivos de destino, antes de copiar o seu atual sistema operacional Raspbian para o dispositivo USB.
sudo mkdir /mnt/target sudo mount /dev/sda2 /mnt/target/ sudo mkdir /mnt/target/boot sudo mount /dev/sda1 /mnt/target/boot/ sudo apt-get update; sudo apt-get install rsync sudo rsync -ax --progress / /boot /mnt/target
Esse último é o comando final que copia tudo, e assim vai demorar um pouco para ser concluído. Hora de fazer um café!
Em seguida, você precisa atualizar as chaves do host SSH, para manter a conexão com o Raspberry Pi reconfigurado após uma reinicialização iminente:
cd /mnt/target sudo mount --bind /dev dev sudo mount --bind /sys sys sudo mount --bind /proc proc sudo chroot /mnt/target rm /etc/ssh/ssh_host* dpkg-reconfigure openssh-server exit sudo umount dev sudo umount sys sudo umount proc
Note que depois do sudo chroot (o quinto comando acima) você está mudando para root, então o usuário irá mudar de pi @ raspberrypi para root @ raspberrypi até que você digite exit na linha 8.
Prepare-se para reiniciar a partir do USB!
Apenas mais algumas coisas para resolver antes que o seu Raspberry Pi esteja pronto para inicializar a partir do USB. Precisamos editar cmdline.txt
novamente na linha de comando com:
sudo sed -i "s, root=/dev/mmcblk0p2, root=/dev/sda2, " /mnt/target/boot/cmdline.txt
Da mesma forma, a seguinte alteração precisa ser feita para fstab:
sudo sed -i "s, /dev/mmcblk0p, /dev/sda, " /mnt/target/etc/fstab
Você está pronto para desmontar os sistemas de arquivos antes de desligar o Pi:
cd ~ sudo umount /mnt/target/boot sudo umount /mnt/target sudo poweroff
Observe que isso usa o novo comando poweroff
como alternativa ao shutdown
.
Quando o Pi estiver desligado, desconecte a fonte de alimentação antes de remover o cartão SD. Em seguida, reconecte a fonte de alimentação - seu Raspberry Pi deve estar inicializando a partir do dispositivo USB!
Você já tentou isso? Intrigado com as possibilidades de uma inicialização USB, em vez de cartão SD? Planejando dar uma chance? Conte-nos nos comentários!