Ahora voy a explicar como usar una raspberry pi como un servidor “headless” (sin teclado, mouse o monitor), pequeño pero eficiente (consume realmente poca electricidad), para hacer lo siguiente:

  1. Un media server (usando dlna), esto nos permitirá trasmitir imágenes, audio y vídeo desde la raspberry pi, para verlos en otros dispositivos (como por ejemplo una PS3)
  2. Tener un servidor FTP, así podemos copiar de manera fácil archivos desde/hacia la raspberry pi y usarla como almacenamiento.
  3. Que cumpla la función de NAS, o sea que comparta algunos directorios con otros equipos en la red interna. En este caso vamos a usar NFS), que nos va a permitir ver y usar archivos/directorios que estén almacenados en la raspberry pi, como si estuvieran físicamente en los equipos clientes.
  4. Que funcione como una especie de seedbox, así tener un programa en las raspberry pi que descarge torrent por si mismo y los comparta hasta alcanzar un ratio establecido. Ideal para dejar descargando cosas mientras duermes.
  5. Por ultimo que sea un servidor donde podamos ejecutar nuestros propios script o instalar lo que queramos. Para acceder a el lo haremos por ssh.

Para ello necesitamos un router para tener una red interna y suficientes “clientes” (laptops, PS3, smartphones, etc.) conectados a esa red, como para que valga la pena el esfuerzo.

Para configurar la raspberry necesitamos, de manera permanente:

  • Una raspberry pi obiamente (yo voy a usar una modelo B que ya tenia)
  • Una tarjeta SD (o microSD + SD adapter) de 4 o más GB (para el o los sistemas instalados en la raspberry)
  • Un cable Ethernet para conectarla a la red interna (yo desempolve uno que tenia guardado hace años en la caja del router)
  • Uno (o mas) disco externo USB (yo voy a usar uno externo de 2.5 de 1TB)
  • Una fuente de poder o HUB USB alimentado (yo voy a usar un HUB USB dlink DUB-H7 que ya tenia, este va a alimentar a la raspberry y al disco USB)

Ademas de manera temporal neceitamos un lector de tarjetas SD (yo use el de mi notebook) para copiar los archivos a la SD, un monitor o pantalla de TV (con el respectivo cable) y un teclado USB, estos solo lo ocupamos solo para la instalación inicial.

Nota: en este post hay varios comandos que hay que utilizar como root, obiamente pueden usar sudo o ingresar como root para hacer lo mismo si quieren.

1) Instalar y configuraciones previas

Lo primero es tener una raspberry pi con algún sistema operativo instalado, yo recomiendo raspbian (y en el cual voy a basar esta guia). Hay varias formas de instalarla, pero la mas fácil es con NOOBS, esto se ha cubierto en varios sitios, así que pueden seguir estas instrucciones para preparar la tarjeta, copiar los archivos a la tarjeta y luego las instrucciones paso a paso para instalar.

Lo segundo es activar el servidor para realizar las conenexiones SSH (en caso de que no estén activadas), para saber si esta activado podemos hacer:

$ sudo service ssh status

Si dice [ ok ] sshd is running. o algo similar esta funcionando, en caso contrario en el mismo sitio anterior tienen instruciones de como activarlo. Ahora les recomiendo modificar las opciones de configuración del servidor SSH y recuerden probar desde otro equipo si se pueden conectar via SSH.

Por ultimo actualizamos el sistema y el firmware de la raspberry (como root o usando sudo).

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update

Una vez actualizado, enchufamos el disco externo al hub usb y reiniciamos

$ sudo reboot

Ahora desconectamos la pantalla y el teclado, ya que a partir de ahora vamos a hacer todo por ssh (por lo que a partir de este momento ya no necesitamos acceso físico a la raspberry, aunque si alguien quiere seguir trabajando con el teclado/monitor, puede seguir haciéndolo).

2) Agregar/formatear un disco externo

Primero nos conectamos vía ssh desde otra maquina y luego hay que averiguar que unidades tenemos conectadas, esto lo podemos ver con:

$ sudo fdisk -l
$ sudo mount -l
$ df -h

En mi caso tenemos:

sudo fdisk -l

sudo fdisk -l

