Communityoplossing

Herstel de alleen-lezenstatus van /root/.cache op 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.

Waarom /root/.cache alleen-lezen is op ZimaOS

De fout mkdir /root/.cache: read-only file system komt overeen met het feit dat ZimaOS een groot deel van het bestandssysteem van het hostsysteem als door het appliance beheerd en alleen-lezen behandelt. In de oorspronkelijke thread zei een officiële reactie expliciet dat de meeste systeemmappen om veiligheidsredenen alleen-lezen blijven, zelfs wanneer u als root bent ingelogd.

Dit ontwerp komt ook naar voren in de huidige handleiding voor de pakketbeheerder van ZimaOS en in de gerelateerde handleiding voor externe Immich-bibliotheken op ZimaOS.

Omzeil dit niet door schrijfbewerkingen naar /root te forceren

Voor een toepassing in een container is de betere oplossing meestal om beschrijfbare cache- of configuratiegegevens in een permanente app-gegevensmap te plaatsen en deze in de container te koppelen. Stel voor een zelfstandig hulpprogramma zoals immich-go het cache- of homepad in op een beschrijfbare locatie in plaats van de onveranderlijke indeling van de host aan te passen.

Gebruik containerpaden doelbewust

Docker-bindkoppelingen koppelen een beschrijfbaar hostpad aan de locatie in de container die de toepassing verwacht. De officiële opslagdocumentatie van Docker legt bindkoppelingen en de gevolgen ervan voor de beveiliging uit in de documentatie over Docker-bindkoppelingen.

Voor Immich kunnen bestaande fotomappen als alleen-lezen worden gekoppeld wanneer het doel indexeren is en niet het wijzigen van bestanden. De huidige documentatie over externe bibliotheken van Immich is hierbij de leidende bron.

Een veiliger patroon voor immich-go

  1. Maak een beschrijfbare gebruikers- of app-gegevensmap buiten de beschermde systeempaden, of kies een bestaande map.
  2. Stel de omgevingsvariabele of opdrachtoptie voor de cache/configuratie van het hulpprogramma in op die locatie, wanneer dit wordt ondersteund.
  3. Voer het programma in een container uit en koppel dat beschrijfbare pad aan de verwachte cachemap.
  4. Koppel de bronfotobibliotheek als alleen-lezen, tenzij de workflow de originelen bewust moet wijzigen.
  5. Test eerst met een kleine fotocollectie voordat u de volledige bibliotheek verwerkt.

Waarom roottoegang niet betekent dat elk pad beschrijfbaar is

Op een appliance-besturingssysteem staan rootrechten en de wijzigbaarheid van het bestandssysteem los van elkaar. Een rootshell kan nog steeds een alleen-lezenkoppeling tegenkomen. Het opnieuw koppelen van systeempartities met schrijfondersteuning is in sommige Linux-omgevingen mogelijk, maar dit kan de aannames voor updates en het herstelgedrag ondermijnen. Daarom moet dit hier niet de standaardoplossing zijn.

Veelgestelde vragen

Is de fout het gevolg van een defecte schijf?

Niet noodzakelijk. In dit geval uit de community ging het om een opzettelijk alleen-lezen systeempad en niet om aanwijzingen voor een defect opslagapparaat.

Kan ik /media gebruiken voor toepassingsgegevens?

Gebruik de opslagpaden die ZimaOS beschikbaar stelt voor uw beheerde schijven en koppel deze doelbewust aan containers. Controleer het eigenaarschap en de machtigingen voordat u toepassingsgegevens verplaatst.

Moet ik het rootbestandssysteem opnieuw koppelen met schrijfondersteuning?

Niet als routinematige omweg. Geef de voorkeur aan een beschrijfbaar pad voor app- of gebruikersgegevens dat updates overleeft en aansluit bij het opslagmodel van ZimaOS.