انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تحديث النواة وإدارة GRUB: دليل آمن

تحديث النواة بـ apt/yum، التحقق من إصدار النواة الحالي، تهيئة GRUB، الرجوع إلى نواة سابقة وإدارة النواة بأمان على خوادم Linux.

وقت القراءة: 12 دقيقة إدارة الخادم
نواةgrublinux kernelتحديثaptyumrollback

جدول المحتويات

تحديث النواة وإدارة GRUB: دليل آمن

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

التحقق من إصدار النواة الحالي

hljs bash
# عرض إصدار النواة الجارية
uname -r

# معلومات تفصيلية عن النواة
uname -a

# سرد جميع إصدارات النواة المثبتة (Ubuntu/Debian)
dpkg --list | grep linux-image

# RHEL/CentOS/AlmaLinux
rpm -qa | grep kernel

تحديث النواة

تحديث النواة على Ubuntu/Debian

hljs bash
# تحديث قائمة الحزم
sudo apt update

# سرد التحديثات المتاحة
apt list --upgradable | grep linux

# تحديث النظام بالكامل (بما في ذلك النواة)
sudo apt upgrade -y

# تحديث النواة فقط
sudo apt install linux-image-generic linux-headers-generic

# تثبيت إصدار نواة محدد
sudo apt install linux-image-5.15.0-91-generic

# إعادة التشغيل بعد التحديث
sudo reboot

تحديث النواة على RHEL/CentOS/AlmaLinux

hljs bash
# تحديث قائمة الحزم
sudo dnf update

# تحديث النواة فقط
sudo dnf update kernel

# سرد إصدارات النواة المثبتة
sudo dnf list installed kernel

# إعادة التشغيل بعد التحديث
sudo reboot

إعادة التشغيل مطلوبة بعد تحديث النواة. احفظ جميع الأعمال المهمة ودوّن الخدمات الجارية قبل إعادة التشغيل.

التحقق بعد التحديث

hljs bash
# التحقق من إصدار النواة الجديد
uname -r

# فحص سجلات النظام
sudo journalctl -b | head -50

# التحقق من الخدمات الحرجة
sudo systemctl status nginx
sudo systemctl status mysql

تهيئة GRUB

GRUB (Grand Unified Bootloader) هو محمّل الإقلاع في أنظمة Linux. يدير أي نواة يتم تحميلها عند تثبيت إصدارات متعددة.

عرض قائمة GRUB

hljs bash
# سرد إدخالات قائمة GRUB
grep -E "^menuentry|^submenu" /boot/grub/grub.cfg

# تنسيق أكثر قابلية للقراءة
grep -E "menuentry '" /boot/grub/grub.cfg | head -20

# النواة الافتراضية الحالية
grub-editenv list

ملف تهيئة GRUB

hljs bash
# تعديل ملف تهيئة GRUB الرئيسي
sudo nano /etc/default/grub
hljs bash
# معاملات GRUB المهمة:

# اختيار النواة الافتراضية (0 = الأولى، 1 = الثانية، إلخ)
GRUB_DEFAULT=0

# وقت انتظار القائمة (ثوانٍ)
GRUB_TIMEOUT=5

# إظهار القائمة دائماً
GRUB_TIMEOUT_STYLE=menu

# معاملات النواة
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
hljs bash
# تحديث تهيئة GRUB
sudo update-grub  # Ubuntu/Debian
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # RHEL/CentOS

تغيير النواة الافتراضية

hljs bash
# سرد إدخالات قائمة GRUB مرقّمة
awk -F\' '/menuentry / {print i++" : "$2}' /boot/grub/grub.cfg

# تغيير النواة الافتراضية (فهرس يبدأ من 0)
sudo grub-set-default 1

# التحقق من التغيير
grub-editenv list

# تحديث GRUB
sudo update-grub

الرجوع إلى نواة سابقة

الطريقة 1: الاختيار اليدوي من قائمة GRUB

عند إعادة تشغيل الخادم في قائمة GRUB:

  1. اختر الخيارات المتقدمة لـ Ubuntu
  2. اختر إصدار النواة القديم من القائمة
  3. اضغط Enter للتشغيل

للخوادم البعيدة، استخدم ميزة وحدة تحكم KVM/VNC في لوحة تحكم REXE للوصول إلى قائمة GRUB.

الطريقة 2: تعيين النواة القديمة كافتراضية

hljs bash
# سرد إصدارات النواة المثبتة
dpkg --list | grep linux-image | grep -v meta

# إيجاد اسم إدخال القائمة الكامل
grep "menuentry '" /boot/grub/grub.cfg | grep "5.15.0-88"

# تعيين كافتراضي
sudo grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-88-generic"

# تحديث GRUB
sudo update-grub

# إعادة التشغيل
sudo reboot

الطريقة 3: إزالة النواة الإشكالية

hljs bash
# إزالة إصدار النواة الإشكالي (Ubuntu/Debian)
sudo apt remove linux-image-5.15.0-91-generic
sudo apt autoremove

# تحديث GRUB
sudo update-grub

معاملات النواة

hljs bash
# عرض معاملات النواة الحالية
cat /proc/cmdline

# تغيير معامل أثناء التشغيل (مؤقت)
sudo sysctl -w net.ipv4.ip_forward=1

# تغيير معامل دائم
sudo nano /etc/sysctl.d/99-custom.conf

# تطبيق التغييرات
sudo sysctl -p

معاملات النواة الشائعة

hljs bash
# أداء الشبكة
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# إدارة الذاكرة
vm.swappiness = 10
vm.dirty_ratio = 15

# نظام الملفات
fs.file-max = 2097152

استراتيجية التحديث الآمن لخوادم الإنتاج

hljs bash
# 1. أخذ نسخة احتياطية
rsync -avz /var/www/ backup-server:/backup/

# 2. الاختبار في بيئة التجهيز أولاً

# 3. تحديد نافذة صيانة
# التحديث في ساعات انخفاض حركة المرور

# 4. التحديث وإعادة التشغيل
sudo apt update && sudo apt upgrade -y
sudo reboot

# 5. التحقق من الخدمات
sudo systemctl status nginx mysql

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

استكشاف الأخطاء وإصلاحها

النظام لا يعمل بعد تحديث النواة

hljs bash
# الوصول إلى قائمة GRUB عبر وحدة تحكم KVM في REXE
# اختيار النواة القديمة من الخيارات المتقدمة

# بعد التشغيل بالنواة القديمة، إزالة النواة الإشكالية
sudo apt remove linux-image-[الإصدار-الإشكالي]
sudo update-grub

وحدة النواة لا تُحمَّل

hljs bash
# سرد الوحدات المحمّلة
lsmod

# تحميل وحدة
sudo modprobe اسم-الوحدة

# فحص سجلات النواة
sudo dmesg | tail -50

الخلاصة

تحديثات النواة بالغة الأهمية لأمان وأداء خوادم Linux. تُغلق تحديثات النواة المنتظمة الثغرات الأمنية وتتيح الاستفادة من الميزات الجديدة. يتيح لك فهم تهيئة GRUB الرجوع بسرعة إلى إصدار نواة سابق عند حدوث مشكلات.