Solución de la comunidad

Montar una unidad externa para Immich en ZimaOS

A ZimaOS user could not create traditional /mnt mount points for four USB-connected HDDs. The thread clarified ZimaOS storage paths, Docker host/container mappings, and the two-step process for exposing an external drive to Immich.

Si ZimaOS devuelve mkdir: cannot create directory '/mnt/...': Read-only file system, no des por hecho que el disco externo está dañado. En el hilo de IceWhale Community de octubre de 2025, el usuario estaba aplicando un /mnt flujo de trabajo a ZimaOS, donde el sistema de archivos y la estructura de almacenamiento se administran de forma diferente.

La lección más útil del hilo es separar dos tareas: primero, asegurarte de que ZimaOS tenga una ruta estable del host para el disco duro externo; después, asignar esa ruta del host al contenedor de Immich. Immich solo puede validar una ruta de biblioteca externa que exista dentro de su contenedor. La documentación actual de Immich sigue aplicando ese mismo principio de Docker, aunque ya no requiere específicamente la ruta histórica del contenedor /external_library.

Por qué /mnt era de solo lectura en el caso de la comunidad

El autor original intentó crear:

/mnt/terrabay1
/mnt/terrabay2
/mnt/terrabay3
/mnt/terrabay4

pero ZimaOS devolvió:

mkdir: cannot create directory '/mnt/terrabay4': Read-only file system

Zima-Giorgio desaconsejó modificar directamente los archivos del sistema de ZimaOS salvo bajo la supervisión de un experto o en un entorno de prueba. La misma respuesta señaló que las unidades y los recursos compartidos administrados por ZimaOS normalmente aparecen en rutas ubicadas debajo de /media y se pueden mostrar desde la terminal.

Comprueba cómo ZimaOS ya montó la unidad

Antes de desmontar o editar /etc/fstab, inspecciona el estado actual del almacenamiento:

lsblk -f
ls /media
df -h

En el hilo original, ZimaOS ya había expuesto los cuatro discos mediante rutas similares a:

/media/sdb-ata-ST2000VN003-3CW1
/media/sdc-ata-ST2000VN003-3CW1

Si la unidad ya está montada y funciona de forma estable a través de ZimaOS, quizá no necesites volver a montarla manualmente. La configuración más sencilla de Immich suele consistir en usar la ruta existente del host de ZimaOS en el lado izquierdo de una asignación de volumen de Docker.

El método histórico de montaje manual compartido por el autor

El autor original documentó finalmente un método manual mediante /etc/fstab las entradas y los puntos de montaje siguientes /DATA. Por ejemplo:

sudo mkdir -p /DATA/Enclosure/Bay1
sudo mount /dev/sdb /DATA/Enclosure/Bay1

y después un comando /etc/fstab una línea con un UUID real del disco:

UUID=YOUR-REAL-UUID /DATA/Enclosure/Bay1 ext4 defaults,nofail,x-systemd.automount 0 0

seguido de:

sudo systemctl daemon-reload
sudo mount -a

Esta fue una solución alternativa de la comunidad para ZimaOS en 2025, no una recomendación universal vigente. No copies los UUID ni los nombres de dispositivos del hilo, como /dev/sdb; pertenecen al hardware de ese usuario y pueden cambiar.

Un pequeño error tipográfico formaba parte del problema original

Más tarde, el autor descubrió que Apple Notes había puesto automáticamente en mayúscula el primer carácter de algunas líneas de comandos copiadas. Los comandos y las rutas de Linux distinguen entre mayúsculas y minúsculas, por lo que un comando copiado como Mkdir en lugar de mkdir, o una ruta con cambios en las mayúsculas, fallará.

Al preparar comandos de terminal, utiliza un editor de texto sin formato y verifica las mayúsculas antes de pegarlos.

Las bibliotecas externas de Immich requieren dos pasos independientes

Las respuestas posteriores aclararon la arquitectura:

  1. ZimaOS/Docker: asigna la ruta del host del disco duro externo al contenedor immich-server.
  2. Immich: crea una biblioteca externa utilizando la ruta dentro del contenedor del paso 1.

Si solo se realiza el paso 2, la validación de Immich falla porque la ruta no existe dentro de su contenedor.

El ejemplo de ZimaOS de 2025 utilizó /external_library

El miembro de la comunidad sny utilizó un concepto de asignación similar a:

Ruta del host de ZimaOS: /media/USB_1/sny
Ruta de Immich:      /external_library
Configuración de Immich en ZimaOS que muestra una ruta USB externa asignada al contenedor
El ejemplo de la comunidad asignaba una ruta de host existente de ZimaOS al contenedor de Immich antes de añadirla como biblioteca externa.

Después, en Immich, el usuario añadió:

/external_library

como ruta de importación de la biblioteca externa.

La configuración de bibliotecas externas de Immich valida la ruta de importación dentro del contenedor
Immich valida la ruta visible dentro del contenedor, no la ruta original del host de ZimaOS.

La versión actual de Immich no requiere el nombre /external_library

La documentación actual de Immich es más flexible. Su guía oficial de bibliotecas externas muestra rutas de host y de contenedor arbitrarias, por ejemplo:

immich-server:
  volumes:
    - /home/user/photos1:/home/user/photos1:ro
    - /mnt/photos2:/mnt/photos2:ro

La regla importante es que la ruta introducida en Immich debe coincidir exactamente con la ruta dentro del contenedor. El nombre /external_library era una convención práctica del ejemplo de la comunidad de ZimaOS, no un requisito de Immich.

Preferir montajes de solo lectura para bibliotecas de archivo

La documentación actual de Immich recomienda añadir :ro cuando Immich solo deba leer la biblioteca externa:

/host/photos:/external_library:ro

Elimina el modo de solo lectura únicamente si quieres deliberadamente que Immich elimine recursos externos o escriba metadatos XMP complementarios. Montar un archivo como de solo lectura reduce el riesgo de que una aplicación modifique los archivos originales.

Varias bibliotecas externas

La comunidad sugirió rutas de contenedor independientes, como:

/external_library/usb1
/external_library/usb2
/external_library/photos

La versión actual de Immich también admite varios puntos de montaje. Cada ruta de biblioteca debe montarse en immich-server y luego se añade en la página de administración de Bibliotecas externas de Immich.

¿Immich copia las fotos de una biblioteca externa en su biblioteca principal?

No. La documentación actual de Immich describe las bibliotecas externas como recursos que permanecen en su ubicación original del sistema de archivos. Immich los escanea, indexa los metadatos, crea registros en la base de datos y recursos derivados, como miniaturas, y los muestra en la cronología.

Si un archivo externo desaparece del disco, Immich puede marcar el recurso como ausente o moverlo a la papelera tras volver a escanearlo. Mantén una copia de seguridad independiente de la unidad externa.

Ten cuidado al editar /etc/fstab en ZimaOS

El método manual del hilo original funcionó lo suficiente para crear rutas estables para las unidades, pero el autor informó posteriormente de problemas adicionales con USB y migraciones. Una entrada no válida en /etc/fstab entrada también puede interferir con el arranque o dejar el almacenamiento no disponible.

Si ZimaOS ya gestiona el disco y expone una ruta estable /media/... ruta; da preferencia a usar esa ruta existente para el montaje bind de Immich en lugar de reconstruir innecesariamente el diseño de almacenamiento del host.

Lista de comprobación de unidades externas de Immich en ZimaOS

  1. Comprueba lsblk -f, ls /mediatradicional, y primero revisa el almacenamiento de ZimaOS.
  2. No des por sentado que necesitas un /mnt punto de montaje.
  3. Da preferencia a una ruta del host gestionada por ZimaOS cuando ya exista.
  4. Mapea la ruta del host en el immich-server contenedor.
  5. Usa una ruta clara del contenedor, como /external_library/photos.
  6. Usa :ro cuando Immich solo necesita leer un archivo.
  7. Añade la ruta exacta del contenedor en Administración de Immich → Bibliotecas externas.
  8. Escanea la nueva biblioteca y verifica que los trabajos se estén ejecutando.
  9. Haz una copia de seguridad independiente de los archivos originales de la biblioteca externa.

Preguntas frecuentes sobre unidades externas de Immich en ZimaOS

¿Por qué no puedo crear /mnt/terrabay1 en ZimaOS?

En el caso de la fuente, el sistema de archivos del sistema de ZimaOS rechazaba las escrituras allí. ZimaOS ya gestionaba el almacenamiento externo mediante sus propias rutas de almacenamiento, incluidas las rutas bajo /media.

¿Necesito editar /etc/fstab?

No siempre. El autor original usó fstab para un diseño de montaje personalizado basado en UUID, pero si ZimaOS ya monta la unidad de forma fiable, usar la ruta existente del host es más sencillo y menos invasivo.

¿La ruta de Immich debe ser /external_library?

No. Esa era la convención de la comunidad de ZimaOS. La versión actual de Immich permite rutas montadas arbitrarias, siempre que se introduzca la misma ruta del contenedor en la configuración de Bibliotecas externas.

¿Una biblioteca externa de Immich copia mis archivos originales?

No. Los archivos permanecen en su ubicación externa original; Immich los indexa y crea los metadatos y recursos derivados asociados.