Publicado en Bitácora, Raspberry Pi

Raspberry Pi. Paso 4: Montar disco duro USB

Introducción

Partiendo de la base de que queremos la como centro multimedia, es evidente que con una tarjeta microSD no vamos a tener suficiente, por muy grande que sea. A día de hoy, cualquier película FullHD con sonido DTS 5.1 que se precie, viene ocupando unos 10-15 GB, así que nos va a hacer falta casi con total seguridad un disco duro de, mínimo, 500 GB. Habrá quien se pueda apañar con 128 GB, pero este tutorial sirve igual para discos duros como para pendrives de cualquier tamaño.

Elegir el tipo de disco duro USB

Es uno de los puntos más complicados porque todo tiene sus pros y sus contras. Podríamos catalogar las posibilidades en 3 grandes grupos: pendrive, disco duro USB de 2.5″ y disco duro USB de 3.5″. Dependiendo de dónde vayas a colocar todo el invento, te será de mayor o menor prioridad el tamaño físico del disco. Pero más allá de eso, que siempre puede ir detrás de la tele sin que se vea mucho, la clave es elegir entre alimentación externa (red eléctrica) o no (alimentado por el propio USB).

Un pendrive, por grande que sea, no consume tanta energía como para que la Raspberry Pi no pueda con él, así que es la opción más minimalista si la capacidad no es un problema (que lo acabará siendo). Sin embargo, si nos vamos a discos duros de más de 256 GB, nos empezamos a meter en el peligroso umbral de la autoalimentación. Generalmente un disco duro USB de 2.5″ no trae alimentación externa, coge la energía necesaria del ordenador al que está conectado. El problema es que la Raspberry Pi no es capaz de alimentarse a sí misma y a un disco duro de 500 GB con el cargador de 2A. La solución para este caso es comprar un HUB USB con alimentación externa. Con esto ganamos más puertos USB y además alimentación extra para dispositivos que la RPi no es capaz de mover con su propia energía.

Pero ya puestos a ocupar un enchufe más, yo prefiero un disco duro USB de 3.5″ con alimentación externa. Son más fiables, más duraderos y, normalmente, más baratos en igualdad de capacidad. La pega es que es bastante más grande (unas 4 veces la propia RasPi) y quizá en algún salón es realmente un estorbo. Además el HUB USB me parece excesivo ya que disponemos de 4 puertos USB de serie que, en general, son más que suficientes.

Elegir el sistema de ficheros

Sea cual sea tu elección, que es absolutamente personal y dependerá totalmente de las circunstancias de cada uno, sin que haya una única elección perfecta, el sistema de ficheros es la siguiente elección que has de hacer. Y recuerda que es reversible, pero con cada cambio de sistema de ficheros hay que formatear eliminando todo lo que haya.

Hay más, pero básicamente las opciones más lógicas que tienes son 3: FAT32, NTFS, ext3/4. De entrada descartaría FAT32, es el que suele venir por defecto en los pendrives pero tiene un defecto insalvable: no admite ficheros de más de 4 GB. Como ya dije antes, a día de hoy las películas en calidad decente ya ocupan más que eso así que no merece mucho la pena en nuestro caso.

Luego tenemos NTFS, es el sistema de ficheros por defecto de Windows y el que viene en casi todos los discos duros USB. Sólo lo aconsejaría si tenemos un PC con Windows al que pretendemos mover el disco duro más o menos habitualmente para transferir ficheros, aunque esto no debería pasar porque la Raspberry Pi debería ser el centro de todo sin necesidad de un ordenador externo para nada, además siempre podemos transferir los ficheros por la red. Y no lo aconsejo, sobre todo, porque como cualquier otro Linux, Raspbian no tiene soporte nativo para NTFS. Esto implica que tengamos que utilizar software adicional para leer y escribir en el disco (ntfs-3g), y no sería un problema si no fuera porque es un proceso que recarga bastante la Raspberry Pi tanto computacionalmente como a nivel de temperatura.

Y por último tenemos ext3/4. Vale, son dos opciones en realidad: ext3 y ext4, pero los pongo juntos porque la explicación para elegirlos es la misma: son los nativos de Linux. Más allá de que la fragmentación es menor que en NTFS o que la velocidad de lectura y escritura pueden ser mayores, la razón principal para elegir uno de los dos es que hace trabajar menos a la Raspberry Pi. Así que puestos a optimizar los recursos, mejor que sea ext3, que no se ha demostrado realmente que sea mucho peor que ext4 y encima consume menos, además tampoco vamos a notar especialmente la diferencia en los procesos que vamos a ejecutar en la RasPi.

Como ya he dicho para el tipo de disco, el sistema de ficheros también depende mucho de la situación de cada uno y no hay una elección perfecta en todos los casos.

