Soluzione della community

Correggere /root/.cache in sola lettura su ZimaOS

A ZimaBlade user running ZimaOS hit a read-only error when immich-go tried to create /root/.cache; an official reply explained that most system folders are intentionally read-only.

Perché /root/.cache è di sola lettura su ZimaOS

L'errore mkdir /root/.cache: read-only file system è coerente con il fatto che ZimaOS tratti gran parte del file system del sistema host come gestito dall'appliance e di sola lettura. Nella discussione originale, una risposta ufficiale ha dichiarato esplicitamente che, per motivi di sicurezza, la maggior parte delle cartelle di sistema rimane di sola lettura anche quando si accede come root.

Questo design è inoltre rispecchiato nell'attuale guida al gestore dei pacchetti di ZimaOS e nella relativa guida alle librerie esterne di Immich su ZimaOS.

Non aggirare il problema forzando le scritture in /root

Per un'applicazione containerizzata, la soluzione migliore consiste solitamente nel collocare i dati persistenti della cache o della configurazione in una directory dedicata ai dati dell'applicazione e nel mapparla nel container. Per uno strumento autonomo come immich-go, imposta il percorso della cache o della home su una posizione scrivibile invece di modificare la struttura immutabile dell'host.

Usa consapevolmente i percorsi dei container

I bind mount di Docker mappano un percorso host scrivibile nel container, usando il percorso previsto dall'applicazione. La documentazione ufficiale di Docker spiega i bind mount e le relative implicazioni di sicurezza nella documentazione sui bind mount di Docker.

In particolare, per Immich le cartelle contenenti foto esistenti possono essere mappate in sola lettura quando l'obiettivo è indicizzarle anziché modificarle. L'attuale documentazione sulle librerie esterne di Immich è la fonte di riferimento ufficiale.

Un approccio più sicuro per immich-go

  1. Crea o scegli una directory scrivibile per l'utente o per i dati dell'applicazione, gestita al di fuori dei percorsi di sistema protetti.
  2. Quando supportato, imposta la variabile d'ambiente o l'opzione del comando relativa alla cache o alla configurazione dello strumento su quella posizione.
  3. Se lo esegui in un container, monta quel percorso scrivibile nella directory della cache prevista.
  4. Monta la libreria di foto sorgente in sola lettura, a meno che il flusso di lavoro non debba modificare intenzionalmente gli originali.
  5. Esegui un test con un piccolo gruppo di foto prima di elaborare l'intera libreria.

Perché l'accesso root non significa che ogni percorso sia scrivibile

In un sistema operativo appliance, i privilegi root e la possibilità di scrivere sul file system sono controlli distinti. Una shell root può comunque incontrare un mount di sola lettura. In alcuni ambienti Linux potrebbe essere possibile rimontare le partizioni di sistema in modalità lettura-scrittura, ma farlo può compromettere le ipotesi alla base degli aggiornamenti e il comportamento di ripristino; pertanto, in questo caso, non dovrebbe essere la soluzione predefinita.

Domande frequenti

L'errore indica che il disco è guasto?

Non necessariamente. In questo caso della community si trattava intenzionalmente di un percorso di sistema in sola lettura, non di un'indicazione di un dispositivo di archiviazione guasto.

Posso usare /media per i dati dell'applicazione?

Usa i percorsi di archiviazione esposti da ZimaOS per i dischi gestiti e mappali deliberatamente nei container. Verifica la proprietà e i permessi prima di spostare lo stato dell'applicazione.

Devo rimontare il file system root in modalità lettura-scrittura?

Non come soluzione abituale. Preferisci un percorso scrivibile per i dati dell'applicazione o dell'utente, che sopravviva agli aggiornamenti e sia coerente con il modello di archiviazione di ZimaOS.