Montaje automático de almacenamiento USB con Raspberry PI OS Lite: fstab y autofs

Si bien Raspberry PI OS Desktop tiene la capacidad de montar automáticamente dispositivos USB externos al conectarlos, la versión Lite no incluye esta función. Por esta razón, los proyectos que necesitan almacenamiento USB automontado en Raspberry PI deben incluir algunas configuraciones para encontrar el almacenamiento listo desde el arranque.

En este tutorial, le mostraré cómo configurar el montaje automático del almacenamiento USB en Raspberry PI (con Raspberry PI OS Lite) en el arranque o cuando esté conectado para estar listo para usar.

El montaje automático de dispositivos USB, especialmente el almacenamiento USB, permite que nuestro servidor Raspberry PI use discos más grandes para almacenar datos de aplicaciones.

Incluso si esta función pudiera parecer imprescindible en los sistemas operativos Linux modernos (y lo es en Raspberry PI OS Desktop), tendrá una mala sorpresa cuando intente conectar un disco duro a Raspberry PI OS Lite y no esté disponible para escritura. .

Por esta razón, decidí escribir un pequeño tutorial que explica cómo hacer que los almacenamientos USB se monten automáticamente en el arranque o en su complemento con Raspberry PI OS Lite.

Para este tutorial, usaré una placa de computadora Raspberry PI 3 Model A+, pero debería funcionar con todas las placas de computadora Raspberry PI, con Raspberry PI OS Lite de 32 y 64 bits.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

También necesitamos un dispositivo de almacenamiento USB (como una memoria USB o un disco duro USB).

Consulta precios de hardware en los siguientes enlaces:

Procedimiento paso a paso

Preparar sistema operativo

Como se dijo, este tutorial se enfoca en Raspberry PI OS Lite (versiones de 32 y 64 bits). Entonces, instale el sistema operativo y actualícelo desde la terminal:

sudo apt update -y && sudo apt upgrade -y

Ahora prepare su almacenamiento USB formateándolo. Formatearé mi memoria USB con el sistema de archivos FAT32 y le daré la etiqueta «USBSTORAGE».

Antes de comenzar con los 2 métodos posibles, debemos identificar el UUID de almacenamiento USB. El UUID (Universally Unique IDentifier) ​​es una etiqueta de 128 bits utilizada para identificar de forma única el dispositivo. Es como un Número de Serie pero construido de acuerdo a un acuerdo de estructura común. El UUID se detecta desde su sistema operativo una vez que el dispositivo está conectado, incluso si no está montado.

Obtener el UUID de su dispositivo es un trabajo realmente simple desde la terminal Raspberry PI, y con el siguiente procedimiento, no puede obtener un valor incorrecto. En primer lugar, desconecte (o mantenga alejado) el USB y use el comando blkid, una utilidad de línea de comandos para ubicar/imprimir atributos de dispositivos de bloque, para descubrir los dispositivos de almacenamiento realmente conectados:

pi@raspberrypi:~ € sudo blkid /dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="F914-FF4D" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="f6cca138-01" /dev/mmcblk0p2: LABEL="rootfs" UUID="1943b829-a99b-45b8-9fe5-7136dbea4c4a" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="f6cca138-02"

Las dos particiones que aparecen son las estándar creadas para Raspberry PI OS.

Conecte el almacenamiento USB (y repita hasta que aparezca). Aparecerá una nueva partición, como se resalta en rojo en la siguiente imagen:

Por supuesto, el suyo será diferente y dependerá de su dispositivo. Ya a partir de ahora, obtenemos mucha información útil:

  • el dispositivo está asignado como /dev/sda
  • la etiqueta descubierta es “USBSTORAGE”, que confirma por partida doble que se trata de nuestro almacenamiento USB
  • se muestra el famoso UUID. Para mi memoria USB, es DE11-2ABA, pero la tuya será diferente y puede tener un formato diferente. por favor tome nota de ello
  • el sistema de archivos descubierto es vfat

Ahora, estamos listos para aprender cómo montar automáticamente el almacenamiento USB en el arranque de Raspberry PI OS Lite con uno de los siguientes métodos.

Método 1: el FSTAB

El primer método es editando el FSTAB (TABLA del sistema de archivos). Es un archivo que enumera todas las particiones disponibles e indica al sistema operativo cómo inicializarlas y/o integrarlas en el sistema de archivos del sistema general.

Antes de pasar al procedimiento, tenga en cuenta que:

PRO: el uso de fstab no requiere la instalación de nuevos paquetes para administrar el montaje del almacenamiento USB. Funcionará correctamente montando el dispositivo USB en el arranque del sistema operativo RPI.

CONTRAS: este método no montará automáticamente el almacenamiento USB si se conecta cuando el sistema operativo ya se está ejecutando. Esto requerirá un comando de terminal «mount -a» o un reinicio del sistema.

Para configurar el montaje automático con fstab, cree el punto de montaje donde se adjuntará su almacenamiento (esa es la ruta para recuperar su contenido de almacenamiento USB). Lo nombraré como «myUSB» y lo montaré en la carpeta «media»:

sudo mkdir /media/myUSB

Ahora, abra el archivo fstab para editarlo:

sudo nano /etc/fstab

Las particiones en fstab deben declararse con la siguiente sintaxis:

UUID=<uuid-of-your-drive> <mount-point> <file-system-type> <mount-option> <dump> <pass>

donde:

  • UUID coincide con el UUID de su dispositivo USB
  • punto de montaje es la ruta donde adjuntar su almacenamiento
  • file-system-type depende del sistema de archivos utilizado para formatear su almacenamiento USB
  • mount-option le da al usuario la capacidad de incluir configuraciones adicionales para el almacenamiento montado. Esto es importante especialmente para los permisos para acceder al almacenamiento, ya que el uso de «valores predeterminados» aquí hace que su almacenamiento solo pueda ser escrito por el usuario raíz.
  • la opción de volcado, en el sistema de archivos ext2/3, y determina la necesidad de hacer una copia de seguridad del FS. Si no necesita la copia de seguridad de FS (tal vez porque hará una copia de seguridad en un almacenamiento diferente con diferentes técnicas, puede ponerla en 0
  • la opción de paso determina el orden en que se realizan las comprobaciones del sistema de archivos en el momento del arranque. El sistema de archivos raíz debe especificarse con un valor de 1 para esta opción. Otros sistemas de archivos deben tener un valor de 2.

Más información sobre fstab está disponible en https://man7.org/linux/man-pages/man5/fstab.5.html

De acuerdo con las descripciones anteriores, montar mi almacenamiento USB en el punto de montaje «/media/myUSB» y hacerlo accesible en lectura/escritura para el usuario predeterminado de Raspberry PI (uid=pi,gid=pi) significa agregar la siguiente fila a mi archivo fstab :

UUID=DE11-2ABA /media/myUSB vfat uid=pi,gid=pi 0 2

Guarde y cierre el fstab.

Ahora, podemos montar el almacenamiento de 2 maneras. Puede emitir el siguiente comando de terminal:

sudo mount -a

o puede reiniciar la Raspberry PI.

En ambos casos, su partición /media/myUSB aparecerá y será visible desde el comando de terminal «df -H», que también muestra el espacio libre de almacenamiento.

Método 2: los Autofs

Autofs es un paquete de Linux que se ocupa del proceso de montaje automático.

PRO: autofs puede montar la partición de almacenamiento USB incluso cuando el sistema operativo se está ajustando (no solo en el momento del arranque)

CONTRAS: se debe instalar autofs, incluso si la instalación es simple con el repositorio de aptitude

Comience a instalar autofs en su sistema operativo. Desde la terminal, utilice el siguiente comando:

sudo apt install autofs

El método autofs reside básicamente en preparar 2 archivos. El auto.master, ya disponible con la instalación de autofs, es donde mapeamos la carpeta del punto de montaje. Aquí vinculamos el segundo archivo (lo crearemos pronto), que explica qué montar y las opciones de montaje.

Aún así, con mis valores de ejemplo (UUID=DE11-2ABA y montándolo en /media/myUSB), abrimos el archivo auto.master para editarlo:

sudo nano /etc/auto.master

Agregue la siguiente línea a este archivo (lo agregué encima de mi archivo):

/media    /etc/auto.usb    --timeout=60 --ghost

Ahora podemos crear el archivo auto.usb referido. Fotograma de la terminal:

sudo nano /etc/auto.usb

E inserte la siguiente línea:

myUSB -fstype=auto,uid=pi,gid=pi,rw UUID=DE11-2ABA
  • la opción fstype se usa para especificar un tipo de sistema de archivos cuando es diferente del tipo de NFS predeterminado
  • uid=pi y gid=pi especifican el usuario del sistema que montará la unidad. Aquí debe cambiarlo en lugar del «pi» predeterminado si desea usar la unidad con un usuario diferente. Si no especifica esto, se montará la unidad con el usuario «raíz». En este caso, necesitará el «sudo» para editar/ejecutar archivos dentro del almacenamiento USB o el usuario raíz
  • rw hace que los archivos estén habilitados para lectura/escritura

Guardar y cerrar. Reinicie el servicio autofs:

sudo systemctl restart autofs.service

Tenga en cuenta que si cambia las opciones del archivo auto.usb, probablemente necesitará reiniciar su Raspberry PI para habilitar sus nuevas opciones.

Ahora, cuando conecta el almacenamiento USB, no puede verlo desde su comando «df -H». Pero al entrar en la carpeta montada:

cd /media/myUSB

encontrará todos sus campos y ahora el comando «df -H» mostrará la partición montada.

Tenga en cuenta también que, para eliminar de forma segura el almacenamiento USB con el sistema operativo en ejecución, deberá usar el siguiente comando:

sudo umount /media/myUSB

Con el sistema operativo en ejecución, si no se hace de esta manera, no podrá volver a montar automáticamente el almacenamiento USB, además de correr el riesgo de dañar sus datos. En este caso, necesitará reiniciar.