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

001

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

002

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

Helvio Junior

Helvio Junior

Gerente de Infraestrutura de TI e Telecomunicações em Fael, uma empresa do grupo Apollo Global
Especialista em redes e segurança de sistemas pela PUC-PR, consultor de redes e segurança da informação. CEO e CTO da SafeTrend, com um produto de single sign-on e gestão de identidades e acessos. Especialista em Segurança da Informação, Controle de Acesso, ambientes e ferramentas de segurança, telefonia VoIP com Asterisk, administração de redes em ambientes híbridos e realização de penetration test (pentest).
Helvio Junior

Últimos posts por Helvio Junior (exibir todos)

2 respostas
  1. Diego Costa
    Diego Costa says:

    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?

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *