حلّ المجتمع

إعادة ربط Immich بالصور الموجودة بعد إعادة ضبط ZimaOS: احمِ مجلدَي pgdata والتحميل قبل إعادة تعيين المسارات

A June-July 2026 thread where a ZimaOS reset preserved a RAID6 and its old Immich folders, but reinstalling Immich did not reconnect the existing photo library. The old /media/photos/immich/upload and pgdata folders still existed. Community replies emphasized protecting both and verifying Docker's actual mounts. The user ultimately abandoned that recovery attempt without confirming a fix.

لم تكن بيانات المصدر مفقودة بوضوح. فبعد إعادة ضبط ZimaOS، ظل RAID6 موجودًا، كما ظلت أدلة مثل upload, pgdata, thumbs, profile، و encoded-video كانا لا يزالان موجودين. تكمن المشكلة في أن حزمة Immich المعاد تثبيتها لم تكن متصلة بحالة قاعدة البيانات/المكتبة القديمة بطريقة تستعيد فهرس الصور السابق.

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

أولًا، أكّد مسار تركيب RAID الفعلي

استخدم المصدر ما يلي:

ls -la /media
find /media -maxdepth 4 -type d \( -iname "immich" -o -iname "pgdata" -o -iname "upload" \)

ووجد ما يلي:

/media/photos/immich
/media/photos/immich/pgdata
/media/photos/immich/upload

أثبت ذلك أن مجلدات Immich القديمة كانت لا تزال موجودة على RAID.

شعر المستخدم بالقلق بسبب العبارة التالية:

/media/ZimaOS-HD -> /DATA

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

فحص نقاط الربط الفعلية في Docker

أوصى النقاش بالتحقق مما يلي:

docker inspect immich-server --format '{{json .Mounts}}'
docker inspect immich-postgres --format '{{json .Mounts}}'

هذا أكثر موثوقية من افتراض أن لقطة شاشة أو ذاكرة قديمة تعكس إعدادات الحاوية قيد التشغيل.

إعدادات خادم Immich في ZimaOS، موضحةً مسارات المضيف ضمن /media/photos/immich، والمربوطة بمسارات الحاوية upload وthumbs وprofile وmodel-cache وlibrary وencoded-video وbackups
يوضح المصدر أن مجلدات RAID القديمة جرى ربطها داخل حاوية خادم Immich الجديدة، لكن ربط الملفات وحده لم يُعِد فهرس قاعدة البيانات السابق.

بيانات pgdata القديمة لا تقل أهمية عن ملفات الصور القديمة

تعيين إعدادات قاعدة بيانات Immich في ZimaOS: ربط ‎/media/photos/immich/pgdata‎ بدليل بيانات Postgres
يُعد ربط قاعدة البيانات أمرًا بالغ الأهمية، لأن Immich يخزّن الفهرس والبيانات الوصفية التي تربط المستخدمين بالملفات الموجودة على القرص.

إذا أدت إعادة التثبيت إلى تهيئة قاعدة بيانات جديدة تمامًا بدلًا من القاعدة القديمة، فقد تظل الملفات موجودة بينما يبدو Immich فارغًا.

يستخدم Immich الحالي UPLOAD_LOCATION وDB_DATA_LOCATION

يفصل Compose الحالي في Immich v3 بين موقع الأصول على المضيف وموقع Postgres باستخدام UPLOAD_LOCATION و DB_DATA_LOCATIONتذكر الجهة المطوّرة صراحةً أن مشاركات الشبكة غير مدعومة لمسار قاعدة البيانات.

استخدم نموذج التخزين الحالي في Immich.

النسخة الاحتياطية لقاعدة البيانات أكثر أمانًا من إعادة إرفاق مجلد pgdata قديم وقيد التشغيل عبر الإصدارات

كان المصدر يعمل بإصدار Immich v2.7.2. أما Immich الحالي فهو v3. عند الاسترداد بين الإصدارات، يكون سير عمل النسخ الاحتياطي والاستعادة لقاعدة البيانات من الجهة المطوّرة أكثر أمانًا من افتراض إمكانية إرفاق مجلد بيانات Postgres قديم ببساطة بصورة قاعدة بيانات أحدث.

راجع عملية النسخ الاحتياطي والاستعادة الحالية في Immich.

لا تُعد ترتيب مجلدات الأصول الداخلية في Immich يدويًا

تحذّر وثائق Immich الحالية من أن مجلدات مثل library, upload, thumbs, profile، و encoded-video تُدار بواسطة التطبيق. قد يؤدي نقل الملفات الفردية أو حذفها من خلف Immich إلى إنشاء أصول مفقودة أو غير متتبعة.

المستخدم الذي أبلغ عن المشكلة لم يؤكد نجاح الاسترداد

اقترح أعضاء المجتمع عدة أساليب لربط المسارات، بما في ذلك تركيب مجلد أب واحد، لكن jerlo قرر في النهاية ترك المشكلة جانبًا وبدأ من جديد على نظام آخر. لذلك، لا يؤكد المنتدى أن أي ربط لمسار معيّن هو الحل النهائي.

يفضّل Immich حاليًا جذر رفع مُدارًا بدلًا من ربط كل مجلد فرعي يدويًا

تُظهر لقطات الشاشة المصدر عمليات ربط يدوية لـ upload, thumbs, profile, library, encoded-video، والنسخ الاحتياطية واحدًا تلو الآخر. أما Compose الحالي من المصدر الأساسي فيتمحور حول UPLOAD_LOCATION، مع تولّي Immich إدارة مجلداته الفرعية الداخلية أسفل ذلك الجذر.

عند إعادة البناء على إصدار أحدث من Immich، استخدم تخطيط Compose/التخزين الحالي بدلًا من إعادة إنتاج مجموعة تاريخية من عمليات ربط المجلدات الفرعية، ما لم تتطلب الحزمة ذلك تحديدًا.

أبقِ مسار بيانات Postgres على وحدة تخزين محلية مدعومة

تنص وثائق Immich الحالية صراحةً على أن المشاركات الشبكية غير مدعومة لـ DB_DATA_LOCATION. قد يكون نظام ملفات RAID/التخزين المتصل محليًا مناسبًا، لكن دليل قاعدة البيانات المثبّت عبر SMB/NFS ليس مسار قاعدة البيانات المدعوم.

يتطلب الاسترداد الكامل لـ Immich كلاً من الأصول وقاعدة البيانات

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

وهذا يفسر سبب كون عبارة «ما تزال ملفات الرفع موجودة» مطمئنة لكنها غير كافية في الحالة المصدر.

لا تُرفق دليل pgdata قديمًا وقيد التشغيل بصدفة بإصدار مختلف من Postgres أو صورة مختلفة

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

الأسئلة الشائعة حول استرداد Immich

هل أدى إعادة ضبط ZimaOS إلى محو مجلدات الصور المصدر الموجودة على RAID6؟

لا. ذكر المستخدم أن RAID والمجلدات/الملفات الموجودة بقيت سليمة.

هل ستؤدي مطابقة ملفات الصور القديمة وحدها إلى استعادة مكتبة Immich؟

ليس بالضرورة. يحتاج Immich أيضًا إلى حالة قاعدة البيانات/الفهرس المقابلة.

ما الذي ينبغي حمايته قبل التجربة؟

التخزين الكامل للأصول بالإضافة إلى قاعدة البيانات أو نسخة احتياطية موثَّقة من قاعدة البيانات.