Guia instalación Raspberry Pi como NAS
Antes de comenzar, comentar que la Raspberry Pi 2, modelo sobre el que se realizó la instalación, no tiene la misma rapidez descargando que un ordenador de sobremesa. Esto se debe a dos motivos. El primero es que la transmisión de datos a través del puerto USB 2.0 produce una sobrecarga de ejecución sobre el procesador que de por si no es muy potente. El segundo es que el puerto de ethernet en realidad esta conectado a través del bus USB con lo cual se agrava el punto uno.
Para manejar la descarga remotamente, desde Linux se puede usar TransmissionGUI y Transdrone desde Android. Se comenta por la red el uso de FlexGet para tareas de automatización a la hora de añadir los torrents que descargamos de manera periódica.
IMPORTANTE: Una vez terminada la instalación y para evitar interferencias con el router si la tenemos conectada junto a este es mejor desactivar bluetooth y WiFi mediante los comandos:
sudo service bluetooth stop
sudo ifconfig wlan0 down
1Grabar imagen de la version “lite” en la tarjeta
Descargar Raspbian de la web y con el grabador de imágenes de Ubuntu grabar la tarjeta MicroSD.
2Arrancar y conectar via SSH
Introducir la tarjeta en la Raspberry Pi y arrancar el dispositivo. El usuario y el password por defecto son:
- usuario: pi* password: raspberry
Para saber la dirección ip loguearse y escribir ifconfig. Una vez arrancado abrir un terminal y escribir: ssh [email protected] donde 192.168.1.XXX es la dirección IP actual de la Raspberry Pi.
3Actualizar
Actualizar la lista de paquetes mediante aptitude o bien sudo apt-get update y sudo apt-get dist-upgrade.
4Ejecutar raspi-config
Ejecutar raspi-config para poner la hora e idioma local, cambiar la clave por defecto, expandir el sistema de archivos, etc.
Durante esta configuración es importante deshabilitar fastboot. Hay que hacer que la Raspberry Pi espere a que la red esté activa para arrancar. En caso contrario transmission-daemon no encontrará la red y dará un error con lo cual habrá que reiniciarlo manualmente.
5Configurar IP estática
Ejecutar sudo nano /etc/dhcpcd.conf y añadir al principio de fichero las siguientes lineas:
interface eth0
static ip_address=192.168.1.XXX/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
donde XXX es la dirección IP que deseamos que el dispositivo tome dentro de la red local.
Después reiniciar con sudo reboot.
Para verificar cuales son los parámetros de la red comandos útiles son:
6Instalar NTFS
Ejecutar sudo apt-get install ntfs-3g o bien usar aptitude para buscar e instalar el paquete.
7Instalar Transmission como un servicio
Ejecutar sudo apt-get install transmission-daemon o bien usar aptitude para buscar e instalar el paquete.
Antes de modificar el fichero de configuración tenemos que detener el servicio pues cada vez que este último dejar de funcionar el fichero de configuración se sobrescribe. Para ello ejecutamos sudo service transmission-daemon stop.
Ahora modificamos la configuración mediante nano sudo /etc/transmission-daemon/settings.json y hacemos los siguientes cambios:
- "rpc-password": nuestro_password", para poder conectar en remoto* "rpc-whitelist": "127.0.0.1, 192.168.." para que nos deje conectar desde la red local* "rpc-whitelist-enabled": false para que nos deje conectar desde la red local* también cambiamos los directorios donde queramos que nos descargue los ficheros
Recordar lo que se indicó en el punto 2 sobre la importancia de la disponibilidad de la red para el proceso de arranque de este servicio.
8Montar un disco duro externo por USB
En el directorio /media creamos un nuevo directorio para poder montar sobre este el dispositivo. Para ello ejecutamos el comando sudo mkdir /media/hdd.
Después vamos al directorio /dev y buscamos un dispositivo de nombre sdaX en este caso sda1.
Una vez identificado el dispositivo lo montamos sobre el directorio que hemos creado con la orden sudo mount /dev/sda1 /media/hdd. Comprobamos que esta montado con ls /media/hdd. El problema con esta solución es que cada vez que arranquemos el dispositivo tendremos que montar el disco y esto no es muy práctico.
Una solución más práctica pasa por editar el fichero /etc/fstab usando el comando sudo nano /etc/fstab/ y añadir la siguiente linea de código UUID=XXXXXXXXXXXXXX /media/hdd ntfs nofail,uid=pi,gid=pi 0 0.
El identificador que tenemos al principio lo podemos obtener de /dev/disk/by-uuid donde aparecen todos los identificadores de los dispositivos de almacenamiento que tenemos conectados. Para obterner el UUID del dispositivo ejecutamos la orden ls -l /dev/disk/by-uuid. Veremos que hay un enlace simbólico desde el UUID al dispositivo.
Dentro de la linea que hemos añadido a /etc/fstab, uid=pi,gid=pi indican que el disco se montará como perteneciente al usuario pi y al grupo pi, de este modo podremos acceder correctamente. En caso contrario transmission-daemon no podrá acceder a él.
Alguna gente señala problemas en el montaje y recomienda editar /boot/cmdline.txt
y añadir rootdelay=5
(se puede aumentar el valor del retraso) o bien editar
/etc/rc.local
y añadir
sleep 30
sudo mount -a
exit
aunque en nuestro caso concreto esto no ha sido necesario.
Al cambiar al disco externo que se activa cuando se conecta, si que ha habido problemas. En este casoel servicio transmission-daemon arrancaba antes de que el disco hubiera terminado de montarse. La solución consiste en buscar nuestra unidad con el comando systemctl list-units. En nuestro caso la unidad es media-hdd.mount.
Después creamos un directorio mkdir /etc/systemd/system/transmission-daemon.service.d y dentro de este creamos un fichero de configuración sudo nano -w /etc/systemd/system/transmission-daemon.service.d/transmission-daemon.conf en el que escribimos lo siguiente
[Unit]
After="media-hdd.mount"
esto hace que el servicio transmission-daemon no se levante hasta que la unidad que hemos especificado no se haya montado…
Por último informamos al sistema de los cambios mediante el comando sudo systemctl daemon-reload.
DUDA: Me queda la duda de que sucederá al actualizar la distribución, pero en un principio creo que los cambios se mantendrán.
9Instalar Samba
Ejecutar sudo apt-get install samba samba-common-bin para poder acceder al almacenamiento del dispositivo a través de la red mediante Samba.
Con la configuración por defecto se puede acceder al directorio /home/pi del dispositivo mediante nautilus pulsando Conectar al servidor escribiendo ssh://[email protected]. Nos va a solicitar la clave del usuario.
Lo que se describe a contnuación es sintesis del siguiente enlace https://help.ubuntu.com/community/How%20to%20Create%20a%20Network%20Share%20Via%20Samba%20Via%20CLI%20(Command-line%20interface/Linux%20Terminal)%20-%20Uncomplicated,%20Simple%20and%20Brief%20Way!
Los usuarios de Samba tienen que ser usuarios que previamente existan en el sistema y que tengan permisos de acceso a aquello que comparten. Estos usuarios son independientes de los del sistema, de modo que hay que crearlos y asignarles un password (para hacerlo más fácil el mismo del sistema) mediante el comando sudo smbpasswd -a pi donde pi es nombre del usuario.
A continuación editamos el archivo de configuración de Samba mediante el comando sudo nano /etc/samba/smb.conf. Al final del mismo añadimos lo siguiente:
[pi]
path = /home/pi
valid users = pi
read only = no
[descargas]
path = /media/hdd/descargas
valid users = pi
read only = no
Con esto compartimos el directorio /home/pi con el nombre pi y el directorio /media/hdd/descargas/ con el nombre descargas en ambos casos lo compartimos con el usuario pi que hemos definido anteriormente.
10Instalar Plex Media Server
Las mejores opciones disponibles para que una SmartTV acceda al contenido multimedia que descarguemos con nuestro NAS son miniDLNA (ahora ReadyMedia), MediaTomb y Plex Media Server.
El Plex Media Server es muy conveniente frente a miniDLNA o MediaTomb pues ademástiene una interfaz web amigable pero sobre todo existe una aplicación para las Samsung Smart TV con una interfaz gráfica muy similar a la de Kodi.
11Instalar Webmin para administrar el NAS via web
Pese a que estas instrucciones para este paso son correctas su ejecución da lugar a que el sistema de paquetes de Linux quede inservible debido a una instalación defectuosa. Esto parece deberse a que el paquete es para una versión anterior de Debian. En cualquier caso, instalar Webmin es no es realmente necesario pues la administración en linea de comandos es suficiente para las tareas que hay que realizar.
Instalar las dependencias sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python.
Descargar la ultima versión del paquete deb de Webmin con la siguiente orden (este enlace nos ofrece la última versión disponible del paquete .deb correspondiente) sudo wget http://www.webmin.com/download/deb/webmin-current.deb.
Instalar el paquete descargado con este comando sudo dpkg --install webmin-current.deb.
12Como hacer un backup
Para saber donde está el disco del que queremos crear la imagen ejecutamos la orden sudo sudo fdisk -l
Después, para crea la imagen, ejecutamos sudo dd bs=4M if=/dev/sdb of=raspbian.img
, aunque por ejemplo, en mi caso era /dev/sdc.
Para realizar el paso inverso, es decir, retaurar tenemo que ejecutar la ordern sudo dd bs=4M if=raspbian.img of=/dev/sdb
`` aunque en nuestro caso con la unidad que corresponda.
El único requerimiento es que la unidad de destino tenga al menos el mismo tamaño que la unidad origen.
13Enlaces de interés
Este video fue el punto de partida: https://www.youtube.com/watch?v=DPGpMSFZc9A
En esta web se aclara como montar el disco http://www.htpcguides.com/properly-mount-usb-storage-raspberry-pi/
En esta web se explica como instalar un servidor Plex https://www.element14.com/community/community/raspberry-pi/raspberrypi_projects/blog/2016/03/11/a-more-powerful-plex-media-server-using-raspberry-pi-3
Aquí se explica como instalar miniDLNA aunque existe otra alternativa más flexible MediaTomb. La principal ventaja es que tiene una interfaz web. http://www.htpcguides.com/install-readymedia-minidlna-1-1-4-raspberry-pi/
En cualquier casi teniendo un Smart TV Samsung instalar Plex es una alternativa más interesante pues existe una aplicación nativa en el televisior con una interfaz similar a Kodi.
En este enlace se explica como cambiar la ubicación de los metadatos que Plex descarga sobre la multimedia que gestiona https://smyl.es/how-to-move-plex-metadata-and-index-data-to-new-driver-andor-directory-location/
Aquí se explica como hacer que transmission espere a que se haya montado el disco para levantar el servicio. En nuestro caso hay que sustituir transmission por transmission-daemon en los comandos y al editar los distintos ficheros. Este problema me surgió al cambiar de un disco duro externo que tenía botón de encendido un que arranca al conectarlo/montarlo. https://computermen.linuxeverywhere.org/2014/06/05/start-transmission-mounting-usb-hdd/