كيفية استعادة البيانات من RAID 6 على Linux مع تشفير LUKS وfscrypt
إن استعادة البيانات من Linux MD RAID 6 المحمي أيضًا بتشفير LUKS وfscrypt هي عملية معقدة متعددة الطبقات، ومن المهم فيها تحديد حالة مصفوفة RAID وتسلسل توصيل الأقراص وطبقات التشفير بشكل صحيح. يمكن أن يؤدي أي خطأ في أي مرحلة، بدءًا من تجميع المصفوفة بشكل غير صحيح ووصولًا إلى محاولة تركيب نظام ملفات تالف، إلى تعقيد عملية الاستعادة اللاحقة بشكل كبير. يصف هذا المقال نهجًا آمنًا لتشخيص RAID 6 وإعادة بنائه، وفتح حاوية LUKS، والعمل لاحقًا مع البيانات المحمية بواسطة fscrypt.

- تهيئة RAID وLUKS2 وfscrypt
- توصيل أقراص مصفوفة RAID
- كيفية استعادة البيانات من Linux RAID 6
- الخلاصة
- الأسئلة الشائعة
- التعليقات
تتمثل الطبيعة الخاصة لهذا التكوين في أن البيانات تمر عبر عدة طبقات تجريد في الوقت نفسه. أولًا، تُدمج الأقراص المادية في مصفوفة RAID 6 بواسطة Linux MD؛ ثم قد تحتوي المصفوفة الناتجة على حاوية LUKS مشفرة؛ وداخل نظام الملفات، قد تُحمى أدلة أو ملفات فردية أيضًا باستخدام fscrypt. لذلك، فإن الأقراص السليمة بالكامل وRAID المجمع بشكل صحيح لا يضمنان بعد الوصول إلى البيانات المطلوبة.
أثناء عملية الاستعادة، من الضروري اتباع التسلسل الصحيح للإجراءات. قبل أي محاولة للكتابة إلى الأقراص، يجب تقييم حالتها، وتحديد معلمات مصفوفة RAID، والتحقق من البيانات الوصفية، وإذا أمكن، إنشاء نسخ قطاعية كاملة للأقراص التي بها مشكلة. ومن الأمور الخطيرة بشكل خاص عمليات إعادة بناء المصفوفة التلقائية، وفحوصات نظام الملفات مع تصحيح الأخطاء، أو إعادة تهيئة حاوية LUKS – إذ يمكن لهذه الإجراءات تغيير البنى المطلوبة لاستكمال الاستعادة.
يضيف التشفير طبقة أخرى من التعقيد. بالنسبة إلى LUKS، يجب الحفاظ على الوصول إلى ترويسة الحاوية ومواقع المفاتيح وعبارات المرور أو ملفات المفاتيح المقابلة. وفي حالة fscrypt، قد لا يكون الوصول إلى نظام الملفات وحده كافيًا: فك تشفير أدلة محددة يتطلب المفاتيح المناسبة وبيانات تعريف سياسة التشفير. وإذا فُقد أحد هذه العناصر، فقد تُحدّ خيارات الاستعادة بشكل كبير.
بعد ذلك، سنراجع الإجراء الخاص بالعمل مع مثل هذا النظام: بدءًا من تشخيص الأقراص المادية وتجميع Linux MD RAID 6 يدويًا في وضع يقلل من خطر الكتابة، وصولًا إلى فتح حاوية LUKS والتحقق من نظام الملفات واستعادة الوصول إلى البيانات المحمية بواسطة fscrypt. المبدأ الأساسي في كل مرحلة هو الحفاظ على أكبر قدر ممكن من المعلومات الأصلية أولًا، ثم الانتقال بعد ذلك إلى محاولات الاستعادة.
How to Recover Linux RAID 6 with LUKS2 & fscrypt | Deleted Files & Missing Drives
| المستوى / التقنية | الغرض | الخاصية الرئيسية | الجوانب المهمة أثناء الاستعادة |
|---|---|---|---|
| Linux MD RAID 6 | يجمع عدة أقراص في مصفوفة متحملة للأعطال | يستخدم تكافؤًا مزدوجًا ويتحمل تعطل ما يصل إلى قرصين | يجب تحديد ترتيب الأقراص ومعلمات المصفوفة ومعرّف UUID وحالة البيانات الوصفية بدقة. لا ينبغي بدء إعادة البناء التلقائية قبل إجراء تحليل مسبق. |
| LUKS2 | تشفير القرص بالكامل أو التشفير على مستوى الكتل | يشفّر وحدة التخزين المنطقية بالكامل أو الحاوية بأكملها | يتطلب الوصول إلى البيانات وجود ترويسة LUKS صالحة وعبارة مرور أو مفتاح. قد يؤدي تلف الترويسة إلى تعذر الوصول إلى البيانات حتى إذا كانت مصفوفة RAID سليمة. |
| نظام الملفات | يخزّن المجلدات والملفات والبيانات الوصفية | يوجد داخل حاوية LUKS بعد إلغاء قفلها | يُفضّل العمل على نسخة قبل إصلاح الأخطاء. فقد تؤدي عمليات الإصلاح التلقائي إلى تغيير البنى المهمة. |
| fscrypt | يشفّر مجلدات أو ملفات فردية | يعمل على مستوى نظام الملفات ويسمح بحماية بيانات محددة فقط | يلزم توفر المفاتيح المناسبة وسياسات التشفير والبيانات الوصفية ذات الصلة. ولا يؤدي إلغاء قفل LUKS تلقائيًا إلى إتاحة الوصول إلى البيانات المحمية بواسطة fscrypt. |
| المفاتيح والبيانات الوصفية | تتيح الوصول إلى المعلومات المشفرة | يمكن تخزين المفاتيح بشكل منفصل عن البيانات نفسها | قد يؤدي فقدان كلمة المرور أو ملف المفتاح أو النسخة الاحتياطية لترويسة LUKS أو مفاتيح fscrypt إلى الحد بشكل كبير من خيارات استعادة البيانات. |
| ترتيب الطبقات | يحدد تسلسل الوصول إلى البيانات | التسلسل المعتاد: الأقراص → MD RAID 6 → LUKS2 → نظام الملفات → fscrypt → الملفات | ينبغي تنفيذ عملية الاستعادة بالتسلسل نفسه، بدءًا من الطبقة الأدنى وصولًا إلى الطبقة الأعلى. |
| مخاطر الكتابة | تؤثر في الحفاظ على البيانات الأصلية | قد تؤدي أي عملية إعادة بناء أو تركيب مع صلاحيات القراءة والكتابة أو إصلاح إلى تغيير هياكل البيانات | يُفضّل إنشاء صور قطاعية للأقراص أولًا، ثم إجراء عمليات الاستعادة في وضع القراءة فقط. |
| تعقيد التشخيص | يحدد عدد مصادر الأعطال المحتملة | قد تكون المشكلة على مستوى القرص أو RAID أو LUKS2 أو نظام الملفات أو fscrypt | يجب تحديد مصدر العطل خطوة بخطوة، مع تجنب الخلط بين المشكلات التي تنتمي إلى طبقات مختلفة. |
تهيئة RAID وLUKS2 وfscrypt
لاختبار Hetman RAID Recovery، قمنا بإعداد خادم Dell PowerEdge R710 مزودًا بوحدة تحكم RAID من نوع PERC H700 ونظام Ubuntu Server 24.04 LTS مثبتًا عليه.
من أربعة أقراص HDD بسعة 60 GB لكل منها، أنشأنا مصفوفة برمجية من نوع Linux MD RAID 6 بسعة إجمالية تبلغ تقريبًا 120 GB باستخدام mdadm. كان حجم chunk هو 512 KB (ويُعرض هذا المعلم في Hetman RAID Recovery على أنه حجم الكتلة).

تم إعداد وحدة تخزين LUKS2 مشفرة على المصفوفة، ثم أُنشئ بداخلها نظام ملفات EXT4. كما جرى تشفير مجلد إضافي على هذا القسم باستخدام fscrypt مع عبارة المرور الخاصة به.

بعد تجهيز وحدة التخزين، كُتبت ملفات اختبار، ثم حُذفت بعض البيانات العادية من EXT4 وبعض الملفات من الدليل المحمي بواسطة fscrypt.
توصيل أقراص مصفوفة RAID
الطريقة 1. توصيل الأقراص المادية.
يمكن توصيل أقراص مصفوفة RAID عبر:
- SATA;
- SAS;
- Fibre Channel;
- HBA;
- وحدة تحكم RAID.
ومع ذلك، من المهم أن تتيح وحدة التحكم للبرنامج الوصول إلى كل قرص مادي على حدة.
يمكنك أيضًا استخدام:
- مهايئات USB;
- محطات الإرساء;
- الأغلفة الخارجية.
لأغراض التحليل طويل الأمد، من الأفضل استخدام اتصال مباشر عبر SATA أو SAS أو HBA أو وحدة التحكم المناسبة – إذ يكون عادةً أسرع وأكثر استقرارًا.

ليس من الضروري دائمًا توصيل جميع أقراص المصفوفة. سيأخذ Hetman RAID Recovery الأقراص المفقودة في الاعتبار وسيتمكن من إعادة بناء بياناتها إذا كان مستوى RAID يسمح بذلك وكانت الأقراص السليمة المتبقية كافية لاستعادة المصفوفة. على سبيل المثال، يتيح RAID 5 فقدان قرص واحد، ويتيح RAID 6 فقدان قرصين.
بعد توصيل الأقراص، قد يطلب Windows منك تهيئتها أو تنسيقها. لا توافق – أغلق هذه الرسالة لتجنب تغيير بيانات RAID والمعلومات الخدمية.
الطريقة 2. العمل مع صور الأقراص
يكون العمل مع الصور مفيدًا إذا لم تكن هناك منافذ كافية لتوصيل جميع الأقراص في الوقت نفسه، أو إذا كانت الأقراص تُظهر مؤشرات SMART ضعيفة، أو بها أخطاء قراءة، أو تعمل بشكل غير مستقر.
لإنشاء صورة في Hetman RAID Recovery، حدد القرص المادي المطلوب في نافذة البرنامج الرئيسية وانقر على Save Disk.