/dev/mmcblk0 que es la tarjeta SD (como se ve en la imagen, esta tiene varias particiones, ya que tengo instalados varios sistemas operativos en la misma tarjeta)

/dev/sda1 que es el disco duro USB. Este de fabrica viene formateado en NTFS, con esto tenemos dos opciones:

  1. Usarlo como ya esta, para eso hay que instalar el driver ntfs-3g para poder montarlo. La ventaja de esto es que este disco se puede desenchufar y luego lo podemos conectar a cualquier sistema y lo leerá de forma nativa
  2. Formatearlo en algún formato usado en gnu/linux como ext4, el cual tiene mejor rendimiento que el NTSF

Yo voy a usar la segunda, ya que voy a mantener el disco siempre enchufado a la raspberry, por lo que prefiero ganar en rendimiento. Por ello lo voy a formatear en ext4.

Primero voy a crear 2 particiones: 1 para la swap (de el doble de la memoria de la raspberry, o sea 1GB) y otra para el almacenaje (que sera del total que queda en el disco duro)

Notas: Como es costumbre hay varias formas para particionar un disco desde la linea de comandos. Normalmente uno usa fdisk paras discos de < 2TB y parted o gdisk para discos de > 2TB. Además para discos < 2TB se usa MBR (Master Boot Record, la cual puede tener solo 4 particiones primarias y el resto extendidas) y para >2TB se usa GPT (GUID Partitioning Table, que no tienen la limitante de las particiones primarias), aqui tienen un largo articulo que explica las diferencias.

Como no se si la raspberry soporta GPT y voy a usar solo 2 particiones, vamos a crear las particiones usando fdisk (y con MBR), para ello hacemos:

$ sudo fdisk /dev/sda

Con esto le decimos que trabaje con todo el disco sda, y luego:

  • si ingresamos m y enter, podemos ver las opciones
  • ingresamos p y enter, para ver las particiones del disco, en mi caso solo muestra una partición (sda1, la NTFS).
  • ingresamos d y enter, con esto eliminamos la partición, si hay mas de una partición, una nos va a preguntar que partición eliminar (repetimos hasta eliminar todas)
  • ingresamos p y enter, para ver las particiones del disco, en este caso no debería haber ninguna.
  • ingresamos n y enter, con esto nos vamos a crear una nueva partición, nos va a preguntar si es primaria o extendida, ingresamos p y enter (para que sea primaria) y luego ingresamos 1 y enter (para que sea la primera partición). Nos va preguntar en sector inicia, así que apretamos enter para usar el valor por defecto y luego nos va a preguntar donde termina, como yo la voy a usar como swap escribo +1G y enter para que cree una partición de 1GB.
  • ingresamos p y enter, para ver las particiones del disco, en este caso vamos a ver una partición /dev/sda1 de linux con el tamaño especificado.
  • ingresamos n y enter, con esto nos vamos a crear la siguiente partición, nos va a preguntar si es primaria o extendida, ingresamos p y enter (para que sea primaria) y luego ingresamos 2 y enter (para que sea la siguiente partición). Nos va preguntar en sector inicia, asi que apretamos enter para usar el valor por defecto y luego nos va a preguntar donde termina, enter para usar el valor por defecto (que es usar todo lo que queda del disco, o sea el ultimo sector).
  • ingresamos p y enter, para ver las particiones del disco, en este caso vamos a ver una partición /dev/sda1 de linux de 1GB y una segunda partición /dev/sda2 de linux de todo el tamaño que queda.
  • por ultimo si todo esta bien, grabamos los cambios al disco, para eso ingresamos w y enter.

Si hacemos sudo fdisk -l veremos que ahora tenemos dos particiones /dev/sda1 (de 1 GB) y /dev/sda2 (que es el resto de disco), pero ambas están sin formato.

Captura raspberry pi ejecutando fdisk -l

Captura raspberry pi ejecutando fdisk -l

Ahora formateamos la partición primaria 2 (/dev/sda2) en ext4 y le ponemos la etiqueta “nas” (o lo que quieran como etiqueta)

$ sudo mkfs.ext4 /dev/sda2 -L nas