Montar el disco duro USB

Vamos a lo importante, que todo lo anterior es palabrería que probablemente no necesites. Lo primero es ver el nombre que Raspbian le ha dado a nuestro dispositivo USB, ya sea un pendrive o un disco duro. Doy por hecho que tienes Raspbian, aunque realmente este proceso funciona igual en casi cualquier Linux que hayas puesto en la miscroSD. Para ello ejecutamos:

sudo fdisk -l

Obtenemos un listado de todos los discos y sus particiones. Primero aparecerá la microSD con sus dos particiones, y después los dispositivos USB que tengamos conectados. Es fácil detectar cuál es el que queremos montar porque da mucha información del mismo, pero lo definitivo son la capacidad y el sistema de ficheros. Tendrás un resultado parecido a esto:

fdisk

Como puedes ver, /dev/mmcblk0 es mi microSD de 8 GB, con sus dos particiones, y /dev/sda es mi disco duro USB de 3 TB con una única partición: /dev/sda1.

Ahora podemos formatear el disco para darle el sistema de ficheros que queramos si no lo hicimos antes de conectarlo a la Raspberry Pi. Recuerda que se perderán todos los datos:

sudo mkfs.ext3 /dev/sda1

Esto formatea completamente la partición que le hayamos indicado con el sistema de ficheros ext3, si prefieres ext4 sólo tienes que utilizar mkfs.ext4.

Para acceder a nuestro disco duro USB necesitamos crear un directorio donde montarlo. Puedes elegir casi cualquier sitio para crearlo, pero lo típico y recomendable es hacerlo en media:

sudo mkdir /media/discousb

Donde discousb es el nombre que yo le he puesto al directorio donde voy a montar mi disco duro USB, soy muy original, pero tú puedes poner lo que más te guste. Y ahora tendríamos que montar el disco en el nuevo directorio con el comando mount, pero en vez de eso, vamos a modificar la configuración inicial para que cada vez que se arranque la Raspbery Pi se monte automáticamente:

sudo nano /etc/fstab

Al final de este fichero vayamos a añadir la siguiente línea:

/dev/sda1      /media/discousb      ext3      defaults      0      0

Lo primero es la partición de tu disco duro USB, lo segundo es dónde vamos a montarlo, lo tercero es el sistema de ficheros del disco (puede ser ext3, ext4, ntfs o vfat para FAT32) y el resto son las opciones por defecto para el montaje. Guardamos y cerramos el fichero con Ctrl+O, Intro, Ctrl+X.

Ahora cada vez que se inicie Raspbian tendremos el disco duro USB montado y listo para acceder a él. Si lo quieres empezar a utilizar ahora mismo sin tener que reiniciar puedes ejecutar:

sudo mount -a

Que monta todas la particiones que estén indicadas en el fichero /etc/fstab que acabamos de modificar.

Fin

Lo lógico es utilizar la tarjeta microSD para instalar los programas que vayamos a necesitar y utilizar el disco duro USB para almacenar todo el multimedia. Por eso yo, he organizado mi disco creando carpetas dentro de /media/discousb como Peliculas, Series, Musica, etc. Para poder tener acceso sin problemas tanto al disco como a todas las subcarpetas que queramos crear, lo mejor es poner que el propietario es el usuario pi, es decir, nosotros:

sudo chown pi /media/discousb

Eso es todo, mañana explicaré cómo instalar y configurar Transmission, un software para descargar torrents.

