بعد تحديث نواة لينكس في أوبونتو ، kernel panic!
عملت تحديث لفهرس البرامج عن طريق الأمر sudo apt update ، بعدها عملت ترقية كاملة لكل البرامج بالأمر ده sudo apt full-upgrade. حصل خطأ! بعد إعادة تشغيل اللابتوب حصل كيرنل بانِك (kernel panicked).

كيرنل بانِك Linux kernel panic 🔗
هذا هو نَص الخطأ:
Setting up linux-image-6.17.0-14-generic (6.17.0-14.14~24.04.1) ...
Setting up linux-headers-6.17.0-14-generic (6.17.0-14.14~24.04.1) ...
/etc/kernel/header_postinst.d/dkms:
Autoinstall of module nvidia/580.126.09 for kernel 6.17.0-14-generic (x86_64)
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia.ko already installed at version 580.126.09, override by sp
ecifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-modeset.ko already installed at version 580.126.09, overri
de by specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-drm.ko already installed at version 580.126.09, override b
y specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-uvm.ko already installed at version 580.126.09, override b
y specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-peermem.ko already installed at version 580.126.09, overri
de by specifying --force
Error! Installation aborted.
Sign command: /usr/bin/kmodsign
Signing key: /var/lib/shim-signed/mok/MOK.priv
Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der
Autoinstall of module virtualbox/7.0.16 for kernel 6.17.0-14-generic (x86_64)
Building module(s)...(bad exit status: 2)
Failed command:
make -j8 KERNELRELEASE=6.17.0-14-generic -C /lib/modules/6.17.0-14-generic/build M=/var/lib/dkms/virtualbox/7.0.16/build
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/virtualbox-dkms.0.crash'
Error! Bad return status for module build on kernel: 6.17.0-14-generic (x86_64)
Consult /var/lib/dkms/virtualbox/7.0.16/build/make.log for more information.
Autoinstall on 6.17.0-14-generic failed for module(s) nvidia(6) virtualbox(10).
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
run-parts: /etc/kernel/header_postinst.d/dkms exited with return code 1
dpkg: error processing package linux-headers-6.17.0-14-generic (--configure):
installed linux-headers-6.17.0-14-generic package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of linux-headers-generic-hwe-24.04:
linux-headers-generic-hwe-24.04 depends on linux-headers-6.17.0-14-generic; however:
Package linux-headers-6.17.0-14-generic is not configured yet.
dpkg: error processing package linux-headers-generic-hwe-24.04 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-generic-hwe-24.04:
linux-generic-hwe-24.04 depends on linux-headers-generic-hwe-24.04 (= 6.17.0-14.14~24.04.1); however:
Package linux-headers-generic-hwe-24.04 is not configured yet.
dpkg: error processing package linux-generic-hwe-24.04 (--configure):
dependency problems - leaving unconfigured
Processing triggers for linux-image-6.17.0-14-generic (6.17.0-14.14~24.04.1) ...
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because the error message indicates its a followup error from a previous failure.
/etc/kernel/postinst.d/dkms:
Autoinstall of module nvidia/580.126.09 for kernel 6.17.0-14-generic (x86_64)
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia.ko already installed at version 580.126.09, override by sp
ecifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-modeset.ko already installed at version 580.126.09, overri
de by specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-drm.ko already installed at version 580.126.09, override b
y specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-uvm.ko already installed at version 580.126.09, override b
y specifying --force
Module /lib/modules/6.17.0-14-generic/kernel/nvidia-580/nvidia-peermem.ko already installed at version 580.126.09, overri
de by specifying --force
Error! Installation aborted.
Sign command: /usr/bin/kmodsign
Signing key: /var/lib/shim-signed/mok/MOK.priv
Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der
Autoinstall of module virtualbox/7.0.16 for kernel 6.17.0-14-generic (x86_64)
Building module(s)...(bad exit status: 2)
Failed command:
make -j8 KERNELRELEASE=6.17.0-14-generic -C /lib/modules/6.17.0-14-generic/build M=/var/lib/dkms/virtualbox/7.0.16/build
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/virtualbox-dkms.0.crash'
Error! Bad return status for module build on kernel: 6.17.0-14-generic (x86_64)
Consult /var/lib/dkms/virtualbox/7.0.16/build/make.log for more information.
Autoinstall on 6.17.0-14-generic failed for module(s) nvidia(6) virtualbox(10).
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
run-parts: /etc/kernel/postinst.d/dkms exited with return code 1
dpkg: error processing package linux-image-6.17.0-14-generic (--configure):
installed linux-image-6.17.0-14-generic package post-installation script subprocess returned error exit status 1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
linux-headers-6.17.0-14-generic
linux-headers-generic-hwe-24.04
linux-generic-hwe-24.04
linux-image-6.17.0-14-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
DKMS dependency hell 🔗
هذه هي المشكلة الشهيرة “DKMS dependency hell” سببها محاولة تحديث الكيرنل (6.17.0-14-generic) والذي يكسر التوافق مع الموديولين: الموديول الخاص بـ VirtualBox و الموديول الخاص بعريفات كرت الشاشة من إنفيديا Nvidia.
المشكلتين التي تسببتا في تعطيل dpkg عن عمله في تحديث وترقية لينكس كيرنل:
- VirtualBox (Build Failure): عمل module compilation للموديول فشل (
bad exit status: 2). فيرتشوال بوكس VirtualBox إصدار 7.0.16 قديم مقارنةً بلينكس كيرنل Kernel 6.17 وبالتالي يحتاج إلى تحديث. - Nvidia (State Conflict): حدث خطأ في حالة تثبيت تعريفات إنفيديا. نظام DKMS لا يعرف أن التعريفات مثبته رغم أن مثبت البرامج يرى أن ملفات (
.ko) موجودة بالفعل.
هذه هي الخطوات المنطقية لحل هذه المشكلة والسماح لمدير الحزم بإتمام ترقية كيرنل لينكس.
الخطوة الأولى: حذف موديول فيرتشوال بوكس VirtualBox Module 🔗
ﻷن بناء الموديول فشل ، لابد أن نحذف سطر الـ DKMS لكي نتمكن من تحديث كيرنل لينكس. سنقوم بإعادة تثبيت نسخة أحدث من virtualbox فيما بعد.
نفذ هذا الأمر لكي تحذف السطر الخاص بـ DKMS:
sudo dkms remove virtualbox/7.0.16 --all
إن اشتكا dkms أو حدث خطأ في إزالة الحزمة ، قم بإزالة الحزمة نفسها بالأمر التالي:
sudo apt remove virtualbox-dkms
الخطوة الثانية: تنظيف حالة Nvidia DKMS 🔗
تعريفات إنفيديا ثبتت في حالة نصف مكتملة التثبيت. نحتاج أن نخبر DKMS بأن تنسى هذه النسخة من التعريفات لكي تستطيع أداة dpkg إتمام تثبيت لينكس كيرنل.
إحذف سطر Nvidia DKMS الخاص بإنفيديا:
sudo dkms remove nvidia/580.126.09 --all
الخطوة الثالثة: إستئناف التحديث 🔗
الآن ، حذفنا كل المعوقات ، نستطيع أن نجبر dpkg أن تستأنف تثبيت وترقية الحزم.
sudo dpkg --configure -a
لو نجح هذا الأمر ، تأكد أن كل الإعتمادات dependencies تم تثبيتها بنجاح بالأمر التالي:
sudo apt --fix-broken install
توضيح السبب الحقيقي للمشكلة 🔗
- فيرتشوال بوكس VirtualBox: لديّ Kernel 6.17 (إصدار حديث) و VirtualBox 7.0.16 (وهو إصدار قديم) وهو غير متوافق مع إصدار الكيرنل. سأحتاج إلى تثبيت نسخة أحدث من VirtualBox لكي تدعم الكيرنل Kernel 6.17 headers بعد إتمام ترقية نظام أوبونتو لينكس إلى أحدث كيرنل متاح.
- تعريفات إنفيديا Nvidia: الإصدار 580 حديث. إن استمرت المشكلة الموجودة في الخطوة الثالثة ربما تكون ملفات التثبيت فاسدة. تستطيع حذف كل ملفات التعريفات نهائياً purge ثم إعادة تثبيت تعريفات إنفيديا Nvidia drivers بهذه الأوامر:
sudo apt purge nvidia* libnvidia*
sudo ubuntu-drivers autoinstall
إعادة تثبيت نسخة أحدث من فيرتشوال بوكس Virtualbox 🔗
اتبعت التعليمات الموجودة على موقع فيرتشوال بوكس الرسمي على virtualbox.org .
قمت بإضافة هذا السطر في الملف الجديد /etc/apt/sources.list/virtualbox.list. واستبدلت كلمة <mydist> بإسم ’noble’ وهو إسم إصدار نظام التشغيل أوبونتو Ubuntu 24.04 LTS المثبت على اللابتوب لديّ.
deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian <mydist> contrib
ستكون بهذا الشكل:
deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian noble contrib
استخدمت هذا الأمر المجمّع لتنزيل Oracle public key الخاص بتأكيد الـ signatures ، وأضفتها لنظامي :
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor
بعد ذلك حدّثت سجل البرامج الخاص بـ apt بهذا الأمر:
sudo apt update
ثم بحثت عن virtualbox ونسخت إسم أحدث إصدار متاح ، في حالتي كان أحدث إصدار هو virtualbox-7.2.
sudo apt search --names-only virtualbox
ثم ثمت بعمل تثبيت ﻷحدث إصدار بهذا الأمر:
sudo apt install virtualbox-7.2
إعادة تثبيت تعريفات إنفيديا Nvidia 🔗
قمت بإعادة تثبيت تعريفات إنفيديا بالأمر التالي:
sudo ubuntu-drivers autoinstall
أو من خلال الواجهة الرسومية الخاصة بتحديثات التعريفات الموجودة في أوبونتو (كما ترى في الفيديو).
أتمنى أن تكون قد استفدت من الموضوع ، إن كنت تعرف أي شخص يُمكنه الإستفادة من هذه المعلومات، ارسل له رابط هذا المقال. إن أردت معرفة الموضوعات الجديدة بعد نشرها مباشرةً على موقع أبانوب حنا ، تابعني على يوتيوب و تيليجرام ، و فيسبوك ، و واتساب .