Si eres poseedor de una raspberry pi, quizás te hayas percatado de que para conectar un disco duro o unidad usb no basta con conectar el usb y ya está. Vamos a aprender como conectar unidades usb a nuestra raspberry pi.
Desgraciadamente por defecto la Raspberry pi solo es capaz de leer discos duros o memorias flash, esto significa que podremos montarla y leer los datos pero no podremos modificarlos. Por suerte existen formas de hacer que se pueda escribir en el disco duro de nuestra raspberry pi y así poder utilizarlo para lo que quieras, desde backups (como explicaremos en otro artículo) hasta crear un NAS y servidores de películas.
Configurar la Raspberry Pi para que lea sistemas de archivos NTFS
Por defecto nuestra malina (nombre cariñoso de la fruta en otro idioma, a ver si adivinas cual), no lee sistemas de archivos NTFS, pero no desesperes, ya que esto tiene solución. Por el momento lo primero que haremos será conectarnos por ssh a la RPi o desde su misma consola y actualizar el apt-get con los siguientes comandos:
sudo apt-get update sudo apt-get upgrade
Ahora que ya la tenemos actualizada vamos a seguir con el proceso de instalación del ntfs
sudo apt-get install ntfs-3g
Por el momento nada mas terminar la instalación ya debería ser capaz de lidiar con este tipo de sistemas de archivos. En caso de que los discos o unidades que vayas a conectar no utilizen este sistema de archivos puedes omitir esta parte.
Averiguar ruta de montaje de nuestro disco duro en la Raspberry Pi
Ahora tenemos que buscar cual será la ruta en la que estará el disco duro que hayamos conectado, tranquilo es bastante fácil. Ejecutaremos el siguiente comando:
sudo fdisk -l
y deberíamos ver una lista similar a la siguiente:
Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes 4 heads, 16 sectors/track, 243200 cylinders, total 15564800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00065bd9 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 2496093 1243951 e W95 FAT16 (LBA) /dev/mmcblk0p2 2498560 15499263 6500352 85 Linux extended /dev/mmcblk0p3 15499264 15564799 32768 83 Linux /dev/mmcblk0p5 2506752 2629631 61440 c W95 FAT32 (LBA) /dev/mmcblk0p6 2637824 15499263 6430720 83 Linux Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x90ec2574 Device Boot Start End Blocks Id System /dev/sda1 2048 976769023 488383488 7 HPFS/NTFS/exFAT
Por supuesto dependerá de los datos y configuraciones de tu raspberry, pero nos vamos a fijar en la última línea que serán los discos externos conectados: /dev/sda1 2048 976769023 488383488 7 HPFS/NTFS /exFAT. Si tienes más de uno te aparecerán aquí todos.
Una vez que sabemos este dato nos vamos a fijar en la ruta, que en este caso sería /dev/sda1 y seguiremos teniendo en cuenta este dato.
Montar disco duro externo en Raspberry pi de forma permanente
Ahora vamos a montar nuestro disco duro, pero para ello tendremos que crear una ubicación física en nuestro sistema. Este paso es relativamente fácil así que lo que haremos será elegir donde queremos que se monte. Yo lo voy a poner en /var/hdd, pero tú podrías ponerlo donde quieras, por ejemplo /media/hd o /discoduro. Para ello crearemos la carpeta con el siguiente comando:
sudo mkdir -p /var/hdd
Ahora tenemos dos opciones, una es que vayamos a dejar el disco conectado y queramos que se monte cada vez que ejecutamos la malina. Para ello tendremos que editar el fstab:
nano /etc/fstab
y añadiremos una línea con nuestro disco duro, en este caso la que empieza por /dev/sda1:
proc /proc proc defaults 0 0 /dev/mmcblk0p5 /boot vfat defaults 0 2 /dev/mmcblk0p6 / ext4 defaults,noatime 0 1 /dev/sda1 /var/hdd ntfs-3g defaults 0 0 # a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that
La parte de /var/hdd será la carpeta que has creado, y la de ntfs-3g será el sistema de archivos de tu disco duro, si es fat32 tienes que poner vfat. Para añadir más discos simplemente añadimos más líneas.
Si en lugar de utilizar las particiones como /dev/sda1 quieres que se monte siempre que esté conectado puedes mirar cómo montar unidades en linux por uuid. De esta forma siempre que conectes ese disco o memoria se volverá a montar en el mismo punto que hayas indicado.
Tras modificarlo puedes recargar el fstab y hacer que directamente se monten las unidades con el comando:
umount -a
Tras todo esto y viendo que se hayan montado correctamente solo te queda reiniciarla para ver que se haya montado el disco duro en inicio.
sudo reboot
Una vez reiniciado podemos acceder a nuestra carpeta y crear una carpeta para ver que nos deja escribir
cd /var/hdd sudo mkdir carpeta ls /var/hdd
Veremos que nos ha dejado la carpeta creada. Si queremos realizar una comprobación más a fondo podemos desmontar el disco y conectarlo a nuestro ordenador para ver que realmente se haya creado.
sudo umount /dev/sda1
Montar de forma puntual y volver a desmontar disco duro en Raspberry pi
Si en lugar de dejar el disco duro montado de forma permanente en cada reinicio, lo único que queremos hacer es montarlo para leer o escribir algunas cosas y luego volverlo a desmontar (lo veremos en el artículo backups con consumo eléctrico optimizado) lo que vamos a hacer va a ser lo siguiente:
para montarla ejecutaremos este comando (siempre sabiendo la ruta de montaje tal y como hemos averiguado arriba)
sudo mount /dev/sda1 /var/hdd/
en este momento podremos escribir en el disco en la ruta /var/hdd y hacer las gestiones que necesitemos. Después para desmontarlo ejecutaremos esta línea
sudo umount /var/hdd/
con esto el disco quedaría extraído y podríamos desconectarlo sin problema
Forzar umount del disco cuando device is busy in Raspberry pi
Si nos indica el siguiente mensaje al hacer umount (o algo parecido):
umount: /var/hdd: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
significa que el disco duro está realizando alguna acción, podemos esperar a que termine el programa que sea o podemos forzar el desmontaje con este comando:
sudo umount -l /dev/sda1
Con todos estos datos estamos listos para conectar discos duros y unidades flash a nuestra malina, además de que hemos aprendido la base para luego poder utilizarla para crear un centro de backups o por ejemplo un NAS.