حلّ المجتمع

إصلاح ‎/root/.cache‎ للقراءة فقط على 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.

لماذا يكون ‎/root/.cache‎ للقراءة فقط في ZimaOS

يتوافق الخطأ mkdir /root/.cache: read-only file system مع تعامل ZimaOS مع جزء كبير من نظام ملفات المضيف باعتباره مُدارًا بواسطة النظام ومتاحًا للقراءة فقط. وفي النقاش الأصلي، أوضح رد رسمي أن معظم مجلدات النظام تظل للقراءة فقط حتى عند تسجيل الدخول بصلاحيات الجذر، وذلك لأسباب تتعلق بالسلامة.

وينعكس هذا التصميم أيضًا في دليل مدير حزم ZimaOS الحالي، وكذلك في دليل مكتبة Immich الخارجية في ZimaOS ذي الصلة.

لا تتجاوز المشكلة بإجبار عمليات الكتابة إلى ‎/root‎

بالنسبة إلى تطبيق يعمل داخل حاوية، يكون الحل الأفضل عادةً هو وضع بيانات ذاكرة التخزين المؤقت أو الإعدادات القابلة للكتابة في مجلد دائم لبيانات التطبيق، ثم ربطه بالحاوية. أما بالنسبة إلى أداة مستقلة مثل immich-go، فاضبط مسار ذاكرة التخزين المؤقت أو المسار الرئيسي لها على موقع قابل للكتابة بدلًا من تعديل تخطيط المضيف غير القابل للتغيير.

استخدم مسارات الحاويات عن قصد

تربط عمليات الربط في Docker مسارًا قابلًا للكتابة على المضيف بالحاوية في المسار الذي يتوقعه التطبيق. وتشرح وثائق عمليات الربط في Docker الرسمية عمليات الربط وآثارها الأمنية.

وبالنسبة إلى Immich تحديدًا، يمكن ربط مجلدات الصور الموجودة مسبقًا للقراءة فقط عندما يكون الهدف هو الفهرسة وليس التعديل. وتُعد وثائق المكتبات الخارجية في Immich الحالية المرجع الأساسي.

نمط أكثر أمانًا لاستخدام immich-go

  1. أنشئ مجلدًا قابلًا للكتابة لبيانات المستخدم أو التطبيق، أو اختر مجلدًا تديره خارج مسارات النظام المحمية.
  2. وجّه متغير بيئة ذاكرة التخزين المؤقت أو الإعدادات في الأداة، أو خيار الأمر، إلى ذلك الموقع إذا كان ذلك مدعومًا.
  3. إذا شغّلت الأداة داخل حاوية، فاربط ذلك المسار القابل للكتابة بمجلد ذاكرة التخزين المؤقت المتوقع.
  4. اربط مكتبة الصور المصدر للقراءة فقط، ما لم تتطلب العملية عمدًا تعديل الملفات الأصلية.
  5. اختبر باستخدام مجموعة صغيرة من الصور قبل معالجة المكتبة بأكملها.

لماذا لا تعني صلاحيات الجذر أن كل مسار قابل للكتابة

في نظام تشغيل مخصص للأجهزة، تُعد صلاحيات الجذر وقابلية تعديل نظام الملفات عنصرين منفصلين. فقد تواجه جلسة الجذر عملية تحميل للقراءة فقط. وقد يكون من الممكن إعادة تحميل أقسام النظام بوضع القراءة والكتابة في بعض بيئات Linux، لكن القيام بذلك قد يعرّض افتراضات التحديث وسلوك الاسترداد للخطر، ولذلك لا ينبغي أن يكون الحل الافتراضي هنا.

الأسئلة الشائعة

هل يعني الخطأ أن القرص تالف؟

ليس بالضرورة. في هذه الحالة المجتمعية، كان المسار النظامي للقراءة فقط مقصودًا، ولم يكن دليلًا على تعطل جهاز التخزين.

هل يمكنني استخدام ‎/media‎ لبيانات التطبيق؟

استخدم مسارات التخزين التي يوفّرها ZimaOS للأقراص المُدارة لديك، واربطها بالحاويات عن قصد. وتحقق من الملكية والأذونات قبل نقل حالة التطبيق.

هل ينبغي إعادة تحميل نظام الملفات الجذري بوضع القراءة والكتابة؟

ليس كحل اعتيادي. يُفضّل استخدام مسار قابل للكتابة لبيانات التطبيق أو المستخدم، بحيث يستمر بعد التحديثات ويتوافق مع نموذج التخزين في ZimaOS.