18 comentarios sobre “Raspberry Pi. Paso 4: Montar disco duro USB

  1. Me encantan estos tutoriales, ayer me compré una Raspberry 2 y los voy a seguir paso a paso. Están genial explicados. Espero que subas también cuando puedas el tutorial para bajar torrents en la Rpi. Una duda, ¿sería posible ver de alguna manera la televisión en la raspberry y grabar programas como lo haría en un dvd grabador normal? Cuando la tenga la conectaré por HDMI a una SmarTv con tdt integrado, no sé si eso influye para mi duda…

  2. Hola Pablo, me alegra que te sirvan, y no dudes en que haré más, por supuesto el de los torrents.

    Respecto a ver y grabar TV tienes 2 opciones:
    1. IPTV: utilizar la Raspberry Pi como decodificador de Movistar TV u otras plataformas de emisión de TV por la red.
    2. Conectar un sintonizador de TV por USB, y éste a la toma de antena con su cable correspondiente.

    En ambos casos necesitas algo extra, en el primero necesitas ser cliente de alguna plataforma de IPTV y en el segundo necesitas conectar un hardware extra y que sólo serviría para canales TDT.

    Si tu pregunta era si puedes grabar los canales que ves en la TV a la que está conectada la Raspberry Pi la respuesta es NO, rotundamente no. La TV solamente hace de monitor de la RasPi, hace de salida de vídeo, la RPi no puede leer lo que reproduce la TV.

  3. Hola, voy a cambiar el disco duro que venía usando hasta ahora (que instale gracias a tu tutorial) pero voy a cambiarlo por otro. ya que el que tengo ahora empieza a pitar como un loco y se conecta y se desconecta… ¿tengo que hacer algo especial para hacer el cambio? como eliminar el sitio donde estaba montado el anterior o algo así?

    1. Hola Lole, al contrario, lo ideal sería que montaras el nuevo disco en el mismo directorio donde tenías montado el anterior, así la RPi ni se entera que es un disco diferente y no tienes que cambiar la configuración de nada.

      Haciéndolo así el Kodi seguirá cogiendo las películas de donde estaban antes (si es que pones la misma estructura de directorios en el nuevo disco), el Transmission seguirá descargando las cosas como antes y así con todo lo que tengas instalado.

  4. En primer lugar muchas gracias por tus tutoriales, me han servido de punto de partida con mi nueva Raspberry Pi 2!
    Estoy intentando montar un disco duro de 3Tb (como el de tu ejemplo) pero al ejecutar el sudo mount -a obtengo el siguiente mensaje

    mount: wrong fs type, bad option, bad superblock on /dev/sda1,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog – try
    dmesg | tail or so

    en dmesg puedo ver lo siguiente:

    [ 1285.742703] ntfs: (device sda1): parse_ntfs_boot_sector(): Volume size (2TiB) is too large for this architecture. Maximum supported is 2TiB. Sorry.
    [ 1285.742728] ntfs: (device sda1): ntfs_fill_super(): Unsupported NTFS filesystem

    Con lo que por lo que veo el problema es que no puedo montar unidades de más de 2Tb pero no se si es por estar en NTFS. El caso es que el disco lo tenía funcionando en Windows, lo tengo casi lleno y sería un drama tenerlo que formatear para ponerlo en ext3 ya que no tengo espacio suficiente para traspasar datos.

    ¿Alguna sugerencia?

  5. Me respondo a mi mismo! He instalado ntfs-3g con

    sudo apt-get install ntfs-3g

    y tras esto he podido montar la unidad sin problemas! :D

  6. Hola! muy buenos todos los tutoriales.
    Tengo un disco duro con formato exfat, ¿sería posible configurar la raspberry con para ese formato?

    Espero que sigas haciendo mas tutoriales, un saludo!

    1. Hola Jesús, por supuesto que se puede, pero al igual que pasa con los discos NTFS, la Raspberry no trae soporte nativo así que hay que instalarlo con:
      sudo apt-get install exfat-utils
      Después, en el /etc/fstab pones exfat en vez de ext3 y listo.
      Un saludo.

  7. Genial, pero cuando reinicio o cuando hago el sudo mount -a no me da error ni nada… pero no se monta.. solo si lo monto a mano funciona….. alguna idea?

  8. Gracias NSC por tu aporte! (thanks for the hint you gave us)

    Efectivamente el problema es que la RPi2 arranca demasiado rápido como para que le de tiempo a montar las unidades USB correctamente.

    Siguiendo el enlace que el compañero NSC ha dado he visto que hay que añadir al archivo /boot/cmdline.txt el parametro rootdelay=5 al final de la línea para que con ese pequeño retraso que añadimos (podemos poner 10 para más seguridad, pero con 5 me ha funcionado sin problemas) la unidad usb se monte correctamente.

    Ojo porque si jodemos la línea de este archivo podemos fastidiar el arranque y tener que recargar la imagen en la microSD. Mi linia completa y operativa en /boot/cmdline.txt es:
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait rootdelay=5

  9. hola ,e me gustan tus tutoriales y todos me han funcionado, me gustaria saber como montar un pendrive usb en fat 32 o ntfs , ya que estoy montando un carpc y me hace mas comodo poder reproducir la musica y videos o agregarle contenido dsd cualquier pc o que algun amigo me preste su pendrive y lo pueda usar …

  10. Hola, sigo las instrucciones pero cuando inserto el comando de formatear me pone:
    /dev/sda1 is mounted; will not make a filesystem here!
    sabes por que es y/o que quiere decir con eso?
    gracias!!

  11. Hola,

    Un apunte: es perfectamente posible alimentar discos de más de 500GB con el USB de la raspberry pi, tanto de la B+ como de la Pi 2. Hay que modificar unos parámetros en el config.txt y reiniciar…

    Por defecto vienen limitadas para no dar esa potencia por USB pero como digo cambiando esa configuración se le pasa toda la potencia al disco externo y sin pegas. Eso sí, con dos discos ya no puede… comprobado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *