ما هو GRUB: دليل كامل لمدير التمهيد GNU

آخر تحديث: 14 أكتوبر 2025
نبذة عن الكاتب: تكنوديجيتال
  • GRUB هو مدير التمهيد GNU الذي يقوم باختيار نظام التشغيل وتحميله، ويدعم BIOS/UEFI وMultiboot.
  • يضيف GRUB 2 وحدات، ودعمًا محسّنًا لنظام الملفات، وبحث UUID، وقائمة/محطة رسومية.
  • يتم إدارة التكوين عبر /etc/default/grub و40_custom، ويتم تجديده باستخدام update-grub أو grub2-mkconfig.
  • الأمان: قم بحماية GRUB بكلمة مرور، واستخدم تشفير LUKS، واتبع سياسات قوية لكلمة المرور.

رسم توضيحي عام حول GRUB

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

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

ما هو GNU GRUB وما هو استخدامه؟

برنامج GNU GRUB (محمل الإقلاع الموحد GNU GRUB) هو مدير إقلاع متعدد: برنامج يقوم نظام التشغيل (BIOS أو UEFI) بتشغيله عند تشغيل الكمبيوتر لاختيار نظام التشغيل وتحميله. يتيح للمستخدمين اختيار عناصر القائمة، وتمرير المعلمات إلى النواة، والإقلاع من الشبكة، وحتى التفاعل مع وحدة التحكم لحل مشاكل محددة.

يُستخدم بشكل أساسي في توزيعات GNU/Linux، على الرغم من استخدامه أيضًا في أنظمة أخرى مثل Solaris على x86. في أنظمة UEFI الحديثة ، يقوم البرنامج الثابت بتحميل ملف GRUB القابل للتنفيذ الموجود في قسم نظام EFI (ESP) مباشرةً ، بشرط أن يكون مسجلاً في NVRAM؛ أما في BIOS/MBR، فيشغل GRUB القطاعات الأولية من القرص ويستمر من هناك.

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

شاشة خيارات تمهيد GRUB

الورقة الفنية وبيانات المشروع

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

تم كتابته بشكل أساسي بلغة C ولغة التجميع، ويعمل على العديد من المنصات: IA-32 وx86-64 وPowerPC، من بين أمور أخرى. الفرع الحالي هو GRUB 2 (إعادة تنفيذ لإصدار GRUB Legacy التاريخي). أحدث إصدار مستقر تم إصداره هو 2.12 (٢٠ ديسمبر ٢٠٢٣). للتحقق من إصدارك المحلي، يمكنك تشغيل الأمر التالي: grub-install --version وسوف ترى السلسلة المقابلة.

قليل من التاريخ والتطور

بدأ مشروع GRUB كمبادرة من إريك ستيفان بولين ضمن إطار مشروع GNU Hurd ونواة Mach المصغرة. ولحل التباين في طرق الإقلاع، تم وضع مواصفات الإقلاع المتعدد، التي سهّلت على برامج الإقلاع والنوى "التحدث بلغة واحدة". وفي عام 1999، قاد غوردون ماتزيغكيت ويوشينوري أوكوجي عملية اعتماده كحزمة رسمية لمشروع GNU.

في حوالي عام 2002، بدأ فريق من الباحثين اليابانيين مشروع PUPA (معمارية البرمجة العالمية الأولية) بهدف إعادة كتابة برنامج GRUB لجعله أكثر قوة ومرونة. أسفر هذا الجهد عن GRUB 2 ، بينما عُرف الإصدار السابق باسم "GRUB Legacy" (الذي تم تحديث إصداره 0.97 آخر مرة في عام 2005). ابتداءً من عام 2007، انتقلت العديد من توزيعات لينكس إلى GRUB 2، وبحلول نهاية عام 2009، كانت الغالبية العظمى منها تتضمنه افتراضيًا.

رسم تخطيطي لعملية تمهيد GRUB

كيفية تشغيل جهاز الكمبيوتر الخاص بك باستخدام GRUB (BIOS و UEFI)

عند تشغيل جهاز الكمبيوتر، يُجري البرنامج الثابت فحوصاته (ذاكرة الوصول العشوائي، والساعة، والأجهزة، وترتيب الإقلاع) ويبحث عن مُحمِّل إقلاع. في الأنظمة التي تحتوي على BIOS/MBR، تُمرَّر السيطرة إلى سجل التمهيد الرئيسي (MBR)، وهو أول 512 بايت من القرصتم تقسيم GRUB إلى مراحل: المرحلة 1 (الحد الأدنى من الكود في MBR)، والمرحلة 1.5 (في القطاعات اللاحقة، الربط لفهم أنظمة الملفات)، والمرحلة 2 (القوائم والوظائف المتقدمة). في GRUB 2، لم تعد المرحلة "1.5" موجودة؛ والآن توجد صور محددة مثل boot.img, core.img والوحدات النمطية (*.mod) التي يتم دمجها وفقًا للتثبيت.

  كيفية ضبط إعدادات BIOS أو UEFI لجهاز الكمبيوتر الخاص بك خطوة بخطوة

في نظام UEFI، تكون العملية أكثر مباشرة: يقوم البرنامج الثابت بتشغيل ملف GRUB EFI الثنائي من قسم EFI ، شريطة أن يكون مثبتًا ومسجلًا بشكل صحيح. في كلتا الحالتين، يعرض GRUB قائمة أو وحدة تحكم، ويقوم بتحميل النواة المختارة، ثم ينقل التنفيذ إليها.

مواصفات التمهيد المتعدد والتوافق

يُنفذ GRUB خاصية Multiboot، مما يسمح بتشغيل النوى المتوافقة دون الحاجة إلى "حيل" محددة. علاوة على ذلك، بالنسبة للأنظمة التي لا تدعمها (مثل Windows أو DOS )، فإنه يوفر خاصية chainloading، التي تستهدف القطاع الأول من القسم حيث توجد برامج الإقلاع الخاصة به.

يتميز هذا النظام بتوافقه الواسع مع أنظمة الملفات، بما في ذلك Btrfs وext2/3/4 وFAT12/16/32 وexFAT وHFS/HFS+ وISO9660 وNilfs2 وNTFS وReiserFS وZFS وROMFS وJFS وXFS ، وغيرها. كما يدعم القراءة من وحدات تخزين LVM ومصفوفات RAID، وهي ميزة هامة عند التعامل مع هياكل تخزين معقدة.

الميزات والوظائف المميزة

  • واجهة القائمة محطة تفاعلية قابلة للتكوين ومرنة للغاية، مع الإكمال التلقائي لعلامة التبويب واختصارات على غرار Bash.
  • دعم من LBA (العنونة المنطقية للكتلة) للتغلب على حدود BIOS الكلاسيكية وقراءة ما يتجاوز 1024 أسطوانة.
  • القدرة ل تمهيد الشبكة (PXE/TFTP) والمحطات البعيدة، مفيدة في سيناريوهات الإدارة المركزية.
  • فك الضغط التلقائي والتعرف على تنسيقات متعددة قابلة للتنفيذ.
  • التخزين المستمر للمتغيرات مع حفظ البيئة/تحميل البيئة y grub-editenv (عندما تسمح المنصة بذلك).
  • جميع عمليات الكشف عن ذاكرة الوصول العشوائي (RAM)، واستقلال هندسة القرص، و آليات البحث حسب العلامات وUUID.
  • دعم رسومي للقوائم والخلفيات، وتصميم معياري يحافظ على core.img صغير ويحمل الوحدات حسب الحاجة.

المصطلحات الرئيسية: الأجهزة والأقسام والمسارات

يُسمّي GRUB الأقراص والأقسام بطريقته الخاصة. عادةً ما يكون القرص الأول (hd0،XNUMX)، القسم الأول (hd0,1،XNUMX) في GRUB 2 (تذكر: في GRUB 2، يبدأ الترقيم من 1؛ وفي Legacy، يبدأ من 0). للإشارة إلى قرص كامل، يُحذف القسم: (hd0).

للإشارة إلى الملفات، يتم دمج الجهاز مع المسار: (hd0,1)/ruta/al/archivo. كما أنه يدعم قوائم الحظر (قوائم الحظر) عندما يكون من الضروري الإشارة إلى الموقع الدقيق على القرص لملف غير مرئي على هذا النحو في نظام الملفات، على سبيل المثال (hd0,1)+1 بالنسبة للقطاع الأول من القسم، مفيد مع chainloader +1.

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

واجهات GRUB

يوفر GRUB ثلاث طرق عرض رئيسية. الطريقة الأكثر شيوعًا هي القائمة ، مع إدخالات مُعدة مسبقًا؛ يمكنك التنقل باستخدام مفاتيح الأسهم، والتشغيل باستخدام مفتاح الإدخال، وتعديل إدخال باستخدام "e"، أو فتح وحدة التحكم باستخدام "c".