في معالج الحفظ، اختر إنشاء صورة للقرص بالكامل، وحدد المجلد واسم الملف، ثم ابدأ النسخ.
من الأفضل حفظ الصورة على قرص سليم آخر تتوفر فيه مساحة خالية كافية.
للعمل لاحقًا، انقر على Mount Disk – RAW Disk Images. حدد ملفات الصور التي تم إنشاؤها وأضفها إلى البرنامج.

بعد ذلك، سيعمل Hetman RAID Recovery معها كما لو كانت أقراصًا مادية عادية، وسيتمكن من استخدامها لإعادة بناء RAID تلقائيًا أو يدويًا.

الطريقة 3. توصيل الأقراص عبر SSH
إذا كان خادم Linux لا يزال متاحًا عبر الشبكة، فيمكن إضافة الأقراص عن بُعد عبر Tools – Connect via SSH.

حدّد عنوان الخادم والمنفذ وبيانات المصادقة، ثم اختر الأقراص المادية أو وحدات التخزين المطلوبة. ستتم إضافتها إلى Hetman RAID Recovery وستصبح متاحة للتحليل وإعادة بناء RAID دون الحاجة إلى اتصال مادي بالحاسوب.

كيفية استعادة البيانات من Linux RAID 6
الخطوة 1. الاكتشاف التلقائي لمصفوفة RAID
بعد تشغيل Hetman RAID Recovery، يحلل البرنامج الأقراص المتاحة تلقائيًا ويبحث عن مؤشرات لمصفوفات RAID عليها. وإذا كانت الأقراص المطلوبة متصلة بالفعل بالحاسوب، فستظهر المصفوفة التي تم العثور عليها في قسم RAID Arrays مباشرة بعد بدء التشغيل.
إذا أُضيفت الأقراص لاحقًا – سواء بالتوصيل المادي، أو بالتركيب من الصور، أو عبر SSH – يعيد البرنامج تحليل أعضاء RAID المتاحين، وإذا توفرت معلومات كافية، فإنه يعيد بناء المصفوفة تلقائيًا.

بالنسبة إلى RAID المكتشف، يعرض Hetman RAID Recovery معلماته الرئيسية:
- نوع المصفوفة وسعتها;
- حجم القطاع والكتلة;
- مخطط توزيع البيانات;
- حالة RAID;
- قائمة الأقراص الأعضاء وترتيبها والإزاحات الخاصة بها.

في حالتنا، اكتشف البرنامج تلقائيًا Linux MD RAID 6 بسعة تقارب 118 GB وعرضه بوصفه جاهزًا لمزيد من التحليل. سنراجع معلمات المصفوفة بالتفصيل لاحقًا أثناء إعادة البناء اليدوي.
إذا كانت بعض الأقراص مفقودة، يعرضها البرنامج على أنها Empty disk ويحدد ما إذا كانت الأقراص المتاحة كافية لإعادة البناء. في اختبارنا، وحتى مع غياب اثنين من أقراص RAID 6 الأربعة، كانت حالة المصفوفة Recoverable وبقيت متاحة لتحليل البيانات واستعادتها.
الخطوة 2. تحليل RAID وفك تشفير البيانات
لبدء البحث عن البيانات، انقر نقرًا مزدوجًا على مصفوفة RAID أو القسم الذي تم العثور عليه. وإذا حدد Hetman RAID Recovery أن وحدة التخزين مشفرة بواسطة LUKS، فسيطلب البرنامج فورًا إدخال كلمة مرور أو تحديد ملف مفتاح.

