Solution communautaire

Monter un disque externe pour Immich sur 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 renvoie mkdir: cannot create directory '/mnt/...': Read-only file system, ne supposez pas que le disque externe lui-même est défectueux. Dans la discussion d’IceWhale Community d’octobre 2025, l’utilisateur appliquait une méthode Linux conventionnelle /mnt flux de travail vers ZimaOS, où le système de fichiers et l’organisation du stockage sont gérés différemment.

La leçon la plus utile de cette discussion est de séparer deux tâches : tout d’abord, s’assurer que ZimaOS dispose d’un chemin hôte stable vers le disque dur externe, puis mapper ce chemin hôte dans le conteneur Immich. Immich ne peut valider un chemin de bibliothèque externe qui existe à l’intérieur de son conteneur. La documentation actuelle d’Immich suit toujours ce même principe Docker, même si elle n’exige plus spécifiquement l’ancien chemin de conteneur /external_library.

Pourquoi /mnt était en lecture seule dans le cas de la communauté

L’auteur initial a essayé de créer :

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

mais ZimaOS a renvoyé :

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

Zima-Giorgio déconseillait de modifier directement les fichiers système de ZimaOS, sauf sous la supervision d’un expert ou dans un environnement de test. La même réponse indiquait que les disques et partages gérés par ZimaOS apparaissent normalement dans des chemins situés sous /media et peuvent être listés depuis le terminal.

Vérifiez comment ZimaOS a déjà monté le disque

Avant de démonter ou de modifier /etc/fstab, examinez l’état actuel du stockage :

lsblk -f
ls /media
df -h

Dans la discussion d’origine, ZimaOS avait déjà exposé les quatre disques via des chemins similaires à :

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

Si le disque est déjà monté et stable via ZimaOS, il n’est peut-être pas nécessaire de le remonter manuellement. La configuration Immich la plus simple consiste souvent à utiliser le chemin hôte ZimaOS existant comme côté gauche d’un mappage de volume Docker.

La méthode historique de montage manuel partagée par l’auteur

L’auteur initial a finalement documenté une méthode manuelle utilisant des /etc/fstab entrées et points de montage ci-dessous /DATA. Par exemple :

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

puis une commande /etc/fstab une ligne utilisant l’UUID réel du disque :

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

suivi de :

sudo systemctl daemon-reload
sudo mount -a

Il s’agissait d’une solution de contournement proposée par la communauté pour ZimaOS en 2025, et non d’une recommandation universelle actuelle. Ne copiez pas les UUID ni les noms de périphériques de la discussion, comme /dev/sdb; ils appartiennent au matériel de cet utilisateur et peuvent changer.

Une petite erreur de frappe faisait partie du problème initial

L’auteur a découvert par la suite qu’Apple Notes avait automatiquement mis en majuscule le premier caractère de certaines lignes de commande copiées. Les commandes et les chemins Linux sont sensibles à la casse ; ainsi, une commande copiée comme Mkdir au lieu de mkdir, ou un chemin dont la casse a été modifiée, échouera.

Lors de la préparation de commandes dans le terminal, utilisez un éditeur de texte brut et vérifiez les majuscules avant de coller le texte.

Les bibliothèques externes d’Immich nécessitent deux étapes distinctes

Les réponses ultérieures ont clarifié l’architecture :

  1. ZimaOS/Docker : associez le chemin hôte du disque dur externe au conteneur immich-server.
  2. Immich : créez une bibliothèque externe en utilisant le chemin côté conteneur de l’étape 1.

Si seule l’étape 2 est effectuée, la validation d’Immich échoue, car le chemin n’existe pas à l’intérieur de son conteneur.

L’exemple ZimaOS de 2025 utilisait /external_library

Le membre de la communauté sny a utilisé un mappage conceptuellement similaire à celui-ci :

Chemin hôte ZimaOS : /media/USB_1/sny
Chemin Immich :      /external_library
Paramètres Immich de ZimaOS montrant le chemin d’un périphérique USB externe associé au conteneur
L’exemple de la communauté associait un chemin hôte ZimaOS existant au conteneur Immich avant de l’ajouter comme bibliothèque externe.

Ensuite, dans Immich, l’utilisateur a ajouté :

/external_library

comme chemin d’importation de la bibliothèque externe.

Validation par Immich du chemin d’importation côté conteneur pour une bibliothèque externe
Immich valide le chemin visible à l’intérieur du conteneur, et non le chemin d’origine sur l’hôte ZimaOS.

Immich n’exige pas actuellement le nom /external_library

