حلّ المجتمع

توصيل محرك أقراص خارجي لتشغيل Immich على 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.

إذا أعاد ZimaOS mkdir: cannot create directory '/mnt/...': Read-only file systemفلا تفترض أن القرص الخارجي نفسه معطّل. في موضوع مجتمع IceWhale المنشور في أكتوبر 2025، كان المستخدم يطبّق ‎/mnt‎ سير العمل إلى ZimaOS، حيث يُدار نظام الملفات وتخطيط التخزين بطريقة مختلفة.

أهم درس من الموضوع هو فصل مهمتين: أولًا، التأكد من أن ZimaOS يوفّر مسار مضيف مستقرًا للقرص الصلب الخارجي، ثم تعيين ذلك المسار إلى حاوية Immich. لا يستطيع Immich التحقق من مسار مكتبة خارجية إلا إذا كان موجودًا داخل حاويته. ولا تزال وثائق Immich الحالية تتبع مبدأ Docker نفسه، رغم أنها لم تعد تتطلب مسار الحاوية التاريخي /external_library تحديدًا.

لماذا كان ‎/mnt‎ للقراءة فقط في حالة المجتمع

حاول المؤلف الأصلي إنشاء:

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

لكن ZimaOS أعاد:

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

نصح Zima-Giorgio بعدم تعديل ملفات نظام ZimaOS مباشرةً إلا بتوجيه من خبير أو في بيئة اختبار. وأشار الرد نفسه إلى أن الأقراص والمشاركات التي يديرها ZimaOS تظهر عادةً ضمن مسارات تقع تحت ‎/media‎ ويمكن عرضها من الطرفية.

تحقّق من كيفية تحميل ZimaOS للقرص بالفعل

قبل إلغاء التحميل أو التحرير ‎/etc/fstab‎افحص حالة التخزين الحالية:

‎lsblk -f‎
‎ls /media‎
df -h

في الموضوع الأصلي، كان ZimaOS قد أتاح الأقراص الأربعة بالفعل عبر مسارات مشابهة لما يلي:

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

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

طريقة التحميل اليدوي التاريخية التي شاركها المؤلف

وثّق المؤلف الأصلي في النهاية طريقة يدوية باستخدام ‎/etc/fstab‎ الإدخالات ونقاط التحميل أدناه /DATAعلى سبيل المثال:

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

ثم أمرًا من نوع ‎/etc/fstab‎ سطرًا يستخدم معرّف UUID حقيقيًا للقرص:

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

متبوعًا بـ:

sudo systemctl daemon-reload
sudo mount -a

كان هذا حلاً بديلاً من المجتمع على ZimaOS في عام 2025، وليس توصية عامة حالية. لا تنسخ معرّفات UUID أو أسماء الأجهزة الواردة في الموضوع، مثل /dev/sdb؛ فهي تنتمي إلى أجهزة ذلك المستخدم وقد تتغير.

كان خطأ كتابي صغير جزءًا من المشكلة الأصلية

اكتشف المؤلف لاحقًا أن Apple Notes كان قد جعل الحرف الأول كبيرًا تلقائيًا في بعض أسطر الأوامر المنسوخة. أوامر Linux والمسارات حساسة لحالة الأحرف، لذا فإن أمرًا منسوخًا بصيغة Mkdir بدلًا من mkdir، أو مسارًا بتغيير في حالة الأحرف، سيفشل.

عند إعداد أوامر الطرفية، استخدم محرر نصوص عاديًا وتحقق من حالة الأحرف قبل اللصق.

تتطلب مكتبات Immich الخارجية خطوتين منفصلتين

أوضحت الردود اللاحقة البنية:

  1. ZimaOS/Docker: اربط مسار مضيف القرص الصلب الخارجي بحاوية immich-server.
  2. Immich: أنشئ مكتبة خارجية باستخدام مسار جانب الحاوية من الخطوة 1.

إذا نُفذت الخطوة 2 فقط، فسيفشل التحقق في Immich لأن المسار غير موجود داخل حاويته.

استخدم مثال ZimaOS لعام 2025 المسار /external_library

استخدم عضو المجتمع sny مفهوم ربط مشابهًا لـ:

مسار مضيف ZimaOS: /media/USB_1/sny
مسار Immich:      /external_library
إعدادات Immich في ZimaOS التي تعرض مسار USB خارجيًا مربوطًا داخل الحاوية
ربط مثال المجتمع مسارًا موجودًا على مضيف ZimaOS بحاوية Immich قبل إضافته كمكتبة خارجية.

