Configurando o raspberry para iniciar através do HD externo
O Objetivo deste post é demonstrar passo a passo como configurar um Raspberry Pi para utilizar um HD externo como base do seu sistema operacional. Isso é interessante pois dependendo da aplicação que você for realizar no Raspberry terá problema com o SDCard que tem uma limitação de gravação e escrita e consequentemente crash do sistema.
O que é o Raspberry Pi?
O Raspberry Pi é um computador do tamanho de um cartão de crédito que se conecta à sua TV e um teclado. É um PC que pode ser usado para muitas das coisas que o seu PC faz, como planilhas cálculo, processamento de texto, jogos e servidores diversos. Ele também reproduz vídeo de alta definição.
O Raspberry suporta por padrão algumas distribuições linux como Debian, Arch Linus e Risc OS. Para este post a distribuição de linux escolhida foi o Debian disponível na página oficial do fornecedor do hardware (clique aqui).
Este tutorial começa após a instalação normal dele, então se precisas de informações sobre como instalar o sistema operacional do raspberry consulte a na página de download existem informações a respeito de como criar a imagem, pois não iremos repetir tais informações para não fugir ao tema.
O primeiro passo, no raspberry ou em qualquer instalação de servidor ao meu ver, é garantir que todos os pacotes básicos estejam devidamente atualizados.
apt-get update; apt-get upgrade; reboot
Como o raspberry utiliza como base do seu sistema uma cartão de memória SD há um problema conhecido que é a limitação de quantidade escritas em um mesmo bloco, o que ocasiona uma falha do cartão SD após este número de gravações. Há diversas formas de contornar este problema, a primeira dela é desativar swap do SO, colocar o /var em memória entre outros, porém como para este post teremos um HD externo anexado utilizaremos este HD como base para o sistema operacional.
Configurando o raspberry para iniciar através do HD
No raspberry não há como realizar o boot diretamente no HD, desta forma sempre precisaremos do SDcard para realizar o boot, e direcionamos o restante do processo para o HD, vamos ao procedimento.
Primeiramente vamos copiar todo o conteúdo do SDCard para o hs externo. Este processo irá excluir todo o conteúdo do hd, desta forma caso tenha algo importante nele realize o backup antes.
Supondo que o sdcard está montado em /dev/sdb e o hd externo em /dev/sdc utilizaremos o seguinte comando
dd if=/dev/sdb of=/dev/sdc bs=512
Sabendo que o raspberry sempre precisará da do SDcard com a partição de boot, será nessário alterar as as configurações objetivando mudar a localização da raiz para a partição do HD externo ao invés da partição do SDcard. Para isso basta localizar a partição de boot do SDCard e alterar o arquivo /boot/cmdline.txt. substituindo o texto root=/dev/mmcblk0p2 por root=/dev/sda2. Outra alteração necessária é a adição dos comandos bootdelay rootdelay ao final da linha para que o boot aguarde a carregamento do HD externo antes de iniciar.
Agora podemos colocar o sdcard e o hd no raspberry e inicia-lo.
Depois de inicia-lo iremos criar uma partição para utilizar como swap através dos comandos abaixo
fdisk /dev/sda Command (m for help): p
Com este comando será exibido a listagem de partições
Vamos anotar a último bloco utilizado pela última partição, no nosso caso 6266879. Agora vamos criar uma nova partição com 1 Gb para swap.
Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (1-4, default 3): 3 First sector (2048-976773167, default 2048): 6266880 Last sector, +sectors or +size{K,M,G} (6266880-976773167, default 976773167): +1024M
Logo após podemos exibir novamente a listagem das partições
Command (m for help): p
Por fim grave as alterações realizadas com o comando abaixo
Command (m for help): w
Agora reinicie o sistema para que o mesmo identifique as partições e logo após crie a estrutura de swap na partição /dev/sda3
mkswap /dev/sda3
Ao executar este comando uma mensagem similar a esta será exibida:
Setting up swapspace version 1, size = 10485756 KiB no label, UUID=1d82ec7d-cd70-4e1b-b02c-fca25a41faf0
Altere o arquivo /etc/fstab e adicione a seguinte linha:
/dev/sda3 none swap sw 0 0
E por fim removeremos o arquivo de swap utilizado pelo sistema originalmente para que o mesmo não tenha a brilhante idéia de usa-lo.
rm -rf /etc/rc2.d/S02dphys-swapfile
Assim ficamos com 3 partições:
- /dev/sda1: Cópia da partição de boot
- /dev/sda2: Partição de sistema (contém o SO)
- /dev/sda3: Partição usada para swap
Pronto, agora poderemos iniciar o processo de configuração do nosso NAS.
Grave as informações no disco e reinicie o equipamento
Command (m for help): w reboot
- OSWE – Uma história de insucessos! - dezembro 29, 2020
- Instalando OpenVPN com autenticação em MySQL - junho 22, 2020
- Instalando CTFd no Ubuntu 20.04 com Nginx e uWSGI - junho 20, 2020
Boa noite, estou afim de adquirir um RP3, mas gostaria de usa-lo somente para que ele lê-se um HD externo de 500GB, vou passar jogos de PS2 para o HD externo, e deixar o RP3 ligado na rede para leitura do msm, mas a minha questão principal é: O RP3 consegue fornecer energia suficiente para um HD Externo?
Não sei lhe dizer, mas creio que depende da amperagem que vc vá colocar na fonte do RP3
como eu faria após os particionamentos se usar windows iot ou não se faz necessário?
Parabéns!…com uns pequenos ajustes aqui (por exemplo alterando o numero das partições para o meu caso) me ajudou muito!
Outra coisa que talvez posso ajudar alguém, como eu usei um HD externo de 1TB e meu cartão SD era de 16Gb ao final, pela interface grafica do Raspberry eu instalei o GPARTED para “extender” o espaço restante do HD
Excelente ideia. Vou tentar fazer o mesmo aqui. Vou usar um SSD de 240 GB.
com a rapsbery rodando pelo hd ainda dá pra usar vários sistemas trocando de cartão sd ?