Crie seu NAS com Raspberry 1B ou Zero
Uma grande utilidade do Raspberry Pi é criar um NAS, temos uma ótima opção pronta que é o OMV, porém ele não funciona, ou não é recomendado para versões abaixo do Raspberry Pi 2B. Então a solução para quem quer ter um NAS com um Raspberry Pi antigo ou um de custo mais baixo como o Zero, é montar seu próprio sistema eliminando a interface gráfica. Isso vai deixar o sistema mais leve, liberando processamento e memoria para o necessário.
Além do Raspberry Pi você vai precisar de um cartão SD, e aqui também você pode economizar recursos, se não desejar usar um servidor DLNA, o que sim também é possível, um cartão de apenas 2GB é suficiente, se desejar usar o servidor DLNA um de 4GB é suficiente.
Para o HD externo use alguma interface USB como gaveta ou cabo direto. Este HD costuma necessitar de alimentação independente das portas USB do Raspberry Pi, o que pode ser feito com um HUB USB alimentado.
A partir daqui todas as informações serão baseadas em quem já tenha conhecimento de linha de comando em Linux, afinal como foi dito acima o sistema não irá possuir interface gráfica. Plugue o teclado no Raspberry Pi, deixe o mouse na gaveta e vamos em frente.
Uma dica: não use seu NAS pelo WIFI, na conexão cabeada você terá maior velocidade e estabilidade.
Outra dica: você não precisa saber o IP para conexões remotas, basta usar o hostname:
Além do Raspberry Pi você vai precisar de um cartão SD, e aqui também você pode economizar recursos, se não desejar usar um servidor DLNA, o que sim também é possível, um cartão de apenas 2GB é suficiente, se desejar usar o servidor DLNA um de 4GB é suficiente.
Para o HD externo use alguma interface USB como gaveta ou cabo direto. Este HD costuma necessitar de alimentação independente das portas USB do Raspberry Pi, o que pode ser feito com um HUB USB alimentado.
A partir daqui todas as informações serão baseadas em quem já tenha conhecimento de linha de comando em Linux, afinal como foi dito acima o sistema não irá possuir interface gráfica. Plugue o teclado no Raspberry Pi, deixe o mouse na gaveta e vamos em frente.
Uma dica: não use seu NAS pelo WIFI, na conexão cabeada você terá maior velocidade e estabilidade.
Outra dica: você não precisa saber o IP para conexões remotas, basta usar o hostname:
raspberrypi.local
Instalando e preparando o sistema:
A distribuição Linux que usaremos aqui é a Raspbian Lite que pode ser encontrada no site oficial:
https://www.raspberrypi.org/downloads/raspbian/
Instruções de gravação no cartão SD também é encontrada no site oficial em "Writing the image":
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
Após a instalação faça as atualizações:
O comando clean serve para apagar os arquivos baixados para a instalação e liberar espaço no cartão SD, use constantemente caso tenha um cartão SD de tamanho pequeno.
Entre nas configurações do Raspberry Pi para habilitar o SSH:
5 Interfacing Options
P2 SSH
Aproveite e sete seu locale também se desejar que a data / hora do sistema fique de acordo com seu país.
Com o SSH habilitado você pode optar em fazer o acesso pelo PC utilizando o Putty no Windows ou qualquer terminal no Linux. Dessa forma você poderá copiar e colar comandos, facilitando o trabalho.
Para configurar o teclado para o ABNT2, vá no arquivo de configuração:
E altere para:
Como o sistema irá permanecer ligado constantemente é aconselhável mudar a senha padrão, para isso use o comando:
Outra mudança possível de fazer é mudar o hostname que por padrão é raspberrypi. Você pode colocar o que desejar, para isso edite os arquivos abaixo e troque pelo nome desejado:
Para efetivar a mudança reinicie o sistema:
Com o HD plugado é preciso fazer com que ele monte automaticamente na pasta desejada a cada inicializada do sistema. É aconselhável montar em uma pasta criada dentro do home, o programa minidlna que usaremos não se dá bem com montagens fora da pasta de usuário.
Primeiro veja qual o dev o HD está, normalmente é /dev/sda1:
Procure algo como:
Crie uma pasta em seu home e dê permissão total para ela, utilizando os comandos abaixo trocando meuhd para o nome desejado:
Edite o fstab:
Adicione a linha abaixo substituindo a pasta de montagem e seu dev de acordo com seu sistema:
Neste caso o HD a ser montado está formatado em EXT4, para NTFS substitua ext4 por ntfs.
Para ter um servidor de arquivos Windows é necessário instalar o Samba.
Para a instalação use:
Após a instalação entre no arquivo de configuração do samba:
Vá para o fim do arquivo e adicione as linhas abaixo de acordo com a configuração desejada:
Compartilhando a pasta /home/pi e exigindo senha de acesso:
Compartilhando a pasta /home/pi sem exigir senha de acesso:
Reinicie o serviço com:
Para fazer o acesso pelo Windows aperte a tecla Win e entre com uma das duas linhas:
Para fazer o acesso pelo Linux, vá para a barra de algum gerenciador de arquivos entre com:
Após instalação do samba pode ocorrer o erro locale abaixo:
Para corrigir entre no raspi-config e vá para:
4 Localisation Options
I1 Change Locale
Mude para:
Seguido de:
Execute um update e o erro vai desaparecer:
Para ter um servidor de arquivos Linux é necessário instalar NFS:
Para a instalação use:
Após a instalação entre no arquivo de configuração do NFS:
Vá para o fim do arquivo e adicione a linha abaixo de acordo com a configuração de pasta e rede desejada.
https://www.raspberrypi.org/downloads/raspbian/
Instruções de gravação no cartão SD também é encontrada no site oficial em "Writing the image":
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
Após a instalação faça as atualizações:
sudo apt-get update sudo apt-get upgrade
sudo apt-get clean
O comando clean serve para apagar os arquivos baixados para a instalação e liberar espaço no cartão SD, use constantemente caso tenha um cartão SD de tamanho pequeno.
Entre nas configurações do Raspberry Pi para habilitar o SSH:
sudo raspi-config
Vá em:5 Interfacing Options
P2 SSH
Aproveite e sete seu locale também se desejar que a data / hora do sistema fique de acordo com seu país.
Com o SSH habilitado você pode optar em fazer o acesso pelo PC utilizando o Putty no Windows ou qualquer terminal no Linux. Dessa forma você poderá copiar e colar comandos, facilitando o trabalho.
Para configurar o teclado para o ABNT2, vá no arquivo de configuração:
sudo nano /etc/default/keyboard
E altere para:
XKBMODEL="abnt2"
XKBLAYOUT="br"
XKBVARIANT=""
XKBOPTIONS="lv3:alt_switch,compose:rctrl"
Como o sistema irá permanecer ligado constantemente é aconselhável mudar a senha padrão, para isso use o comando:
passwd
Outra mudança possível de fazer é mudar o hostname que por padrão é raspberrypi. Você pode colocar o que desejar, para isso edite os arquivos abaixo e troque pelo nome desejado:
sudo nano /etc/hosts
sudo nano /etc/hostname
sudo reboot
Com o HD plugado é preciso fazer com que ele monte automaticamente na pasta desejada a cada inicializada do sistema. É aconselhável montar em uma pasta criada dentro do home, o programa minidlna que usaremos não se dá bem com montagens fora da pasta de usuário.
Primeiro veja qual o dev o HD está, normalmente é /dev/sda1:
sudo fdisk -l
Procure algo como:
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 488396799 488394752 232.9G 83 Linux
Crie uma pasta em seu home e dê permissão total para ela, utilizando os comandos abaixo trocando meuhd para o nome desejado:
mkdir meuhd
chmod -R 777 meuhd
Edite o fstab:
sudo nano /etc/fstab
Adicione a linha abaixo substituindo a pasta de montagem e seu dev de acordo com seu sistema:
/dev/sda1 /home/pi/meuhd ext4 defaults 0 0
Neste caso o HD a ser montado está formatado em EXT4, para NTFS substitua ext4 por ntfs.
Instalação de programas:
Instalando o Samba:
Para a instalação use:
sudo apt-get install samba
Após a instalação entre no arquivo de configuração do samba:
sudo nano /etc/samba/smb.conf
Vá para o fim do arquivo e adicione as linhas abaixo de acordo com a configuração desejada:
Compartilhando a pasta /home/pi e exigindo senha de acesso:
[pi]
comment=pi home
path=/home/pi
browseable=yes
writeable=yes
only guest=no
create mask=0740
directory mask=0750
public=no
Sendo necessário criar a senha do usuário pi (neste caso) no samba com o comando:sudo smbpasswd -a pi
Ao tentar o acesso remoto, será pedido o usuário e senha, use pi para usuário e a senha criada no samba. A senha do linux não funciona no acesso remoto.
Dica: Use a mesma senha do linux, assim fica mais fácil lembrar.
Compartilhando a pasta /home/pi sem exigir senha de acesso:
[pi]
comment=pi home
path=/home/pi
browseable=yes
writeable=yes
guest ok = yes
create mask=0644
directory mask=0755
force user = pi
Reinicie o serviço com:
sudo service smbd restart
Para fazer o acesso pelo Windows aperte a tecla Win e entre com uma das duas linhas:
\\raspberrypi
\\raspberrypi.local
Para fazer o acesso pelo Linux, vá para a barra de algum gerenciador de arquivos entre com:
smb://raspberrypi.local
Após instalação do samba pode ocorrer o erro locale abaixo:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "en_US.UTF-8",
LC_MONETARY = "en_US.UTF-8",
LC_ADDRESS = "en_US.UTF-8",
LC_TELEPHONE = "en_US.UTF-8",
LC_NAME = "en_US.UTF-8",
LC_MEASUREMENT = "en_US.UTF-8",
LC_IDENTIFICATION = "en_US.UTF-8",
LC_NUMERIC = "en_US.UTF-8",
LC_PAPER = "en_US.UTF-8",
LANG = "en_GB.UTF-8"
Para corrigir entre no raspi-config e vá para:
4 Localisation Options
I1 Change Locale
Mude para:
en_US.UTF-8 UTF-8
Seguido de:
en_GB.UTF-8
Execute um update e o erro vai desaparecer:
sudo apt-get update
Instalando o NFS:
Para a instalação use:
sudo apt-get install nfs-common nfs-kernel-server
Após a instalação entre no arquivo de configuração do NFS:
sudo nano /etc/exports
Vá para o fim do arquivo e adicione a linha abaixo de acordo com a configuração de pasta e rede desejada.
Neste caso todos os hosts da rede 192.168.1.x terão acesso a pasta:
Você pode definir que apenas um host tenha acesso a pasta usando:
Reinicialize o serviço com:
Para fazer acesso da maquina Linux, crie uma pasta e use:
Neste caso a pasta criada foi raspberrypi na pasta de usuário linux.
Para inicializar o sistema com a pasta já montada, adicione uma linha no fstab:
Para ter um servidor DLNA/UPnP é necessário instalar o MiniDLNA:
Para a instalação use:
Após a instalação entre no arquivo de configuração do MiniDLNA:
Adicione e/ou edite as linhas existentes de acordo com sua pasta de arquivos:
Onde nas três primeiras linhas o P é de picture, o V de vídeos e o A de audios, o servidor irá descobrir todos os arquivos mesmo estando dentro de outras pastas. O friendly_name será o nome que vai aparecer nos clientes e inotify vai descobrir novos arquivos nas pastas automaticamente.
Reinicialize o serviço com:
Nos clientes como o VLC ou Kodi basta procurar o serviço de stream DLNA/UPnP que além de encontrar os arquivos, eles estarão ordenados por categorias.
Acessando de um cliente pelo browser o endereço abaixo, você terá um resumo da quantidade de arquivos encontrados e clientes conectados:
Para ter acesso aos seus arquivos de fora da internet da sua casa, como uma conexão 4G por exemplo, uma ótima opção é usar um serviço de VPN. O ZeroTier é um bom serviço gratuito que atende bem este proposito.
Primeiro é necessário entrar no site do ZeroTier e criar uma conta. Após a conta criada, logue em https://my.zerotier.com, entre em network e crie uma nova rede. Pegue o numero do ID e guarde para ser usado nos hosts.
Para a instalação use:
Para entrar na sua rede criada use:
Caso ocorra o erro abaixo:
Execute o comando para dar permissão ao arquivo:
Para verificar qual o IP da VPN, dê o comando ifconfig e procure pela rede que começa com ztppixxxx.
Para acessar seu NAS de outros hosts, com o ZeroTier instalado no host, basta entrar na rede com o mesmo ID e fazer o acesso pelo IP ZeroTier do seu NAS. Por exemplo:
Caso o IP do seu NAS criado pelo ZeroTier seja 192.168.195.44 e deseje acessar o servidor Samba de uma maquina Windows use:
Clientes como Kodi possuem embutidos a opção de acesso a servidores Samba. O ZeroTier possui aplicativos para Smartphone Android e iOS, com o ZeroTier habilitado no celular e por exemplo o App VLC instalado, também será possível acessar seu servidor Samba. O VLC de smartphones possue embutido a opção de acesso a servidores Samba.
Como a ideia de um NAS é um servidor permanentemente ligado, não é muito bom para a saúde do HD ficar permanentemente ligado. Uma boa opção é desligar apenas o giro dele por inatividade, também chamado de Spin Down. Existe dois programas que fazem isto, o HDPARM ou HD-IDLE.
Após a instalação verifique se o hdparm suporta seu HD com:
Veja se o comando retorna:
Verifique se ele possui suporte a cache:
Caso todo suporte esteja ok, abra o arquivo de configurações com:
Vá para o fim do arquivo e adicione:
Onde no exemplo, o tempo de espera para desligar o giro será em segundos de 120 x 5 = 600 ou 10 minutos. Se o serviço do hdparm estiver rodando, a partir daqui o HD irá desligar o giro a cada inatividade de 10 minutos.
Para fazer um teste de desligar o giro do HD use:
Se estiver ok, abra o arquivo de configuração com:
Parar o giro com 60 segundos ou 10 minutos para apenas um HD:
Parar o giro para vários HDs com tempos diferentes em cada um:
/home/pi/ 192.168.1.0/24 (rw)
Você pode definir que apenas um host tenha acesso a pasta usando:
/home/pi/ 192.168.25.5 (rw)
Reinicialize o serviço com:
sudo service nfs-kernel-server restart
Para fazer acesso da maquina Linux, crie uma pasta e use:
sudo mount -t nfs -o rw
raspberrypi.local
:/home/pi/home/linux/
raspberrypi
Neste caso a pasta criada foi raspberrypi na pasta de usuário linux.
Para inicializar o sistema com a pasta já montada, adicione uma linha no fstab:
raspberrypi.local
:/home/pi /home/linux/
raspberrypi
nfs defaults
Instalando o DLNA:
Para a instalação use:
sudo apt-get install minidlna
Após a instalação entre no arquivo de configuração do MiniDLNA:
sudo nano /etc/minidlna.conf
Adicione e/ou edite as linhas existentes de acordo com sua pasta de arquivos:
media_dir=P,/home/pi/meuhd/minhasimagens
media_dir=V,/home/pi/meuhd/meusvideos
media_dir=A,/home/pi/meuhd/meusaudios
friendly_name=Raspberry Pi
inotify=yes
Onde nas três primeiras linhas o P é de picture, o V de vídeos e o A de audios, o servidor irá descobrir todos os arquivos mesmo estando dentro de outras pastas. O friendly_name será o nome que vai aparecer nos clientes e inotify vai descobrir novos arquivos nas pastas automaticamente.
Reinicialize o serviço com:
sudo service minidlna restart
Nos clientes como o VLC ou Kodi basta procurar o serviço de stream DLNA/UPnP que além de encontrar os arquivos, eles estarão ordenados por categorias.
Acessando de um cliente pelo browser o endereço abaixo, você terá um resumo da quantidade de arquivos encontrados e clientes conectados:
http://raspberrypi.local:8200
Instalando a VPN ZeroTie:
Primeiro é necessário entrar no site do ZeroTier e criar uma conta. Após a conta criada, logue em https://my.zerotier.com, entre em network e crie uma nova rede. Pegue o numero do ID e guarde para ser usado nos hosts.
Para a instalação use:
curl -s https://install.zerotier.com | sudo bash
Para entrar na sua rede criada use:
zerotier-cli join ID_DA_REDE
Caso ocorra o erro abaixo:
zerotier-cli: missing authentication token and
authtoken.secret not found (or readable) in /var/lib/zerotier-one
Execute o comando para dar permissão ao arquivo:
sudo chmod 777 /var/lib/zerotier-one/authtoken.secret
Para verificar qual o IP da VPN, dê o comando ifconfig e procure pela rede que começa com ztppixxxx.
Para acessar seu NAS de outros hosts, com o ZeroTier instalado no host, basta entrar na rede com o mesmo ID e fazer o acesso pelo IP ZeroTier do seu NAS. Por exemplo:
Caso o IP do seu NAS criado pelo ZeroTier seja 192.168.195.44 e deseje acessar o servidor Samba de uma maquina Windows use:
\\192.168.195.44
Clientes como Kodi possuem embutidos a opção de acesso a servidores Samba. O ZeroTier possui aplicativos para Smartphone Android e iOS, com o ZeroTier habilitado no celular e por exemplo o App VLC instalado, também será possível acessar seu servidor Samba. O VLC de smartphones possue embutido a opção de acesso a servidores Samba.
Desligando o giro do HD por inatividade:
Instalando o HDPARM:
Para a instalação use
sudo apt-get install hdparm
sudo hdparm -y /dev/sda
/dev/sda:
issuing standby command
Se retornar uma terceira linha iniciada com "SG_IO: bad/missing sense data..." é porque ele não suporta. Então tente o HD-IDLE logo abaixo.
sudo hdparm -I /dev/sda | grep 'Write cache'
O * indica que ele possui suporte:
* Write cache
Caso todo suporte esteja ok, abra o arquivo de configurações com:
sudo nano /etc/hdparm.conf
Vá para o fim do arquivo e adicione:
/dev/sda {
write_cache = on
spindown_time = 120
}
Nas versões mais novas de Linux baseadas em Debian, o hdparm não está sendo instalado como um serviço, para checar se ele está com o serviço ativo use:
Se não tiver a informação de estar ativo, tente ativar com:
Se retornar erro, a opção mais fácil é coloca-lo para trabalhar como um programa e adicionar no /etc/rc.local para inicializar a cada boot. Ou então criar as chamadas para inicializa-lo como serviço, o que é bem mais complexo. O comando para o hdparm trabalhando como programa desligar o giro do HD é:
sudo service hdparm status
Se não tiver a informação de estar ativo, tente ativar com:
sudo service hdparm start
Se retornar erro, a opção mais fácil é coloca-lo para trabalhar como um programa e adicionar no /etc/rc.local para inicializar a cada boot. Ou então criar as chamadas para inicializa-lo como serviço, o que é bem mais complexo. O comando para o hdparm trabalhando como programa desligar o giro do HD é:
sudo hdparm -B127 /dev/sda
Instalando o HD-IDLE:
Para a instalação use:
wget -c http://sourceforge.net/projects/hd-idle/files/hd-idle-1.05.tgz
tar -xvzf hd-idle-1.05.tgz
cd hd-idle
sudo apt-get install debhelper
dpkg-buildpackage -rfakeroot
cd ..
sudo dpkg -i ../hd-idle_*.deb
sudo hd-idle -t sda1
Se estiver ok, abra o arquivo de configuração com:
sudo nano /etc/default/hd-idle
Edite o arquivo com as opções:
Habilitar o HD-IDLE:
START_HD_IDLE=true
Parar o giro com 60 segundos ou 10 minutos para apenas um HD:
HD_IDLE_OPTS="-i 600"
Parar o giro para vários HDs com tempos diferentes em cada um:
HD_IDLE_OPTS="-i 600 -a sda1 -i 300 -a sda5 -i 150"
Se o serviço do hd-idle estiver rodando, a partir daqui o HD irá desligar o giro a cada inatividade de acordo com o tempo setado.
Para checar se o serviço do hd-idle está ativo use:
sudo service hd-idle status
Para inicializar o serviço use:
sudo service hd-idle start
Torrent:
Eu tentei colocar um serviço automático para downloads de torrent mas não consegui, a dica é usar o rtorrent em conjunto com o screen. Caso consiga, irei editar este post com a informação.
Comentários
Postar um comentário