يتيح لك محرر الإدخال تعديل الأسطر أثناء التشغيل (إضافة باستخدام "o/O"، تعديل باستخدام "e"، حذف باستخدام "d")، وإذا كان كل شيء على ما يرام، يمكنك بدء التشغيل باستخدام "b". إنه مثالي لاختبار معلمات النواة دون الحاجة إلى تعديل الملفات.

تُعدّ وحدة التحكم الوضع الأقوى، فهي تدعم الإكمال التلقائي السياقي، واختصارات التحرير، وجميع أوامر GRUB الداخلية لتحديد مواقع الأقراص، وتحميل النواة/initrd، أو التحميل المتسلسل. في حال كان ملف التكوين مفقودًا أو تالفًا، سينقلك GRUB إلى هذه الصفحة لتتمكن من حل المشكلة يدويًا.

رسائل الخطأ الشائعة

قد تظهر الأخطاء في المرحلة الأولية (بشكل محدود) أو عند تحميل القوائم والوحدات (بشكل أكثر تفصيلاً). فيما يلي مجموعة من الرموز التمثيلية التي قد يعرضها GRUB، مع إعادة صياغتها لتوضيحها :

  • 1: مسار غير صالح أو غير مطلق؛ 2: نوع ملف غير صالح (ليس ملفًا عاديًا)؛ 3-4: بيانات/رأس تالف أثناء فك الضغط؛ 5: جدول التقسيم التالف أو غير صالحة.
  • 6: عدم التوافق بين المرحلتين 1/2؛ 7: لا يتم دعم التحميل بأقل من 1 ميجابايت؛ 8: محاولة التمهيد دون تحميل نواة؛ 9: فشل تمهيد غير معروف.
  • 10: ميزات التمهيد المتعدد غير مدعومة؛ 11: لم يتم التعرف على الجهاز؛ 12: جهاز غير صالح؛ 13: تنسيق قابل للتنفيذ غير مدعوم.
  • 14: يمنع نظام الملفات قراءة الملف بأكمله؛ 15: لم يتم العثور على الملف;16: بنية نظام الملفات غير متناسقة.
  • 17: لا يمكن تحميل القسم المحدد؛ 18: أسطوانة خارج النطاق الذي يدعمه BIOS (نموذجي في محركات الأقراص القديمة)؛ 19: Initrd قبل kernel.
  • 20: وحدات قبل نواة التمهيد المتعددة؛ 21: القرص المحدد غير موجود؛ 22: قسم غير موجود؛ 23: خطأ في تفسير رقم.
  • 24: الوصول إلى كتلة خارج القسم؛ 25: خطأ في قراءة القرص؛ 26: عدد كبير جدًا من الروابط الرمزية؛ 27: أمر غير معروف.
  • 28: العنصر لا يتناسب مع الذاكرة؛ 29: خطأ في كتابة القرص؛ 30: وسيطة غير صالحة؛ 31: الملف غير محاذي للقطاع (ReiserFS، استخدم نوتيل).
  • 32: مطلوب المصادقة؛ 33: لم يتم تكوين الجهاز التسلسلي؛ 34: لا توجد قطاعات مجانية للمرحلة 1.5 بعد MBR (تعارض مع EZ-BIOS أو بدء تشغيل القسم مبكرًا جدًا).
  كيفية تفعيل وتكوين إعدادات ويندوز 11 المخفية

أوامر GRUB الأساسية

في وحدة التحكم، يمكنك تشغيل أوامر تفاعلية مفيدة جدًا. على سبيل المثال، boot يبدأ آخر تحميل (النواة أو محمل السلسلة)، و chainloader <archivo> يقوم بتحميل قطاع أو ملف من سلسلة؛ الاختصار النموذجي لنظام التشغيل Windows هو chainloader +1.

displaymem يعرض استخدام الذاكرة وفقًا لنظام BIOS، وهو أمر مفيد إذا لم تكن متأكدًا من ذاكرة الوصول العشوائي (RAM) المكتشفة. مع initrd <archivo> تقوم بتحديد صورة القرص RAM الأولية التي يحتاجها النواة.

لتثبيت MBR من وحدة التحكم Legacy GRUB، استخدمت install مع الطرق المؤدية إلى stage1, stage2 واختياريًا، إلى ملف التكوين. اليوم، في GRUB 2، من النظام، من الطبيعي استخدام grub-install وتجديد القائمة مع update-grub/grub2-mkconfig.

