viernes, junio 07, 2013

Instalar torrent en Raspberry Pi - Parte I: Configurar un disco duro por usb

Uno de los aspectos más interesantes de la RPI es su bajo consumo y su capacidad para realizar tareas que no necesitan demasiado capacidad de cálculo. En este caso pretendo evitar tener que dejar el pc de escritorio encendido para una tarea tan sencilla como descargar torrents. Como una tarjeta SD no proporciona mucho espacio, lo conveniente es añadir un disco externo por USB. Así pues divido el tutorial en dos partes: la configuración de un disco duro y la instalación del servicio de torrent.

Montar un disco duro fijo
Ante todo dejar claro que yo utilizo la RPI únicamente por línea de comandos y ssh a través de la red, no tengo monitor enganchado. Asegúrate de que sabes conectar con tu terminal antes de empezar. También parto de que tienes un disco duro listo y formateado, en mi caso lo tengo formateado en ext4 para poder aprovecharme de todas las ventajas de ese sistema. También serviría un disco fat e incluso ntfs aunque la configuración variaría ligeramente. Consulta este enlace si tienes dudas respecto a que opciones debes poner más adelante en el fstab.

Lo primero que vamos a crear es un punto de montaje, es decir, el directorio en el que estará disponible el nuevo disco duro. Por convención se suelen usar los directorio /mnt/nombre_disco o /media/nombre_disco. Lo hacemos con en siguiente comando:

$sudo mkdir /media/usbdisk
$sudo chmod 777 /media/usbdisk

Es importante el segundo comando para asegurarnos que una vez montados el disco cualquier usuario podrá añadir o borrar carpetas o archivos en él. Puede parecer una brecha de seguridad (y de hecho no es nada recomendable en un sistema serio) pero es la forma más sencilla de que tanto el usuario pi (el que usamos normalmente) como el del servicio torrent puedan acceder a los archivos sin problemas. Aprende algo más sobre el sistema de permisos unix si tienes curiosidad.

Para terminar vamos a crear un enlace sencillo que nos permitirá acceder desde nuestro directorio de usuario al disco duro de una forma más directa. Este paso es opcional pero ¡así aprendes a hacer un enlace!

$ln -s /media/usbdisk/ /home/pi/usbdisk

Vale, ya tenemos el punto de enlace listo. Ahora toca montar el disco duro. Encendemos la alimentación si es necesario y conectamos el disco por usb. Después de un ejecuta:

$sudo blkid

Debería aparecerte algo así:


/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="3312-932F" TYPE="vfat" 
/dev/mmcblk0p2: UUID="b7b5ddff-ddb4-48dd-84d2-dd47bf00564a" TYPE="ext4" 
/dev/sda1: UUID="497daa7e-50f7-4d8b-8013-6c02ad83056d" TYPE="ext4" 


Lo que aparece como /dev/sda o /dev/sdb son los dispositivos de disco duro, lo que aparece como /dev/sda1 /dev/sda2 o /dev/sdb1... son las particiones que tiene tu disco (todo en linux es un archivo). En mi caso sólo hay un disco (/dev/sda) con una única partición (/dev/sda1). Pues bien ahora lo que vamos a hacer es montar esa partición con el comando mount.

$sudo mount /dev/sda1 /media/usbdisk

Asegurate de poner el /dev/sdxx correpondiente a lo que hayas obtenido en el paso anterior... y si no ves ningún mensaje de error ¡ya está! ¡disco montado! puedes ir a la carpeta y comprobar que funciona, creando unos archivos y carpetas. También puedes usar este comando para obtener un poco más de información:

$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
rootfs         rootfs     7591392  1603680   5602248  23% /
/dev/root      ext4       7591392  1603680   5602248  23% /
devtmpfs       devtmpfs    224436        0    224436   0% /dev
tmpfs          tmpfs        44900      224     44676   1% /run
tmpfs          tmpfs         5120        0      5120   0% /run/lock
tmpfs          tmpfs        89780        0     89780   0% /run/shm
/dev/mmcblk0p1 vfat         57288    16872     40416  30% /boot
/dev/sda1      ext4     115379200 11968804 103410396  11% /media/usbdisk

En la última línea puedes ver mi partición /dev/sda1 en formato ext4 montada en /media/usbdisk y con sólo el 11% de su capacidad usada.

Montarlo automáticamente al arrancar
Evidente no vamos a estar pendientes cada vez que arranquemos la RPI de montar manualmente el disco duro. Para que lo cargue automáticamente en el inicio debemos incluir en el fstab ¿Cómo? muy sencillo. Primero asegúrate de desmontar el disco duro:

$sudo umount /dev/sda1

Editamos el archivo fstab:

$sudo nano /etc/fstab

...y le añadimos la siguiente línea al final:

/dev/sda1  /media/usbdisk  ext4  defaults  0  0

Teniendo en cuenta que el sda debe ser el tuyo. Donde pone ext4 es por mi sistema de archivos, si el tuyo es fat deberíamos poner vfat y si es ntfs, pues eso, ntfs. Consulta el enlace de arriba si tienes dudas.

Si lo hemos hecho todo bien ahora podemos referirnos directamente a la carpeta de destino para montar el sistema:

$sudo mount /media/usbdisk

¡Otro paso dado! Ahora cada vez que arranque y el disco duro esté pinchado lo montará automáticamente en esa localización. 

Ya casi lo podríamos dejar así pero le vamos a dar una vuelta de tuerca más. Tal vez ya se te haya ocurrido ¿qué pasa si pongo varios discos duros?¿o si lo cambio de puerto USB? ¿cómo sabe qué disco tiene que montar en cada punto?

Pues la respuesta corta es "no lo sabe". Al menos de momento. Tenemos que especificarle que no nos sirve cualquier disco duro si no que es uno en concreto el que queremos montar en /media/usbdisk. Lo primero será indentificar la partición con un código que se genera al crearla. Para obtener el UUID podemos usar el mismo comando de antes:


/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="3312-932F" TYPE="vfat" 
/dev/mmcblk0p2: UUID="b7b5ddff-ddb4-48dd-84d2-dd47bf00564a" TYPE="ext4" 
/dev/sda1: UUID="497daa7e-50f7-4d8b-8013-6c02ad83056d" TYPE="ext4" 

En negrita puedes ver la UUID de mi disco, en tu caso puede ser igual o más corta lo importante es identificar la partición con el sdxx correpondiente. Ahora copiamos esa cadena y la sustituimos en la línea del fstab:

UUID=497daa7e-50f7-4d8b-8013-6c02ad83056d /media/usbdisk  ext4  defaults  0  0

...y lo probamos con mount y umount. Si no nos da problemas ¡ya está todo! Tenemos un disco identificado unívocamente que se montará en cada arranque en una carpeta en concreto. Todo está listo para instalar nuestro cliente de Torrent.




2 comentarios:

  1. para un disco ntfs ? lo he estado haciendo y si se descarga al disco pero tb en la sd y desde que se llena dejar de descargar

    ResponderEliminar
    Respuestas
    1. En principio debería ser exactamente igual salvo que en lugar de ext4 se especifica ntfs
      Asegúrate de que puedes montar un disco ntfs aquí tienes algo de información al respecto
      http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=22957

      Eliminar