لفك تشفيرها، يلزم وجود كلمة مرور أو مفتاح صالح، بالإضافة إلى سلامة البيانات الخدمية الخاصة بـ LUKS.
بعد فتح LUKS، اختر نوع التحليل. أولًا، يمكنك تشغيل Fast Scan – وغالبًا ما يكون ذلك كافيًا إذا لم تتضرر بنية القسم ونظام الملفات، ولم تكن بحاجة إلا إلى العثور على الملفات المحذوفة مؤخرًا.

إذا نُفذت أي عمليات مدمرة على القرص – مثل حذف الأقسام أو إنشائها، أو التنسيق، أو تغيير نظام الملفات، أو تلف جدول الأقسام، أو غير ذلك من العمليات التي قد تغير بنية البيانات – فمن المستحسن استخدام Full Analysis. أثناء التحليل الكامل، حدّد نظام الملفات المستخدم على المصفوفة. في حالتنا، هو Ext2/3/4.
إذا اكتشف البرنامج أثناء التحليل بيانات مشفرة بواسطة fscrypt، فسيطلب منك إدخال عبارة المرور المقابلة. بعد فك التشفير، يمكنك المتابعة إلى البحث عن الملفات الموجودة والمحذوفة على حد سواء.

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

لا تحفظ البيانات المستعادة على الأقراص التي تعد أعضاءً في مصفوفة RAID. قد تؤدي الكتابة عليها إلى استبدال معلومات لم تُستعد بعد. استخدم قرصًا ماديًا منفصلًا للحفظ.
في المعالج، حدّد الوجهة وابدأ حفظ الملفات.
الخطوة 4. إعادة بناء RAID يدويًا
قد يكون الاكتشاف التلقائي لـ RAID مستحيلًا إذا كانت المعلومات الخدمية حول المصفوفة تالفة أو مكتوبة فوقها أو مفقودة أو غير متسقة بين الأقراص.
قد يحدث ذلك بعد عمليات مباشرة على الأقراص الأعضاء قد أفسدت أو استبدلت البيانات الوصفية لـ RAID:
- تهيئة الأقراص في Windows;
- تشغيل mdadm –zero-superblock;
- إنشاء RAID جديد فوق RAID قديم;
- تغيير جدول الأقسام;
- الكتابة الجزئية فوق الأقراص;
- أو فشل عملية rebuild.

قد تكون إعادة البناء اليدوي مطلوبة أيضًا إذا كانت بعض الأقراص مفقودة أو تالفة، أو إذا بقيت بيانات وصفية من مصفوفات RAID مختلفة على الأقراص، أو إذا تغيّر ترتيب الأقراص أو إزاحاتها، أو إذا جرى إنشاء صورة لأحد الأقراص بشكل غير كامل.
إذا لم يتمكن Hetman RAID Recovery من تحديد إعدادات المصفوفة تلقائيًا، فيمكن إعادة بنائها يدويًا باستخدام RAID Constructor.
افتح RAID Constructor، واختر Manual mode، وحدد معلمات المصفوفة المعروفة.

بالنسبة إلى Linux MD RAID 6 الذي تم إنشاؤه بواسطة mdadm في اختبارنا مع layout القياسي، يستخدم RAID Constructor المخطط Left Synchronous P+Q. وفي حالتنا، كان حجم الكتلة 512 KB.

في معظم الأقراص، استخدم 512 bytes في حقل Bytes per sector. وإذا كان القرص يستخدم حجم قطاع منطقيًا قدره 4K، فاختر 4096 bytes.
بالنسبة إلى Linux MD RAID القياسي، اترك معلمة Byte order مضبوطة على Standard ما لم تكن المصفوفة قد أُنشئت بإعدادات محددة أخرى.
بعد ذلك، اضبط تسلسل الأقراص الصحيح وحدد إزاحة البيانات – Offset – لكل قرص. في اختبارنا، كانت 34,603,008 bytes لكل قرص.