ثم أضاف المستخدم في Immich:

/external_library

باعتباره مسار استيراد المكتبة الخارجية.

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

لا يتطلب Immich حاليًا الاسم /external_library

تتسم وثائق Immich الحالية بمرونة أكبر. إذ يعرض الدليل الرسمي للمكتبة الخارجية مسارات مضيف وحاوية عشوائية، مثل:

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

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

تفضيل التركيبات للقراءة فقط لمكتبات الأرشيف

توصي وثائق Immich الحالية بإضافة ‎:ro‎ عندما ينبغي أن يقرأ Immich المكتبة الخارجية فقط:

/host/photos:/external_library:ro

أزل وضع القراءة فقط إذا كنت تريد عن قصد أن يحذف Immich الأصول الخارجية أو يكتب بيانات وصفية جانبية بتنسيق XMP. يقلل تركيب الأرشيف للقراءة فقط من خطر تعديل التطبيق للملفات الأصلية.

مكتبات خارجية متعددة

اقترح المجتمع مسارات منفصلة للحاويات مثل:

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

يدعم Immich حاليًا نقاط تثبيت متعددة أيضًا. يجب تثبيت مسار كل مكتبة داخل ‎immich-server‎ ثم أضفها إلى صفحة إدارة المكتبات الخارجية في Immich.

هل ينسخ Immich صور المكتبة الخارجية إلى مكتبته الرئيسية؟

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

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

احذر عند تعديل ‎/etc/fstab‎ على ZimaOS

نجحت الطريقة اليدوية في موضوع المصدر بما يكفي لإنشاء مسارات ثابتة لمحرك الأقراص، لكن المؤلف أبلغ لاحقًا عن مشكلات إضافية تتعلق بـ USB والترحيل. وقد يؤدي إدخال غير صالح في ‎/etc/fstab‎ يمكن أن يتداخل الإدخال أيضًا مع عملية الإقلاع أو يجعل التخزين غير متاح.

إذا كان ZimaOS يدير القرص بالفعل ويعرض ‎/media/...‎ المسار، وفضّل استخدام ذلك المسار الحالي لتثبيت Immich المرتبط بدلًا من إعادة بناء تخطيط تخزين المضيف دون ضرورة.

قائمة التحقق لمحرك Immich الخارجي على ZimaOS

  1. تحقق من ‎lsblk -f‎, ‎ls /media‎تقليدي، ثم تخزين ZimaOS أولًا.
  2. لا تفترض أنك بحاجة إلى ‎/mnt‎ نقطة التثبيت.
  3. فضّل مسار مضيف يديره ZimaOS إذا كان موجودًا بالفعل.
  4. اربط مسار المضيف بالحاوية ‎immich-server‎ الحاوية.
  5. استخدم مسار حاوية واضحًا مثل ‎/external_library/photos‎.
  6. استخدم ‎:ro‎ عندما يحتاج Immich إلى قراءة أرشيف فقط.
  7. أضف مسار الحاوية الدقيق ضمن إدارة Immich ← المكتبات الخارجية.
  8. افحص المكتبة الجديدة وتحقق من تشغيل المهام.
  9. انسخ ملفات المكتبة الخارجية الأصلية احتياطيًا بشكل مستقل عن Immich.

الأسئلة الشائعة حول محرك Immich الخارجي على ZimaOS

لماذا لا يمكنني إنشاء ‎/mnt/terrabay1‎ على ZimaOS؟

في حالة المصدر، رفض نظام ملفات ZimaOS الكتابة هناك. كان ZimaOS يدير التخزين الخارجي بالفعل عبر مسارات التخزين الخاصة به، بما في ذلك المسارات الموجودة ضمن ‎/media‎.

هل أحتاج إلى تعديل ‎/etc/fstab‎؟

ليس دائمًا. استخدم مؤلف المصدر ملف fstab لتخطيط تثبيت مخصص قائم على UUID، لكن إذا كان ZimaOS يثبت محرك الأقراص بشكل موثوق بالفعل، فإن استخدام مسار المضيف الحالي يكون أبسط وأقل تدخلًا.

هل يجب أن يكون مسار Immich هو ‎/external_library‎؟

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

هل تنسخ مكتبة Immich الخارجية الملفات الأصلية؟

لا. تبقى الملفات في موقعها الخارجي الأصلي؛ ويفهرسها Immich وينشئ البيانات الوصفية والموارد المشتقة المرتبطة بها.