القيادة kernel يحدد الملف الثنائي للنواة ومعامِلاته، على سبيل المثال: kernel /vmlinuz root=/dev/sda5ويسبقه عادة root (hdX,Y) o rootnoverify لتعيين القسم الذي سيقرأ منه GRUB.

ملفات التكوين والتوجيهات

في GRUB Legacy كانت القائمة موجودة في /boot/grub/menu.lst o grub.conf، مع توجيهات مثل color, default, fallback, hiddenmenu, password, timeout, splashimage والكتل title مع الطلبات لكل نظام.

قد يتضمن أحد الأمثلة الكلاسيكية (بصيغة أخرى) قسم Linux مع root (hd0,2), kernel مع به المعلمة الجذرية = /…، boot؛ وآخر لنظام التشغيل Windows مع rootnoverify (hd0,1) y chainloader +1.

في GRUB 2، الملف الذي تم إنشاؤه تلقائيًا هو /boot/grub/grub.cfg. لا يُنصح بتحريره يدويًا؛ بل يتم تعديله بدلاً من ذلك /etc/default/grub (قيم مثل GRUB_TIMEOUT, GRUB_DEFAULT، إلخ) ويتم إضافة الإدخالات المخصصة في /etc/grub.d/40_custom. ثم يتم تنفيذه update-grub o grub2-mkconfig لتجديد القائمة.

الاختلافات الرئيسية بين GRUB Legacy و GRUB 2

  • ملف التكوين ذهب من menu.lst/grub.conf a grub.cfg، مع بناء الجملة والأوامر المتجددة والتوليد التلقائي عن طريق grub-mkconfig.
  • ترقيم الأقسام يبدأ في عام 1 في GRUB 2 (في Legacy بدأ عند 0).
  • استمرارية المتغيرات مع save_env/load_env في بعض التكوينات.
  • اكتشاف المسار بشكل أفضل البحث عن طريق UUID/العلامات؛ يتم دعم المزيد من أنظمة الملفات.
  • القراءة المباشرة من LVM وRAID.
  • رسومات المحطة الطرفية والقائمة، والصور المعاد تنظيمها: اختفت المرحلة 1.5؛ boot.img, core.img والوحدات الديناميكية (*.mod).

الأمان والتعزيز باستخدام GRUB

مدير الإقلاع غير الآمن أشبه بالمصفاة. فإذا تمكن شخص ما يملك صلاحية الوصول المادي من تعديل معلمات النواة أو تشغيل مدخل مختلف، فإنه بذلك يُعطّل إجراءات الأمان لديك . لذا يُنصح بحماية GRUB بكلمات مرور وتطبيق أفضل الممارسات.

تأسيس كلمة مرور قوية للحد من تعديلات الإدخال أو الوصول إلى وحدة التحكم. في GRUB 2، استخدم أسماء المستخدمين وكلمات المرور مع grub-mkpasswd-pbkdf2 وتكوين القواعد المقابلة في البرامج النصية لـ /etc/grub.d/.

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

قم بإدارة سجل الأحداث الخاص بك بحكمة : يجب تقليل السجلات التي تقدم أدلة للمهاجم أو مركزتها مع ضوابط الوصول؛ ويجب تجميع السجلات التي تساعد في تدقيق المحاولات الخبيثة وتحليلها في موقع آمن.

لاكتشاف الأنظمة المثبتة الأخرى وإنشاء الإدخالات تلقائيًا، قم بتثبيت os-proberسيوفر لك هذا الوقت ويمنع الأخطاء عند إعادة إنشاء القائمة.

  إتقان أمر tar gz في لينكس

التركيب والصيانة

إذا لم تُثبّت GRUB أثناء تثبيت توزيعتك، يمكنك القيام بذلك لاحقًا. في GRUB 2، من النظام، شغّل sudo grub-install /dev/sdX (استبدله بالقرص الخاص بك) ثم sudo update-grub o sudo grub2-mkconfig -o /boot/grub/grub.cfgسوف ترى القائمة في التمهيد التالي.

من وحدة تحكم GRUB Legacy، الإجراء الكلاسيكي هو الإشارة إلى الجذر وتشغيل التثبيت: root (hd1,0) seguido دي setup (hd1,0) للقسم الأول من القرص الثاني، أو setup (hd1) إذا كنت تشير إلى MBR لهذا القرص الثاني.

