إصلاح مشكلة "فشل بدء تحميل وحدات النواة" عند تشغيل نظام SLES

عادةً ما تعني رسالة بدء تشغيل SLES "فشل تحميل وحدات النواة"systemd-modules-load.service محاولة تحميل وحدة نواة واحدة على الأقل، وفشل أحد الطلبات. والهدف الأساسي ليس مجرد إخفاء سطر بدء التشغيل الأحمر، بل إن الإصلاح الجيد يضمن سلامة الخدمة، ويزيل طلبات الوحدات القديمة، ويحافظ على أي برنامج تشغيل يحتاجه الجهاز فعليًا، ويضمن استمرار عمل النظام بعد إعادة التشغيل التالية.

هذا الدليل مُعدّ لنظام SUSE Linux Enterprise Server 15، وهو متوافق مع دليل إدارة SLES 15 SP7 الحالي. تُوثّق SUSE systemd-modules-load.serviceتحميل الوحدات النمطية المُسماة في /etc/modules-load.d/*.conf، بينما يتم تحميل معظم وحدات الأجهزة الحديثة تلقائيًا عند اكتشاف الأجهزة. هذا التمييز مهم: إذا كان هناك إدخال ثابت قديم يُشير إلى وحدة نمطية لم تعد موجودة، فإن حذف هذا الإدخال أو تصحيحه غالبًا ما يكون أكثر أمانًا من إعادة تثبيت برنامج تشغيل قديم في النظام. راجع وثائق SUSE لإدارة وحدات النواة لنظام SLES 15 SP7 .

كيف ينبغي أن يبدو الإصلاح الناجح

قبل إجراء أي تغيير، حدد النتيجة التي ترغب في تحقيقها. بعد الإصلاح:

  • systemctl status systemd-modules-load.serviceينبغي ألا يتم الإبلاغ عن نتيجة فاشلة بعد الآن.
  • يجب ألا يُظهر سجل النظام نفس خطأ تحميل الوحدة النمطية أثناء إعادة التشغيل.
  • إذا كانت الوحدة مطلوبة بالفعل، modprobe MODULE_NAMEفيجب أن تنجح وأن تعمل الأجهزة أو الميزات ذات الصلة.
  • إذا كانت الوحدة قديمة، فيجب إزالة الطلب القديم بدلاً من استبداله بوحدة غير ذات صلة.
  • إذا كانت المشكلة مرتبطة بالتشغيل المبكر، فيجب إعادة بناء initramfs ويجب أن يكمل الجهاز إعادة التشغيل بشكل طبيعي.

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

الخطوة 1: تحديد الوحدة المعطلة وتسجيل خطأ الوحدة بالتحديد

ابدأ بالخدمة نفسها بدلاً من التخمين من رسالة شاشة البداية:

sudo systemctl status systemd-modules-load.service --no-pager

ابحث عن اسم الوحدة النمطية ورسالة خطأ مثل Module ... not found" تم رفض وحدة نمطية غير مدعومة No such device" Operation not permitted. تحدد الصياغة الدقيقة للرسالة الإجراء التالي.

مثال على طرفية SLES يوضح فشل خدمة systemd-modules-load.service بعد تعذر تحميل وحدة example_drv الوهمية
عرض نموذجي لحالة الخدمة: التركيز على اسم الوحدة النمطية وأول خطأ تحميل ملموس بدلاً من التركيز فقط على حالة الفشل النهائية.

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

الخطوة الثانية: اقرأ سجل الإقلاع قبل تغيير ملفات الوحدة النمطية

استعلم عن هذه الخدمة فقط للحصول على معلومات حول عملية الإقلاع الحالية:

sudo journalctl -b -u systemd-modules-load.service --no-pager

يمكنك أيضًا فحص رسائل النواة المتعلقة بتحميل الوحدات النمطية:

sudo journalctl -b -k --no-pager | grep -iE 'module|modprobe|firmware|taint'

يُجيب الأمر الأول على سؤال أي طلب تحميل ثابت فشل . ويمكن لسجل النواة أن يُضيف معلومات إضافية مثل رفض برنامج التشغيل للجهاز المُكتشف، أو وجود تبعية في البرامج الثابتة، أو مشاكل في التوقيع، أو خطأ آخر على مستوى أدنى.

مثال على استخدام journalctl في SLES يُبرز فشلًا وهميًا في تحميل وحدة نواة داخل systemd-modules-load.service
يُضيّق سجل الخدمة نطاق المشكلة إلى طلب الوحدة النمطية الذي فشل أثناء عملية التمهيد هذه، وهو الدليل المطلوب قبل اختيار الإصلاح.

تشير نتيجة كهذه Module foo not found in directory /lib/modules/...عادةً إلى إعدادات قديمة، أو عدم توافق بين النواة والحزمة، أو برنامج تشغيل تابع لجهة خارجية لم تتم إعادة بنائه للنواة النشطة. No such deviceأما في حالة أخرى، فقد يكون ملف الوحدة موجودًا، ولكن قد لا يتطابق الجهاز المادي أو الافتراضي الحالي مع ما يتوقعه برنامج التشغيل.

الخطوة 3: تحديد الجهة التي تطلب من نظام SLES تحميل تلك الوحدة

ابحث عن مواقع التحميل الثابت العادية وتكوين modprobe:

grep -Rns --color=auto 'MODULE_NAME'   /etc/modules-load.d /run/modules-load.d /usr/lib/modules-load.d   /etc/modprobe.d /usr/lib/modprobe.d 2>/dev/null

استبدل MODULE_NAMEالاسم الموجود في سجل النظام. في نظام SLES 15 SP7، /etc/modules-load.d/تُعدّ الإدخالات المحلية في المسار القياسي الذي يُديره المسؤول للوحدات النمطية التي يجب تحميلها عند بدء التشغيل، بينما يمكن أن توجد الإدخالات المُجمّعة في المسار /usr/lib/modules-load.d/. تُشير SUSE إلى أن معظم الوحدات النمطية لا تحتاج إلى إدخال يدوي في ملف modules-load.d على الإطلاق.

ثم تحقق مما إذا كانت النواة النشطة تحتوي بالفعل على الوحدة النمطية:

uname -r
sudo modinfo MODULE_NAME
sudo modprobe MODULE_NAME
مثال طرفية SLES يقارن إصدار النواة النشط مع إدخال ثابت في ملف modules-load.d وخطأ modprobe module-not-found
قارن اسم الوحدة النمطية المُهيأة مع اسم النواة المُشغّلة. يُعدّ وجود إدخال ثابت يُشير إلى وحدة نمطية غير موجودة في تلك النواة دليلاً قوياً على وجود إعدادات قديمة أو حزمة تعريف مفقودة.

إذا كانت الوحدة قديمة

قم بإزالة الملف المحلي الذي يطلبه أو تعطيله. لا تحذف ملفًا تابعًا للمورد /usr/libلمجرد إخفاء الخطأ، لأن تحديثات الحزمة قد تعيده. إذا تبين لك أن /etc/modules-load.d/*.confالملف المحلي قد أُنشئ لأجهزة قديمة أو برامج عتيقة، فاحذف هذا الإدخال المحلي وأعد الاختبار.

إذا كان من المفترض أن تكون الوحدة موجودة ولكن لا يمكن العثور عليها باستخدام modinfo

تحقق مما إذا كانت نواة النظام قيد التشغيل تتطابق مع شجرة الوحدات النمطية المثبتة:

uname -r
ls -ld /lib/modules/$(uname -r)
rpm -q kernel-default

يُعدّ فحص الجودة الشائع بسيطًا: /lib/modules/$(uname -r)يجب أن تكون وحدات النواة قيد التشغيل موجودة وأن تحتوي عليها. إذا تم تجميع برنامج تشغيل تابع لجهة خارجية لنواة أقدم، فأعد تثبيته أو أعد بنائه باستخدام نواة SLES الحالية باتباع الإجراء المدعوم من الشركة المصنعة. تجنّب نسخ .koملف من إصدار نواة آخر لمجرد modprobeالبحث عن شيء ما؛ فقد تجعل اختلافات واجهة التطبيق الثنائية (ABI) أو التوقيعات في النواة ذلك غير آمن أو غير فعال.

إذا تم إدراج الوحدة في القائمة السوداء

ابحث عن قائمة سوداء أو قم بتثبيت تجاوز:

grep -Rns --color=auto -E '^[[:space:]]*(blacklist|install)[[:space:]]+MODULE_NAME'   /etc/modprobe.d /usr/lib/modprobe.d 2>/dev/null

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

إذا أبلغ نظام SLES عن وحدة غير مدعومة

لا تقم بتمكين تحميل الوحدات غير المدعومة تلقائيًا. يُحدد نظام SLES حالة دعم وحدات النواة، وقد يؤثر فرض وحدة غير مدعومة على إمكانية دعمها. توثق SUSE آلية الاستثناء لسيناريوهات الاختبار أو الإصلاحات العاجلة من قِبل الموردين في دليل الإدارة الخاص بها. استخدمها فقط عندما تفهم تبعات الدعم ولديك متطلبات تشغيل مشروعة. يتوفر دليل SUSE الحالي نفسه في دليل إدارة SLES 15 SP7 .

الخطوة 4: أعد بناء initramfs فقط عندما يؤثر التغيير على بدء التشغيل المبكر

إذا كانت الوحدة النمطية الفاشلة مطلوبة داخل initramfs، أو قمت بتغيير برنامج التشغيل الحرج للتمهيد أو تكوين القائمة السوداء الذي يجب أن ينعكس هناك، فأعد إنشاء الصورة:

sudo dracut -f

توثق SUSE تحديدًا إعادة بناء initramfs بعد تغييرات برامج التشغيل التي تؤثر على عملية الإقلاع. يشرح دليل عملية الإقلاع الحالي متى يجب إضافة برامج التشغيل إلى initramfs وكيفية dracutاستخدامه لإعادة إنشائه: مقدمة لعملية الإقلاع في SLES 15 SP7 .

لا تُنفّذ هذه العملية dracut -fكإجراء روتيني لكل خطأ في الوحدات الاختيارية. إذا كانت وحدة ما بعد الإقلاع مُدرجة فقط في ملف `initramfs` /etc/modules-load.d، فقد يكون تصحيح ذلك الملف كافيًا. تُصبح إعادة بناء `initramfs` ضروريةً عندما يكون التكوين الخاطئ مُضمّنًا في صورة الإقلاع، أو عندما يكون من الضروري توفير برنامج التشغيل المطلوب قبل تحميل نظام الملفات الجذر بالكامل.

مثال على طرفية SLES يوضح إعادة بناء initramfs بواسطة dracut متبوعًا بالتحقق من خدمة تحميل وحدات systemd
عندما يؤثر الإصلاح على بدء التشغيل المبكر، أعد بناء initramfs ثم تحقق من الخدمة بدلاً من افتراض أن أمر dracut الناجح وحده قد أصلح خطأ الوحدة النمطية الأصلي.

تحقق من الإصلاح قبل اعتبار الحادث مغلقًا

قم بإجراء الاختبار الأول دون إعادة التشغيل عندما يكون ذلك آمناً:

sudo systemctl restart systemd-modules-load.service
systemctl status systemd-modules-load.service --no-pager
systemctl is-failed systemd-modules-load.service

إذا كان يجب تحميل الوحدة المطلوبة الآن، فقم بتأكيد ذلك:

lsmod | grep -w MODULE_NAME

ثم أعد تشغيل الجهاز خلال فترة الصيانة المناسبة وتحقق من عملية الإقلاع الجديدة:

sudo reboot

بعد تسجيل الدخول:

systemctl --failed
journalctl -b -u systemd-modules-load.service --no-pager

إنّ أقوى مؤشر على النجاح ليس اختفاء رسالة وحدة التحكم لمرة واحدة، بل عدم تكرار نفس خطأ الوحدة عند إعادة تشغيل الجهاز، واستمرار عمل الأجهزة أو الأنظمة الفرعية التي تعتمد على الوحدة.

متى يجب تغيير النهج؟

ما ستجدهأفضل خطوة تالية
الوحدة غير موجودة ولم تعد مطلوبةقم بإزالة طلب تحميل التمهيد المحلي القديم.
الوحدة غير موجودة ولكنها مطلوبةقم باستعادة حزمة برنامج تشغيل SLES أو برنامج تشغيل البائع الصحيح لنواة النظام قيد التشغيل؛ لا تقم بنسخ ملف ثنائي عشوائي للوحدة النمطية.
الوحدة موجودة ولكنها تقول "لا يوجد جهاز بهذا الاسم".تحقق من الأجهزة، وطراز جهاز VM، ومعرفات PCI/USB، وما إذا كان برنامج التشغيل لا يزال مناسبًا.
تم إدراج الوحدة في القائمة السوداء عمداًاحتفظ بالقائمة السوداء وقم بإزالة إدخال التحميل الإجباري المتناقض ما لم تتغير المتطلبات.
توقفت وحدة الطرف الثالث بعد تحديث النواةاستخدم عملية إعادة البناء/إعادة التثبيت المدعومة من قبل البائع الخارجي للنواة الجديدة، أو قم بتشغيل نواة مدعومة معروفة بجودتها أثناء إصلاحها.
تتضمن هذه العملية التخزين أو نظام الملفات أو برنامج تشغيل المسارات المتعددة الضروري لعملية الإقلاع.تعامل مع الأمر على أنه مشكلة في استعادة نظام الملفات initramfs/boot وقم بالتحقق من ذلك من خلال وحدة التحكم أو الوصول إلى وضع الإنقاذ قبل إعادة التشغيل مرة أخرى.

حدود هذا الإصلاح

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

بالنسبة لأنظمة SLES الإنتاجية، حافظ على إمكانية الدعم: استخدم الوحدة النمطية المُرفقة مع نواة SLES الخاصة بك، وتأكد من توافق برامج التشغيل الخارجية مع مصفوفة دعم مُورّديها، واستخدم آليات SUSE الموثقة بدلاً من تجاوز عمليات التحقق لمجرد إزالة عطل في الخدمة. يكتمل الإصلاح عندما تتفق حالة الخدمة وسجل الإقلاع والأجهزة التابعة على زوال المشكلة.

اترك تعليقاً

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

يقوم برنامج OKSampler بربط مقاطع MP3 بمفاتيح لوحة المفاتيح، كما يتيح تكرار الصوت. تعرّف على وظائف هذا البرنامج المجاني القديم، وحدود ميزاته القديمة، وما يجب التحقق منه قبل التنزيل.

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

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

كيفية لعب لعبة Don't Starve Together على نظام لينكس

كيفية لعب لعبة Don't Starve Together على نظام لينكس

قم بتثبيت نسخة لينكس من لعبة Don't Starve Together عبر Steam، وابدأ عالمًا جديدًا، أو انضم إلى أصدقائك باتباع خطوات الإعداد واستكشاف الأخطاء وإصلاحها هذه.

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

قم بإعداد Squad على نظام Linux باستخدام Steam Play و Proton، ثم قم بتثبيت اللعبة، واختر أداة التوافق، وقم باستكشاف مشكلات مكافحة الغش وإصلاحها.

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

قم بتنزيل ملف LMDE 5 ISO المؤرشف والتحقق منه، ثم أنشئ قرص USB قابلًا للإقلاع، واختر إعدادات التثبيت الآمنة. انتهى دعم Elsie؛ راجع إصدار LMDE الحالي.

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

قم بإنشاء قرص USB لتثبيت نظام التشغيل Windows 11 على نظام Linux باستخدام Ventoy: احصل على ملف ISO الرسمي، وقم بتثبيت Ventoy بأمان، وانسخ الصورة، وقم بتشغيل جهاز الكمبيوتر المستهدف.

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

تعلم كيفية تشغيل لعبة It Takes Two على نظام Linux باستخدام Steam Proton، وتثبيت إصدار Steam، وتمكين التوافق، وإعداد وضع اللعب التعاوني، وحل مشاكل التشغيل.

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

قم بتثبيت Wireshark على Ubuntu أو Debian أو Fedora أو Arch أو openSUSE باستخدام أوامر الحزمة الحالية، ثم قم بتكوين التقاط الحزم المباشر بأمان.

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

قم بتثبيت Steam على نظام Linux، ثم احصل على نسخة Slay the Spire الأصلية لنظام Linux من مكتبتك، وقم بتشغيلها. يتضمن ذلك خطوات عملية لحل مشاكل بدء التشغيل الشائعة.