إذا كان قرص واحد أو أكثر غير متاح، فأضف Empty disk بدلاً منه.
بعد تجميع الإعدادات، أضف RAID المعاد بناؤه إلى نافذة البرنامج الرئيسية بالنقر على Add.

بعد ذلك، يمكنك العمل معه بالطريقة نفسها كما مع المصفوفة المكتشفة تلقائيًا: افتح LUKS، وحلل نظام الملفات، واستعد الملفات المطلوبة.

الخطوة 5. كيفية تحديد معلمات المصفوفة غير المعروفة
إذا كانت بعض معلمات RAID غير معروفة، فيمكن تحديدها من بنية البيانات المخزنة على المصفوفة. في حالتنا، نعلم أن Linux MD RAID 6 مستخدم، وفوقه مباشرة كان يوجد حجم LUKS2 مشفر.

لنبدأ بتحديد إزاحة البيانات – Offset. افتح كل قرص من أقراص المصفوفة في HEX Editor، وابدأ البحث بقيمة HEX، وأدخل توقيع LUKS: 4C 55 4B 53 BA BE. في إعدادات البحث، اضبط الاتجاه على Down، والموضع على Begin of sector، ثم ابدأ البحث.

في مصفوفة الاختبار لدينا، وُجد توقيع LUKS عند العنوان 34,603,008 بايت من بداية القرص. وهذه هي القيمة التي نستخدمها كـ Offset لجميع الأقراص في مصفوفتنا.

القرص الذي وُجد عليه التوقيع يحتوي على بداية الحجم المنطقي LUKS. وهذا يجعل من الممكن تحديد إزاحة البيانات والحصول على قرص مرجعي، لكن التوقيع نفسه لا يُظهر التسلسل الكامل لجميع الأقراص. لذلك، إذا كان ترتيب الأقراص غير معروف، فاتركه للاكتشاف التلقائي باستخدام Detect the disk order automatically.

بعد ذلك، اضبط معلمات RAID المعروفة بالفعل. إذا أُنشئت المصفوفة باستخدام mdadm بالإعدادات الافتراضية، فإن المخطط النموذجي لـ RAID 5 هو Left Synchronous، ولـ RAID 6 هو Left Synchronous P+Q. في حالتنا، حجم الكتلة هو 512 KB. وإذا تغيّر هذا المعلم أثناء إنشاء RAID، فقد تكون له قيمة أخرى، مثل 64 أو 128 أو 256 KB أو 1 MB.
بالنسبة إلى المعلمات التي أمكن تحديدها، أدخل القيم الدقيقة. واترك Detect automatically فقط للمعلمات غير المعروفة. وهذا يقلل بشكل كبير عدد التكوينات المحتملة ويسرّع البحث.
ثم انقر على Next وانتظر حتى يكتمل التحقق من البدائل.
أثناء البحث، يعرض Hetman RAID Recovery التقدم والوقت المنقضي وعدد التكوينات التي تم العثور عليها. وبعد اكتمال البحث، اختر التكوين الأنسب وأضف RAID المعاد بناؤه إلى نافذة البرنامج الرئيسية.
يمكن التحقق من صحة المعلمات من خلال بنية البيانات الناتجة. في حالتنا، ينبغي أن يكتشف Hetman RAID Recovery وحدة LUKS2 بالحجم المتوقع. وإذا تم فتحها بنجاح باستخدام كلمة المرور الصحيحة وتم التعرف على نظام الملفات EXT4 بداخلها، فهذا يعني أن تكوين RAID قد تم اختياره بشكل صحيح.

الخلاصة
اكتشف Hetman RAID Recovery تلقائيًا Linux MD RAID 6 الاختباري، وفتح LUKS2 باستخدام كلمة المرور المعروفة، وخلال Fast Scan عثر على الملفات الموجودة والمحذوفة على حد سواء. وبعد إدخال عبارة مرور fscrypt، حصل البرنامج أيضًا على الوصول إلى الملفات الموجودة والمحذوفة داخل الدليل المشفر الإضافي.
إذا كانت بيانات وصفية RAID غير كافية، فيمكن إعادة بناء المصفوفة يدويًا في RAID Constructor باستخدام المعلمات المعروفة، أو يمكن استخدام التحديد التلقائي للقيم غير المعروفة. ويساعد البحث عن توقيع LUKS2 في HEX Editor على تحديد إزاحة البيانات، ويمكن التحقق من صحة التكوين من خلال فتح LUKS بنجاح واكتشاف نظام الملفات EXT4.