تعديل مباشرة /boot/grub/grub.cfg هذه ليست فكرة جيدة في GRUB 2، حتى لو كان ذلك ممكنًا من الناحية الفنية. المسار الموصى به هو التغيير /etc/default/grubواستخدام /etc/grub.d/40_custom للمحتوى الخاص والتجديد.

أسئلة عملية واختصارات مفيدة

كيفية معرفة قسم التمهيد الموجود على /dev/sda؟ في أنظمة BIOS/MBR: sudo fdisk -l /dev/sda (انظر علامة النجمة لـ "التمهيد"). في GPT/UEFI: lsblk -o NAME,FSTYPE,PARTTYPE,PARTFLAGS,MOUNTPOINT وابحث عن قسم EFI (FAT32، النوع EF00/flags esp). أيضًا sudo efibootmgr -v يعرض إدخالات التمهيد المسجلة.

كيف أحصل على UUID الخاص بالقسم؟ مع blkid o lsblk -f. على سبيل المثال: sudo blkid /dev/sda2 يعود لها UUID وغيرها من البيانات الوصفية.

كيف أجعل GRUB 2 ينتظر 10 ثواني قبل إدخال الإدخال الافتراضي؟ أجوستا /etc/default/grub مع GRUB_TIMEOUT=10 (وإذا كان ذلك ينطبق، GRUB_TIMEOUT_STYLE=menu) وينفذ sudo update-grub o grub2-mkconfig.

أوامر GRUB Legacy لتثبيتها على القسم الأول من القرص الثاني؟ افتح وحدة التحكم وقم بتشغيل: root (hd1,0) ثم setup (hd1,0)إذا كنت تريد MBR، فسيكون setup (hd1).

خطوات تغيير اعدادات GRUB 2؟ 1) تحرير /etc/default/grub (على سبيل المثال، GRUB_DEFAULT, GRUB_TIMEOUT), 2) إضافة إدخالات في /etc/grub.d/40_custom إذا كنت بحاجة إليهم، 3) تجدد معهم update-grub/grub2-mkconfig4) إعادة التشغيل والاختبار.

أين يمكن وضع القوائم المخصصة في GRUB 2؟ En /etc/grub.d/40_custom (أو الملفات الخاصة في /etc/grub.d/ مع الأذونات المناسبة). لا تقم أبدًا بالتعديل يدويًا /boot/grub/grub.cfg إلا في حالة الطوارئ.

أين تم تخزين الإدخالات في GRUB Legacy؟ En /boot/grub/menu.lst o grub.conf، وفقا للتوزيع.

كيف يمكنني الوصول إلى وحدة تحكم GRUB من القائمة؟ اضغط على مفتاح "c" في GRUB 2 أو Legacy. لتعديل إدخال معين، اضغط على "e". كلا الاختصارين مفيدان للغاية عند الحاجة إلى تشخيص المشاكل بسرعة.

أمثلة على الخيارات الشائعة

اختيار التمهيد الافتراضي: GRUB_DEFAULT=0 تبدأ الجولة الأولى؛ مع GRUB_DEFAULT=saved يتذكر آخر تكوين مُستخدَم. بعد التغيير، أعد إنشاء التكوين.

وقت الانتظار: GRUB_TIMEOUT=4 ضبط تأخير القائمة؛ مع 0 يبدأ بدون توقف؛ في بعض السيناريوهات، يمكنك إخفاء القائمة باستخدام GRUB_TIMEOUT_STYLE=hidden لبداية أنظف.

تحديث القائمة: على Debian/Ubuntu ومشتقاتها، sudo update-grub؛ في الآخرين، sudo grub2-mkconfig -o /boot/grub/grub.cfg. تأكد من أن لديك os-prober تم تثبيته إذا كنت تريد اكتشاف الأنظمة الأخرى تلقائيًا.

على الرغم من أن برنامج GRUB يُستخدم أيضاً في أنظمة أخرى غير GNU/Linux، تذكر أنه ليس خدمة دعم فني. إذا كانت مشكلتك خاصة بنظام Windows، فإن أفضل حل هو التوجه إلى المنتديات المخصصة لهذا النظام للحصول على مساعدة متخصصة.

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

مجموعة أدوات التمهيد UEFI
مقالة ذات صلة:
UEFI Bootkit: Bootkitty على Linux وإرث BlackLotus