Actualizado el 22 de Noviembre de 2020
Una forma rápida y sencilla de añadir un disco duro externo por USB y asociarlo a una carpeta, primero como siempre actualizar:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Antes de empezar tenemos que tener en cuenta que hay unidades USB con alimentación externa y otros sin ella, con alimentación externa no habrá problemas pero debido a las limitaciones de la RaspberryPi en términos de alimentación es posible que no pueda arrancar un disco que requiera alimentación por USB, así que lo primero será encontrar las unidades que tenemos conectadas.
sudo blkid
Si no vemos nuestra unidad y no tiene alimentación externa podemos probar a hacer los siguientes pasos:
Archivos sin fuente de alimentación externa
Editamos el fichero config.txt
sudo nano /boot/config.txt
Agregamos esta línea al final del fichero
max_usb_current=1
Reiniciamos
sudo reboot
Ahora volveríamos a probar el comando blkid y ver si aparece nuestra unidad, de no ser así podemos probar lo siguiente.
Instalamos wringPi desde aquí y comprobamos si tenemos el pin GPIO 38 activo que es el que nos permitirá doblar la potencia de la RaspberryPi y alimentar dispositivos externos:
gpio -g read 38
Si devuelve 1 lo tenemos habilitado, si vemos un 0 lo habilitamos con:
gpio -g write 38 1
En caso de no funcionar hay que usar una fuente de alimentación de más calidad, para verificar si el problema es la fuente de alimentación al arrancar la RaspberryPi tenemos que fijarnos en la cantidad de iconos de frambuesa que veamos, cuantos más mejor y sobre todo fijarnos de no ver ningún símbolo de un rayo lo que querría decir que no hay potencia suficiente.
Configurando unidad externa
Cuando veamos nuestra unidad usamos el siguiente comando:
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
Veremos un listado de unidades conectadas, una buena pista suele ser mirar la columna LABEL y MODEL también por el tamaño podemos averiguar cual es nuestra unidad.
La columna FSTYPE muestra el tipo del sistema de archivos, hay que tener instalado el driver adecuado para que se pueda leer, por ejemplo para exFAT:
sudo apt install exfat-fuse
O para NTFS (poder leer y escribir):
sudo apt install ntfs-3g
Tenemos que crear la carpeta en la que queramos mapear la unidad de red, por ejemplo:
mkdir /media/usb/acme
Ahora localizamos el valor UUID (la primera columna) lo guardamos y editamos el fichero /etc/fstab, incluyendo esta línea:
UUID=12345678ABCDEFGH /media/usb/acme ntfs-3g default,uid=pi,gid=pi,nofail 0 0
Donde UUID es el valor que teníamos guardado, luego tenemos la ruta a la carpeta que hemos creado /media/usb/acme, ntfs-3g es el driver necesario para leer la unidad, en este caso ntfs-3g porque es una unidad con sistema de archivos ntfs, uid es el nombre de usuario que se usará para acceder a la unidad (en este ejemplo el usuario pi) y gid es el nombre del grupo con permiso para acceder (en este caso el grupo pi), nofail sirve para indicar que si la unidad no se puede montar en el arranque no se produzca un error.
En este caso hemos usado el usuario pi que viene por defecto en la instalación, si quisiéramos usar otro haríamos:
sudo adduser acme
Igual puede interesar crear un usuario solo para validarse por red pero no para poder iniciar sesión como un usuario normal, algo parecido a una cuenta de servicio.
sudo adduser -shell /bin/false --no-create-home acme
Ahora solo nos queda montar la unidad USB con:
sudo mount -a
Si accedemos a la carpeta que hemos creado veremos el contenido del disco, también podemos compartirla por unidad de red siguiendo los detalles de este post.
Referencias
https://www.htpcguides.com/power-2-5-hard-drive-with-raspberry-pi-b/
https://www.raspberrypi.org/documentation/configuration/external-storage.md
https://www.raspberrypi.org/forums/viewtopic.php?t=238095