O tambien puede ser sudo mkfs -t ext4 -L nas /dev/sda2 que es equivalente. Esperamos un poco a que termine.

ToDo : hacer un video muestro el proceso que acabo de explicar con un disco mas pequeño y colocarlo aqui

si quieren darle otro formato al disco, aqui tiene un resumen de los diferentes comandos parar formatear en ntfs, HFS+, FAT32, etc.

Ahora creamos un directorio en /media llamado nas y montamos el disco alli:

$ sudo mkdir /media/nas
$ sudo mount -t auto /dev/sda2 /media/nas

Comprobamos que la particion este montada donde debe:

$ df -h
Uso de df -h

Uso de df -h

Y por ultimo cambiamos el dueño de para que sea el usuario “pi” y el grupo “pi” (o usen el usuario y grupo que esten usando), asi no tendremos problemas de que no podamos escribir en el disco

$ sudo chown pi:pi /media/nas

Si aun no podemos escribir en ella, aplicamos un chmod para cambiar los permisos

3.1) Instalar el servidor dlna

Vamos a crear 3 directorios en donde vamos a guardar el audio, video y foros que vamos a trasmitir usando dlna, para ello hacemos:

$ cd /media/nas
$ mkdir audio
$ mkdir video
$ mkdir fotos

En estos directorios vamos copiando/dejando los archivos que queremos compartir.

Ahora vamos a intalar un servidor ndla, yo escogi el minidla por su compatibilidad, para instalarlo hacemos:

$ sudo apt-get install minidlna

Una vez instalado modificamos la configuracion, para eso hacemos:

$ sudo nano -Bw /etc/minidlna.conf

Las opciones -Bw le dicen a nano que cree una copia de respaldo del documento original (le agrega ~ al final) y que no use ninguna line-wrap al editar.

Ahora buscamos las lineas que comienzan con media_dir= y las modificamos, dejandolas similar a esto:

media_dir=A,/media/nas/audio
media_dir=P,/media/nas/fotos
media_dir=V,/media/nas/video
Configuración del minidlna

Configuración del minidlna

En este caso la A es por audio, P por pictures (fotos) y V por video, seguido del correspondiente directorio donde estan los archivos. Luego reiniciamos el servidor:

$ sudo service minidlna force-reload

Para ver si agrego los archivos, uno puede abrir en un navegador la siguiente dirección

http://<dirección IP de la raspberry>:<puerto configurado en minidlna.conf>

3.2) Instalar el cliente dlna

Hay varios cilentes dependiendo de la plataforma a usar aquí tienen una lista de varios clientes. Por ejemplo en android pueden usar BubbleUPnP.

bubbleUPnP en android

Hay otros equipos que las reconocen automáticamente sin instalar nada, como por ejemplo mi PS3.

ps3 minidlna

ps3 minidlna propiedades

Como ven en ambos aparece el servidor montado en la raspberry con un icono con el logo de debian, y obiamente se puede reproducir/ver todos los archivos que se estan compartiendo.

4.1) Instalar el servidor ftp

Vamos a instalar un servidor ftp, así podemos enviar (o recibir) archivos desde nuestro PC hacia la raspberry, lo que resulta bastante comodo. Para ello vamos a usar vsftpd

$ sudo apt-get install vsftpd

Una vez que este descargado abrimos el siguiente archivo de configuración.

	
$ sudo nano /etc/vsftpd.conf

Ahora descomentamos las siguientes líneas en el archivo para permitir la escritura de archivos a los usuarios de la Raspberry Pi.

local_enable=YES
write_enable=YES

obviamente hay muchas más opciones que pueden activar (como por ejemplo evitar que los usuarios vean otros directorios que no sean su home), por aquí tiene una explicación sencilla y otra más detallada.

Por último reiniciamos el servicio.

$ sudo service vsftpd restart

4.2) Cliente FTP

Una vez que hemos instalado nuestro servidor FTP, vamos a ver si funciona, para ello nos constamos con algún cliente ftp como Filezilla. Al abrirlo nos aparecerá una ventana tal como esta, en donde rellenamos los campos de servidor, nombre de usuario y contraseña:

  • servidor : La IP de la Raspberry (normalmente en una red interna es 192.168.X.X)
  • nombre de usuario: es el usuario que se conecta (por ejemplo el usuario pi que crea raspbian por defecto)
  • contraseña: la contraseña del usuario pi (por defecto “raspberry”)
FileZilla conectada a la raspberry pi

FileZilla

Y con ello podemos comenzar a transferir archivos

5.1) Instalar el servidor NFS

A diferencia del FTP (que solo envia/recibe archivos), un servidor NFS permite que los clientes monten los directorios como si fueran unidades que están localmente en los clientes. Obviamente hay varias opciones que permiten hacer esto aparte de NFS, una bastante conocida es SAMBA (aqui tienen instrucciones si quieren usar samba) pero yo voy a usar NFS ya que la mayoria de mis clentes son tipo gnu/linux.

$ sudo apt-get install nfs-kernel-server

Esto debio haber instalado un paquete llamado rpcbind, despues de esto edita el archivo /etc/exports para establecer que directorios se comparten:

$ sudo nano -Bw /etc/exports

En este archivo cada linea se escriben dos partes: el directorio a montar y despues quien o quienes pueden acceder a ella (y las opciones a considerar), por ejemplo:

/media/nas/fotos 192.168.0.3(rw)
/media/nas/audio 192.168.0.1(ro) 192.168.0.2(ro)
/media/nas/video 192.168.0.0/255.255.255.0(ro,no_subtree_check)
  • En este caso en la primera linea decimos que /media/nas/fotos lo puede abrir/montar solo el cliente con la ip 192.168.0.3 en modo rw (lectrura y escritura)
  • En la segunad linea decimos que /media/nas/audio lo pueden abrir/montar los clientes con ip 192.168.0.1 y 192.168.0.2 en modo ro (solo lectura)
  • en la tercera linea le decimos que /media/nas/video lo pueden abrir/montar todos los clientes de la subred (o red interna), en modo ro (solo lectura) y no_subtree_check (subtree_check es la encargada de comprobar que las carpetas compartidas son todas las pertenecientes a un mismo volumen, no_subtree_check no hace esa comprobación, por lo que la transferencia de la lista de archivos es mas rápida).

Obiamente ustedes tienen que modificar el ejemplo con los valores correspondientes a su red. Para ver cuales son las opciones lean la documentación de redhat

Por ultimo reiniciamos el servidor para que tome la nueva configuración:

$ exportfs -av
$ sudo /etc/init.d/nfs-kernel-server reload
$ sudo /etc/init.d/nfs-kernel-server restart

Nota: puede que necesiten editar /etc/hosts.allow para especificar que los clientes se puedan conectar al equipo.

5.2) Instalar el cliente NFS

Por el lado del cliente, si es un gnu/linux hace un:

$ sudo apt-get install nfs-common

y despues monta el dispositivo de la forma:

$ sudo mount <direccion IP servidor>:/directorio/del/servidor/ directorio/del/cliente

Ahora desde el cliente puedes ver/modifcar el directorio tal como si estubiera en esa maquina.

Si quieren usar windows como cliente, pueden seguir estas intrucciones o esta otra (que usan Windows Services for UNIX).

6) Instalar un cliente torrent (rtorrent)

Tenemos varias opciones como por ejemplo transmission-daemon yo voy a usar rtorrent ya que consume muy poco (menos que Transmission) y lo llevo usando hace tiempo.

Instalamos rtorrent y screen (que nos permite que las sesiones sigan trabajando en segundo plano aunque uno se desconecte de ssh por ejemplo. En otras palabras que rtorrent siga funcionando aunque no estemos conectados a la raspberry)

$ sudo apt-get install rtorrent screen

Utilizaremos el usuario normal para arrancar el rtorrent y vamos a guardar nuestros torrents en el disco duro usb (por eso lo formatee en ext4, ya que el ntfs le sienta bastante mal, por la falta de recursos). Entonces vamos a configurar el cliente.

Primero vamos a crear algunos directorios (pueden cambiarlos a su propio gusto, u omitir alguno):

$ cd /media/nas
$ mkdir download
$ cd /media/nas/download/
$ mkdir torrent
$ cd /media/nas/download/torrent
$ mkdir session
$ mkdir torrent
$ mkdir descargas
$ mkdir terminados

Esto nos creara 4 directorios, que son los siguentes:

  • /media/nas/download/torrent/session/ (aquí guardo los datos de las sesiones de rtorrent)
  • /media/nas/download/torrent/torrent/ (aquí van los archivos *.torrent para que inicie su descarga de forma automatica al copiar uno a este directorio)
  • /media/nas/download/torrent/descargas/ (aquí están los archivos que aun no se terminan de bajar o estan en proceso de descargas)
  • /media/nas/download/torrent/terminados/ (aquí se mueven los que ya están terminados y que ahora solo se están seedeando)

Ahora modificamos el archivo de configuración de rtorrent, la configuración de rtorrent se hace en el fichero ~/.rtorrent.rc, en la home de nuestro usuario, este fichero tiene muchas opciones (si no lo tienen lo pueden con copiar desde /usr/share/doc/rtorrent/examples/rtorrent.rc. o desde el repo de rtorrent), como siempre os pongo las opciones basicas, ustedes tienen que perzonalizarlo a gusto:

# directorio donde se descargan los torrents.
directory = /media/nas/download/torrent/descargas

# Donde se va grabando el control de la sesión de la bajada del torrent
# contiene la data de los torrent iniciados, pausados y completados
session = /media/nas/download/torrent/session

# Directorio donde el irá mirando si existen torrents nuevos
# en el caso de encontrar lo añadirá automáticamente.
schedule = watch_directory,5,5,load_start=/media/nas/download/torrent/torrent/*.torrent
schedule = untied_directory,5,5,stop_untied=

# Mueve los torrent terminados (para la version 0.8.6 y superiores)
# versiones anteriores usan otra opcion
system.method.set_key = event.download.finished,move_complete,"d.set_directory=/media/nas/download/torrent/terminados/;execute=mv,-u,$d.get_base_path=,/media/nas/download/torrent/terminados/"

# Si nos quedan menos de 100MB en el disco duro, se paran todos los torrents  
schedule = low_diskspace,5,60,close_low_diskspace=100M

# Podemos decirle que verifique los archivos descargados a través de hash.
check_hash = yes

# Establecemos un rango de puertos y que se use un al azar dentro de estos.
port_range = 6890-6999
port_random = yes

# Activamos el uso de tracker UDP
use_udp_trackers = yes

# Limita la memoria ram usada a 180MB (180*1024*1024=188743680)
# util para equipos con poco memoria como la raspberry pi
max_memory_usage = 188743680

# 80 peers por torrent como maximo
max_peers = 80

# Permitidos tantos peers como leechers haya cuando esté seedeando
max_peers_seed = -1

# Un máximo de 12 subidas simultáneas por torrent
max_uploads = 12

# Numero maximo global de descargas
max_downloads_global = 30

# Ratio/velocidad global para las subidas y descargas en KiB/s. "0" para ilimitado
download_rate = 250
upload_rate = 60

Obiamente estos valores solo son orientativos y hay que modificarlos para la configuracion de cada uno, especialmente el uso de la memoria y la configuración de los ratios y velocidad de subida y bajada. Si no saben la velocidad de su conexión hagan una prueba en http://www.speedtest.net/ poniendo que le entreguen los resultados en kilobytes. Unos valores bastante optimos para la configuración (como explican por aqui) es usar como velocidad de bajada el 95% de tu velocidad total de bajada y la velocidad de subida a un 80% la velocidad de subida total de tu conexión (yo los puse en un valor mucho mas bajo para poder hacer otras cosas mientras descargo)

Claro que con este archivo de configuración se pueden hacer varias cosas más, como detener el torrent al alcanzar un ratio establecido, establecer los puertos a usar, activar la encriptacion, definir los puertos a usar al azar (dentro del rango establecido), limitar las velocidades de bajada, subida, etc. Esto estaba muy bien documentado en la antigua pagina de rtorrent pero con el cambio de sitio la documentacion nueva no es tan clara. Tambien pueden este blog que lo explica paso a paso, o revisar la documentación de arch-linux donde se explican detalladamente las opciones, con algunos ejemplos y la de rutorrent.

Ahora para hacerlo funcionar vamos a utilizar screen, para lanzar el rtorrent (y asi siga funcionando aunque despues nos desconectemos de la raspberry). Antes de seguir una explicación basica de screen.

Comandos básicos de screen.

Todos comenzarán por Ctrl+a y una tecla u otra combinación. Esto no quiere decir que se tenga que pulsar todo junto, sino que primero pulsaréis Ctrl+a y después la otra tecla o combinación.

La siguiente combinación de teclas sirve para “desengancharnos” del terminal: CTRL-a + d. Es decir, pulsamos CTRL y A al mismo tiempo y a continuación D. Y se mos mostrará el mensaje “Detached”. Con esto la sesión de screen pasa a un segundo plano (similar a un modo de daemon) y nos devuelve al terminal normal que estabamos usando (cualquier cosa que estaba ejecutando screen, se sigue ejecutando en segundo plano).

Para “reengancharnos” de nuevo a screen, usamos el comando screen -r en nuestro terminal normal y con esto se vuele a abrir screen con todo la que habiamos dejado ejecutando (si teniamos varias seciones de screen funcionando a la vez, nos va a preguntar a cual conectarnos).

Para cerrar permanentemente un terminal de screen, basta con ejecutar exit una vez estemos enganchados al terminal o bien teclear la combinación CTRL-a + c

Hay una explicacion mas completa en este blog (y que recomiendo leer).

Volviendo a nuestro tema, iniciamos screen con:

$ screen

Se nos muestra un mensaje con la licencia, pulsamos enter y a continuación se nos abre una copia del terminal de toda la vida dentro de screen. Dentro de screen ejecutamos rtorrent haciendo:

$ rtorrent

Se nos abre una pantalla como esta:

pantalla principal de rtorrent

pantalla principal de rtorrent

Esta es la pantalla de rtorrent que esta vacia (ya que no he iniciado ningun torrent aun). Para utilizarlo hacemos:

  • Apretamos Enter y nos va a preguntar donde esta el torrent que queremos abrir/ iniciar (ruta local o URL) y lo agregara a la lista de descargas de rtorret
  • Con las flechas arriba ↑ y abajo ↓ uno se mueve por la lista de torrent a descargar/descargando, para seleccionar alguno de ellos.
  • Luego con Ctrl + s se inicia la descarga del torrent seleccionado
  • Con Ctrl + d se para la descarga del torrent seleccionado. Si ya estaba parado, elimina el torrent de la lista de descargas.
  • Con la flecha derecha → se muestra una pantalla con información del torrent seleccionado (como la lista de ficheros del torrent, lista del tracker, los fragmentos de los ficheros del torrent, etc)
  • Si les interesa el reto de conbinacion de teclas, pueden revisar este blog donde explican como usar rtorrent con mas detalles

Agregamos algunos torrents con Enter y los iniciamos Ctrl + s. Ahora vamos a dejar funcionando rtorret en segundo plano, para ello nos “desengancharnos” del terminal screen hacemos: CTRL-a + d

No usar Ctrl + q para salir, ya que con eso se cierra rtorrent, parando todos los torrent activos, cosa que no queremos. Por eso mejor nos “desengancharnos” del terminal screen.

Ahora si queremos vorler a rtorrent (ya sea para monitorear los torrents o para agregrar nuevos), nos “reengancharnos” de nuevo a nuestro terminal de screen mediante el comando screen -r que hace un reattach.

Ahora se pueden agregar algunos script para hacer algunas funciones extras, como yo hice hace tiempo para bajar y filtrar automaticamente los torrent publicados en un rss

7) Ajustes finales

No crean que me habia olvidado de la particion /dev/sda1 que iba a usar para swap. Primero chequeamos que particion/archivo se esta usando como swap con:

$ swapon -s

y me responde lo siguiente:

Filename                                Type            Size    Used    Priority
/var/swap                               file            102396  0       -1

esto es porque por defecto raspbian usa un archivo en la SD como swap, esto lo controla el dphys-swapfile.

Por lo tanto detenemos la swap por archivo con:

$ sudo /etc/init.d/dphys-swapfile stop 
$ sudo swapoff --all

Además hay que modificar /etc/dphys-swapfile dejando la linea del tamaño en: CONF_SWAPSIZE=0 para que no cree el archivo y además para asegurarnos desactivamos que se inicie el sdphys-swapfile con:

$ sudo dphys-swapfile swapoff
$ sudo update-rc.d dphys-swapfile disable

Ahora vamos a transformar nuestra particion /dev/sda1 en una tipo swap con:

$ sudo mkswap /dev/sda1

iniciamos/activamos la particion swap:

$ sudo swapon /dev/sda1

podemos comprobar que ahora estamos usando el disco duro con:

$ swapon -s
$ free -h

Si por algun motivo se sigue usando el archivo como swap pese a que lo desactivamos, o si quieren ir a lo seguro, usamos la opcion más extrema, simplemente lo removemos haciendo:

$ sudo apt-get remove dphys-swapfile
apt-get purge dphys-swapfile

Ya que ahora tenemos la swap en el disco, puede que quieran modificar el nivel de Swappiness usado

En este momento hemos montados algunas particiones del disco USB de manera manual (asi que si reiniciamos vamos a perder algunos de nuestros cambios), por lo que tenemos que agregamos nuestras particiones a /etc/fstab para que cuando se reinicie se monten de manera automatica.

$ sudo nano -Bw /etc/fstab 

Y agregamos las nuevas particiones de la forma:
dispositivo punto_de_montaje sistema_de_archivos opciones dump-freq pass-num
Que corresponde a:

  1. dispositivo: es el dispositivo a montar (pudes ser /dev/sdXY o por la UUID)
  2. punto de montaje: es donde se monta
  3. sistema de archivos: aqui se coloca el tipo de particion: auto (para que la detecte automaticamente), vfat (para particiones FAT), ntfs o ntfs-3g (para particiones ntfs), ext4, ext3, ext2, jfs, reiserfs, udf, iso9660, swap, etc.
  4. Opciones: son las opciones de montaje, se puden ver en el man page de mount
  5. dump-freq: es el comando que utiliza dump para hacer respaldos del sistema de archivos, si es cero no se toma en cuenta ese dispositivo
  6. pass-num (orden del fsck): indica el orden en que la aplicación fsck revisará la partición. En la practica se una “0” para desactivar, se usa “1” solo para la particion root / (que es la primera en ser revisada) y “2” para el resto (las praticiones marcadas con “2” se comprueban de forma sequencial)

Pueden ver mas detalles en la documentacion de fstab

En nuestro caso añadimos las lineas:

/dev/sda1    none          swap    sw               0   0
/dev/sda2    /media/nas/   ext4    defaults,user    0   2

Y ya que estamos editando el /etc/fstab puede ser buena idea agregar el noatime a las particiones que estan en la SD (cuando abrimos/leemos alguno de nuestros ficheros, un parámetro que se llama “atime” o “access time” se actualiza, escribiendo cuál fué la última vez que accedimos/leimos ese fichero. Para evitar esas escrituras extras en la SD puede ser bueno desactivarlo agregando noatime en las opciones de montaje).

editando el /etc/fstab

editando el /etc/fstab

Finalmente reiniciamos, para asegurarnos de que todo funcione

$ sudo reboot

Si van a desconectar el disco duro fisicamente del hub, por cualquier motivo, recuerden primero desmontar las particiones que esten alli y hacer un $ sudo swapoff /dev/sda1 o sino pueden colgar el sistema.

8) Otras cosas por hacer

Hay varias cosas mas que se puede hacer para mejorar aun más nuestro sistema, como por ejemplo:

  • instalar nginx + rutorrent: con esto pueden controlar rtorrent con una GUI via web (rutorrent), además de que tendrian un servidor web livianito y eficiente con nginx.
  • instalar owncloud: con esto tendrian en su raspberry un servidor similar a dropbox para guardar sus archivos. Aqui tienen instrucciones de como hacerlo
  • Lo podemos programar para que nos notifique via e-mail cando pase algun evento.
  • Bueno y cualquier otra cosa que se te ocurra

En mi caso voy a ponenerle algunos heatsink a la raspberry y quisas le haga un case aunque sea uno de lego o de cartón.

Anuncios