تخصيص مدير الإقلاع GRUB

ahmed x86
0


ملف /etc/default/grub يُعتبر من أهم ملفات الإعدادات فى توزيعات لينكس او حتي اي نظام يستخدم grub مدير الإقلاع الشهير , هذا الملف هو المكان المركزي اللذى يتم من خلاله التحكم فى طريقة اقلاع النظام 

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

شرح خيار GRUB_DEFAULT وتحديد النظام الافتراضي 


	GRUB_DEFAULT=0
  

هذا الخيار يحدد اي نظام من الانظمة المثبتة على الحاسوب اللذي سوف يقلع * الرقم 0 يعني: الخيار الأول فى القايمة * الرقم 1: يعني الخيار الثاني فى القائمة الرقم 2: يعني الخيار الثالث فى القائمة وهكذا الباقى مثال اخر لو عندك القائمة فيها هذى الخيارات 1٫archlinux with linux linux 2٫advanced options 3٫ubuntu 4٫archlinux with linux linux-zen 5٫windows boot manger هنا رقم 0 يعني انك سوف تستخد arch linux مع نواة لينكس اصلية بدون تعديلات الرقم 1 يعني اعدادات متقدمة الرقم 2 يعني ubuntu الرقم 3 يعني انك ستحمل arch linux بنواة لينكس تُدعي linux-zen الرقم 4 يعني انك ستحمل windows للإقلاع طبعا تقدر تكتب GRUB_DEFAULT=”Arch linux” لكن استخدام الرقم اسهل واكثر شيوعا 

التحكم في مدة انتظار القائمة عبر GRUB_TIMEOUT



GRUB_TIMEOUT=5

هذا يحدد مدة الاغنتظار بالثواني هنا 5 ثواني لو كانت 0 سيدخل على الخيار الاغتراضي دون سؤال على طول لو كانت رقم موجب مثلا 10 سينتظر 10 ثواني حتي تختار اي نظام يقلع لو كانت -1 القائمة ستظل ظاهرة دائما حتي تختار نظام 

تحديد اسم التوزيعة باستخدام GRUB_DISTRIBUTOR.


GRUB_DISTRIBUTOR="Arch"

هذا مجرد اسم التوزيعة اللذي يظهر داخل grub ويأتي من امر 


lsb_release -i -s 

استخدمه لمعرفة اسم التوزيعة 

شرح سطر الأوامر الأساسي GRUB_CMDLINE_LINUX_DEFAULT.



GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1"
هذا أهم سطر تقريبًا  هو يحدد المعاملات التي تُمرَّر إلى نواة لينكس عند الإقلاع العادي فقط. نشرح ما بداخله جزء جزء: 

loglevel=3

يتحكم بكمية الرسائل التي تظهر أثناء الإقلاع. المستوى 3 = إظهار الأخطاء المهمة فقط. يقلل السبام في الشاشة. quiet يخفي معظم رسائل الإقلاع النصية. يخلي الإقلاع أنظف وأهدأ بصريًا. عادة: loglevel=3 quiet يكونوا مع بعض لتعطي إقلاع “صامت” بدون تفاصيل مزعجة. 

nvidia_drm.modeset=1

هذا خيار مهم لمستخدمي كروت NVIDIA. يفعّل ما يسمى Kernel Mode Setting لدرایفر Nvidia. ضروري خصوصًا مع: Wayland Hyprland Sway KDE Wayland بدونه ممكن تواجه: شاشة سوداء مشاكل دقة عدم استقرار 

المعاملات المتقدمة في خيار GRUB_CMDLINE_LINUX.



GRUB_CMDLINE_LINUX="zswap.enabled=0 rootfstype=btrfs"

هذا السطر مشابه للسابق، لكنه:  يطبق على كل أنواع الإقلاع (العادي + recovery + advanced) نشرح محتواه: 

zswap.enabled=0 

يقوم بتعطيل ميزة اسمها zswap. ما هو zswap؟ نظام ضغط للذاكرة قبل استخدامها كـ swap. أحيانًا يحسن الأداء، وأحيانًا يسبب مشاكل. هنا أنت معطله عمدًا. يتم تعطيله غالبًا: لتجنب تعارضات لتجارب أداء أو لأن المستخدم يفضّل zram بدل zswap rootfstype=btrfs هذا يخبر النواة أن: نظام الملفات الخاص بجذر النظام هو BTRFS مفيد خصوصًا في Arch لأن: أحيانًا النواة تحتاج تعرف نوع نظام الملفات قبل تحميل الوحدات. يسرّع عملية التعرف على البارتشن. لو نظامك ext4 مثلاً تكون القيمة: 

rootfstype=ext4 