La documentation actuelle d’Immich est plus flexible. Son guide officiel des bibliothèques externes présente des chemins d’hôte et de conteneur arbitraires, par exemple :

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

La règle importante est que le chemin saisi dans Immich doit correspondre exactement au chemin côté conteneur. Le nom /external_library était une convention pratique dans l’exemple de la communauté ZimaOS, et non une exigence d’Immich en amont.

Privilégier les montages en lecture seule pour les bibliothèques d’archives

La documentation actuelle d’Immich recommande d’ajouter :ro lorsque la bibliothèque externe doit uniquement être lue par Immich :

/host/photos:/external_library:ro

Supprimez le mode lecture seule uniquement si vous souhaitez intentionnellement qu’Immich supprime des ressources externes ou écrive des métadonnées XMP dans des fichiers annexes. Un montage d’archive en lecture seule réduit le risque qu’une application modifie les fichiers d’origine.

Plusieurs bibliothèques externes

La communauté a suggéré des chemins de conteneur distincts, tels que :

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

La version actuelle d’Immich prend également en charge plusieurs points de montage. Chaque chemin de bibliothèque doit être monté dans immich-server puis ajoutez-le dans la page d’administration des bibliothèques externes d’Immich.

Immich copie-t-il les photos de la bibliothèque externe dans sa bibliothèque principale ?

Non. La documentation actuelle d’Immich décrit les bibliothèques externes comme des ressources qui restent à leur emplacement d’origine dans le système de fichiers. Immich les analyse, indexe leurs métadonnées, crée des enregistrements dans la base de données ainsi que des ressources dérivées telles que des miniatures, puis les affiche dans la chronologie.

Si un fichier externe disparaît du disque, Immich peut marquer la ressource comme manquante ou la déplacer vers la corbeille après une nouvelle analyse. Conservez une sauvegarde indépendante du disque externe.

Soyez prudent lorsque vous modifiez /etc/fstab sur ZimaOS

La méthode manuelle du fil de discussion source a suffisamment fonctionné pour créer des chemins de disque stables, mais l’auteur a ensuite signalé d’autres problèmes liés à l’USB et aux migrations. Une entrée /etc/fstab entrée peut également perturber le démarrage ou rendre le stockage indisponible.

Si ZimaOS gère déjà le disque et expose un /media/... chemin, privilégiez l’utilisation de ce chemin existant pour le montage bind d’Immich plutôt que de reconstruire inutilement la configuration de stockage de l’hôte.

Liste de contrôle des disques externes Immich sur ZimaOS

  1. Vérifiez lsblk -f, ls /media, puis du stockage ZimaOS en premier.
  2. Ne partez pas du principe que vous avez besoin d’un /mnt point de montage.
  3. Privilégiez un chemin d’hôte géré par ZimaOS lorsqu’il en existe déjà un.
  4. Mappez le chemin de l’hôte dans le immich-server conteneur.
  5. Utilisez un chemin de conteneur explicite tel que /external_library/photos.
  6. Utilisez :ro lorsqu’Immich doit seulement lire une archive.
  7. Ajoutez le chemin exact du conteneur sous Administration d’Immich → Bibliothèques externes.
  8. Analysez la nouvelle bibliothèque et vérifiez que les tâches s’exécutent.
  9. Sauvegardez indépendamment d’Immich les fichiers originaux de la bibliothèque externe.

FAQ sur les disques externes Immich sur ZimaOS

Pourquoi ne puis-je pas créer /mnt/terrabay1 sur ZimaOS ?

Dans le cas de la source, le système de fichiers de ZimaOS refusait les écritures à cet emplacement. ZimaOS gérait déjà le stockage externe via ses propres chemins de stockage, notamment des chemins sous /media.

Dois-je modifier /etc/fstab ?

Pas toujours. L’auteur de la source utilisait fstab pour une configuration de montage personnalisée fondée sur un UUID, mais si ZimaOS monte déjà le disque de manière fiable, il est plus simple et moins invasif d’utiliser le chemin d’hôte existant.

Le chemin Immich doit-il être /external_library ?

Non. Il s’agissait de la convention de la communauté ZimaOS. La version actuelle d’Immich autorise des chemins montés arbitraires, à condition de saisir le même chemin de conteneur dans les paramètres de la bibliothèque externe.

Une bibliothèque externe Immich copie-t-elle mes originaux ?

Non. Les fichiers restent à leur emplacement externe d’origine ; Immich les indexe et crée les métadonnées associées ainsi que les ressources dérivées.