GRUB_PRELOAD_MODULES="part_gpt part_msdos"
وهذا السطر معقد جدا هنا اسماء موديلين اساسيين *part_gpt ده المسؤل عن دعم التقسيم gpt مفيد لو القرص uefi *part_msdos هذا فقط لطعم التقسيمات القديمة MBR/MS-DOS partition table فقط مهمته التوفق مع الاجهزة القديمة او هارد متقسم بالطريقة الكلاسيكية؟ لماذا هذول مع بعضهم حتييكون grub مستعد لاي سناريو سواء mbr او gpt هل يلزم هذا السطر؟ معظم التوزيعات تكتبه تلقائي بدون تعب للgrub وقد يعمل grub حتى لو السطر غير موجود متي يكون هذا السطر يمكن التعديل عليه ليكون مفيد؟ عندما يتم اضافة نظام ملفات غريب او تشفير للهارج مثلا GRUB_PRELOAD_MODULES="lvm btrfs part_gpt" لكن لو الاستخدام طبيعى السطر الافتراضى فوق الممتاز 


#GRUB_ENABLE_CRYPTODISK=y

هذا اللسطر فقط لمن يقوم بتشفير الهارد لانه يسمح لgrub بالتعامل مع اقراص مشفرة encrypted disks اثناء الاقلاع لو كان مشفر باستخدام تقنيات مثل Luks اوdm-crypt او full disk encryption قبل تشغيل النواة علشان يفتح القسم المشفر ماذا يحدث لو قمت بوضع # بداية السطر لو انت مشفر /boot ؟ سيقف grub لو كان داخل قسم مشفر ولن يستطيع ان يصل لملفات النظام ماذا يحدث لو انت مشفر الجهاز وازالت ال#؟ عند فتح الجهاز سيطلب grub منك باسورد فك التشفير ثم يفتح طبيعي
 
GRUB_TIMEOUT_STYLE=menu

هذا السطر منه 3 سلوكيات 1٫menu يظهر قايمة لاختيار انظمة التشغيل المثبة 2٫countdown يعرض عداد 
فقط بدون قايمة 3٫hidden يخفي القايمة تماما
 
GRUB_TERMINAL_INPUT=console

هذا يحدد طريقة ادخال الاؤامر داخل grub القيمة console هنا تعني: * الادخال من لوحة المفاتيح *بدون اي واجهات رسمية خالص هذا مفيد لو عندك كارت الشاشة ليست افضل شئ فى التعريفات او يوجد مشاكل uefi او تريد اقل قدر من التعقيد 

#GRUB_TERMINAL_OUTPUT=console 

هذا نفس اللى فات لكن بالعكس هذا المخرجات كيف تكون ان ازالنا ال# سيكون فقط cli بدون واجهة هنا مهم للمستخدمين المتقدمين لو عنده مشاكل عرض شاشة الاقلاع او شاشة سوداء بدل GRUB او كارت شاشة قديم جدا 

GRUB_GFXMODE=auto

هذا السطر مفيد لو اردت تحديد دقة الشاشة للgrub هنا كلمة auto يعني تلقائي ويمكنك ايضا تغيرها الي 1920x1080 او 1027x768 لكن كيف تعرف كل الدقات المدعومة؟ من داخل grub نفسه اكتب videoinfo سيعرض لك كل الدقات 

GRUB_GFXPAYLOAD_LINUX=keep 

هذا السطر يعطي دقة الشاشة للنواة قد تغيره لاي رقم لكن سياتى فلاش اسود مزعج للحظة والانتقال من grub للنظام لن يكون سلس 

التحكم في استخدام معرفات الأقراص (UUID) في الإقلاع.



#GRUB_DISABLE_LINUX_UUID=true

هذا الخيار قديم قليلا شو وظيفته؟ افتراضيا Grub يشغل النواة باستخدام 

root=UUID=XXXXXXXX 

بدل
 
root=/dev/sda2 

لكن طريقة الuuid افضل لان اسماء الاقراص قد تتغير اثناء التقسيم او اي عملية متقدمة لكن الuuid ثابت لو ازلت ال# سيرجع grub للطريقة القديمة المملة الغبية نادرا ما تحتاجه الا لو انظمة قديمة جدا جدا او 
تعريفات غريبة او يعض بيئات الإنقاذ 

GRUB_DISABLE_RECOVERY=true

عادة grub يولد مدخلات اضافية مثل Arch Linux (fallback initramfs) Recovery Mode Advanced options لما السطر ده يكون = true ✔ يتم إخفاء كل مداخل “وضع الاسترداد” ✔ القائمة تبقى أنضف ✔ يظهر فقط النظام الأساسي مفيد لمين؟ لو أنت: مستخدم متقدم مش بتحتاج recovery عايز قائمة GRUB بسيطة ونظيفة يبقى الخيار ده ممتاز. لكن لو مبتدئ؟ الأفضل تخليه :false عشان يبقى عندك خط رجعة لو النظام باظ بعد تحديث. 

#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

دول خاصين بتلوين قائمة GRUB لو مفيش ثيم رسومي شغال. السطر الأول نسخ التعليمات البرمجية 

تخصيص ألوان واجهة GRUB النصية.



GRUB_COLOR_NORMAL


بيحدد: لون النص العادي ولون الخلفية الصيغة دايمًا كده: 

"foreground/background" 

يعني مثلًا: "light-blue/black" النص: أزرق فاتح الخلفية: أسود السطر الثاني نسخ التعليمات البرمجية GRUB_COLOR_HIGHLIGHT ده لون العنصر المحدد في القائمة. مثال: "light-cyan/blue" النص المحدد: سماوي فاتح خلفيته: أزرق ملاحظة مهمة السطرين دول: ❗ مالهمش أي تأثير لو إنت مستخدم ثيم رسومي لأن الثيم بيتحكم في الألوان بالكامل.

إضافة خلفية وتفعيل الثيمات الرسومية في GRUB.


 
GRUB_THEME="/boot/grub/themes/CyberEXS/theme.txt"

الفرق بين الخيارين الخيار الأول (المعلّق): نسخ التعليمات البرمجية 

GRUB_BACKGROUND

ده بيخليك تحط: مجرد صورة خلفية ثابتة بدون ثيم كامل مثال:
 
GRUB_BACKGROUND="/boot/grub/wallpaper.png" 

ساعتها GRUB يستخدم ألوان بسيطة + الصورة فقط. الخيار الثاني (المفعّل عندك): نسخ التعليمات البرمجية
 
GRUB_THEME="/boot/grub/themes/CyberEXS/theme.txt" 

ده المستوى الاحترافي معناه: إنت مستخدم ثيم GRUB كامل اسمه: CyberEXS إيه اللي بيقدمه الثيم؟ ملف الثيم theme.txt بيتحكم في شكل القائمة والأيقونات والخطوط والألوان والخلفية وشكل التحديد حتى أماكن العناصر على الشاشة يعني تجربة رسومية كاملة بدل الشكل الافتراضي الممل. 

تفعيل خاصية حفظ آخر نظام تم اختياره تلقائياً

#GRUB_SAVEDEFAULT=true

السطر ده مرتبط مباشرة بالسطر: GRUB_DEFAULT=saved الفكرة إيه؟ افتراضيًا GRUB دايمًا يقلع على أول اختيار في القائمة: GRUB_DEFAULT=0 لكن لو إنت عايز: ✔ النظام يفتكر آخر حاجة اخترتها ✔ ويقلع عليها تلقائي في المرة الجاية هنا تستخدم الخيار ده. عشان يشتغل لازم شرطين: أولاً: تغيّر فوق في الملف:
GRUB_DEFAULT=saved 

ثانيًا: تفعل السطر ده:
GRUB_SAVEDEFAULT=true 

السيناريو العملي لو عندك مثلًا: Arch Linux Windows كيرنل قديم واخترت Windows مرة: المرة الجاية GRUB هيقلع تلقائي على Windows لحد ما تغيّر اختيارك. مفيد لمين؟ ناس عندها Dual Boot وبتبدّل بين نظامين كثير بما إن عندك السطر معلّق: ❌ الميزة دي غير مفعلة حاليًا والإقلاع ثابت على الاختيار الافتراضي. 

#GRUB_SAVEDEFAULT=true 

السطر ده مرتبط مباشرة بالسطر:
GRUB_DEFAULT=saved 

الفكرة إيه؟ افتراضيًا GRUB دايمًا يقلع على أول اختيار في القائمة: 

GRUB_DEFAULT=0 

لكن لو إنت عايز: ✔ النظام يفتكر آخر حاجة اخترتها ✔ ويقلع عليها تلقائي في المرة الجاية هنا تستخدم الخيار ده. عشان يشتغل لازم شرطين: أولاً: تغيّر فوق في الملف: 

GRUB_DEFAULT=saved

ثانيًا: تفعل السطر ده:
GRUB_SAVEDEFAULT=true

السيناريو العملي لو عندك مثلًا: Arch Linux Windows كيرنل قديم واخترت Windows مرة: المرة الجاية GRUB هيقلع تلقائي على Windows لحد ما تغيّر اختيارك. مفيد لمين؟ ناس عندها Dual Boot وبتبدّل بين نظامين كثير بما إن عندك السطر معلّق: ❌ الميزة دي غير مفعلة حاليًا والإقلاع ثابت على الاختيار الافتراضي. واخير اخر سطر 


البحث عن الأنظمة الأخرى وتفعيل خاصية OS Prober

#GRUB_DISABLE_OS_PROBER=false

هذا السطر مفيد لمن عنده انظمة غير linux الفكرة ببساطة تثبت os-prober بالpackge manger حقك ثم تشيل ال# من السطر والان تفعيلهم 

sudo grub-mkconfig -o /boot/grub/grub.cfg

وهكذا سيكتشف الانظم غير لينكس المثبتة اتمني ان يكون المقال نال اعجابكم
Tags

إرسال تعليق

0 تعليقات

إرسال تعليق (0)

#buttons=(اوافق) #days=(20)

موقعنا يستخدم ملفات تعريف الارتباط (Cookies) لتحسين تجربتك. تحقق الآن
Ok, Go it!