4.5 إعداد grub كتاب لينكس الشامل >>

4.5 إعداد grub

الفهرس

4.5.1 مقدمة

يمتاز grub بكل مزايا lilo ويتجاوز سيئاته وهو على عكس lilo فهو ليس مخصص لإقلاع لينكس بل للكثير من نظمة يونكس الأخرى من هنا جاء اسمه برامج الإقلاع الفاخر الموحد GRand Unified Bootloader. تخزن إعداداته في ملف /boot/grub/grub.conf أو /boot/grub/menu.lst أهم المزايا هي أنك وعلى عكس lilo لست بحاجة لإعلام grub بأن الملف تغيير ولأن grub يمكنه ضم وقراءة القرص والوصول للملفات التي تكون على نظام fat و ext2 و ext3 وغيرها وأيضا يمكن له قراءة وإقلاع أنظمة غير موجودة ضمن القائمة من خلال محث شبيه ب bash وبه نظام مساعدة كل هذا قبل الإقلاع وقبل تحميل أي نواة نظام يفيد هذا المحث في إقلاع النظام عند تغيره من "master" إلى "slave" أو عند تجريب أنوية جديدة. عند إقلاع grub تظهر قائمة معدة مسبقاً في ملف الإعداد. يمكنك أن تختار أحد الخيارت أو تضغط "e" (إذا كان مسموحاً) لتعدل على الخيار قبل الإقلاع منه ثم إدخال [ENTER] أو اضغط "c" للدخول لسطر أوامر grub (إذا كان مسموحاً لك أيضاً) أما إذا كان هناك حماية فعليك الضغط على p ثم إدخال كلمة السر ليسمح لك بتعديل الخيرات ودخول سطر الأوامر.

إذا فشل grub في العثور على ملف الإعدادات فإن سطر أوامر grub يعمل وهناك يمكنك كما في bash ضغط [TAB] مرة أو اثنتين أو كتابة help ثم اسم الأمر للحصول على مساعدة. وفي grub يوجد طريقة لتسمية الأجهزة تستخدم لأنه مصمم لأكثر من نظام حيث تكون أسماء الأجهزة بين قوسين نسمي الصلبة hd و المرنة fd ونبدأ العد من الصفر و إذا أردنا قسماً محدداً نذكر رقمه بعد الفاصلة والعد أيضاً من صفر أي أن /dev/hda1 تصبح (hd0,0) وأول قسم ثانوي /dev/hda5 يصبح (hd0,4) والقرص المرن الأول /dev/fd0 يصبح (fd0)

4.5.2 استعمال grub

خطوات الإقلاع تقسم إلى طريقتين الأولى للأنظمة أحادية الإقلاع مثل دوس وويندوز أو تلك التي لا يدعمها grub وهنا كل ما عليك هو استدعاء برنامج إقلاع آخر عادة ما يكون الموجود على القطاع الأول من قسم القرص للنظام المراد تشغيله ذلك بالأمر chainloader مثلاً chainloader (hd0,0)+1 لإقلاع النظام الموجود على أول قسم من أول قرص صلب وذلك بتحميل القطاع الأول ورقم واحد بعد إشارة + يعني عدد القطاعات بعد القطاع رقم صفر (أي أنه ليس استثناء للقاعدة في grub لتي تتقول بأن الترقيم يبدأ من صفر) أو مثلاً chainloader (fd0)+1 للإقلاع من القرص المرن (لاحظ لا يوجد أقسام) بعد إصدار هذا الأمر لا يقلع النظام!! وإنما يجمع معلومات وعند الإنتهاء من تحديد كل شيء أصدر الأمر boot الذي يقوم بالإقلاع الفعلي. ويستطيع أمر chainloader تحميل نظام ليس فقط من خلال رقم القطاع بل أيضاً إذا كا مخزناً في ملف لنفرض أنك تحتفظ ببرامج إقلاع دوس في ملف bootsect.dos على القسم الأول كل ما عليك هو
chainloader (hd0,0)/bootsect.dos ثم boot. و يمكن لgrub أن يستدعي برامج إقلاع أي نظام بهذه الطريقة حتى يمكن أن يستدعي lilo أو نسخة أخرى من grub. والطريقة الثانية للأنظمة متعددة الإقلاع مثل لينكس وباقي أنواع اليونكس وذلك بتحميل النواة بأمر kernel ثم مكان وجود النواة فإذا كانت موجودة على القسم الثانوي الأول /dev/hda5 أو كما يقولون في grub الجهاز (hd0,4) في ملف /boot/vmlinuz فإن الأمر هو kernel (hd0,4)/boot/vmlinuz متبوعة بالخيارات التي تريد تمريرها للنواة مثل kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 ro ثم boot

هذا ليس كل شيء فيمكنك أن توفر كتابة اسم الجهاز قبل كل ملف أو رقم وعدد القطاعات وذلك بكتابة root ثم اسم الجهاز لأنه يقوم بضم الجهاز مثلاً

root (hd0,4)
kernel /boot/vmlinuz root=/dev/hda5 ro
boot
أو بالأمر rootnoverify لأنظمة الملفات التي لا يستطيع grub ضمها مثل NTFS حيث أننا غالباً لا نريد قراءة ملفات من قطاع ويندوز فإننا دائماً نستعمل rootnoverify بدلاً من root حتى لو كان نظام الملفات fat الذي يستطيع grub التعامل معه لتوفير الوقت لذا فأمر إقلاع ويندوز يكون
rootnoverify (hd0,0)
chainloader +1
boot
ولأن ويندوز أو دوس لا يقلع إلا من قسم أساسي primary ومعلّم على أنه قابل للإقلاع لذا قبل الإقلاع اطلب من grub أن يقوم بذلك بأمر makeactive ولا داع لذكر الجهاز إذا جائت بعد root أو rootnoverify فتصبح الأوامر
rootnoverify (hd0,0)
makeactive
chainloader +1
boot

4.5.3 ملف إعداد grub

هذا مثال على ملف إعداد grub

# menu.1st: Sample boot menu configuration file for grub
# 	by Moayyad al-Sadi <alsadi[at]gmail.com>
# default item is number 0 item (1st one)
default=0
# if can't then try the 2nd one
fallback 1
# boot if nothing selected in 7sec
timeout=7
# do not allow grub console and editing
# unless password is given
password --md5 $1$ab0cdf.152467795
# for grapical mode
# a 640x480x16 compressed xpm image
	splashimage=(hd0,4)/boot/grub/logo.xpm.gz
	background 000080
	foreground ffffff
	shade 1
# set color to blue not needed in graphics
# color white/blue blink-yellow/magenta
title Linux 
	root (hd0,4)
	kernel (hd0,4)/boot/vmlinuz ro root=/dev/hda5 hdd=ide-scsi
# you can give long titles
title Linux in text mode
	root (hd0,4)
	kernel (hd0,4)/boot/vmlinuz 2 ro root=/dev/hda5 hdd=ide-scsi
title Windowz (Bug mode)
	# don't boot without password
	lock
	rootnoverify (hd0,0)
	chainloader +1
	makeactive
title floppy
	# don't boot without password
	lock
	chainloader (fd0)+1
title Change console colors
	color light-green/brown blink-red/blue

يمكنك أن تمنع الدخول على الخيرات الحساسة أو تلك المحددة بعلامة lock وذلك باستعمال الأمر password --md5 ثم كلمة السر المشفرة التي يمكنك نسخها من ملف /etc/passwd أو بأمر md5crypt داخل grub أو أمر grub-md5-crypt من سطر الأوامر

الصورة splashimage هي بحجم 640x480 وتحتوي 16 لوناً هذا في ريدهات التي تستعمل grub 0.92 ولكني أظن أنها تختلف من توزيعة لأخرى لأنها لم تنجح في ماندريك 9.0 التي تأتي بالإصدار ذاتهه من grub !!

لتركيب grub بحيث يكون هو برنامج الإقلاع اكتب grub لتشغّل المحث ثم اكتب فيه (ما هو بخط غامق)

grub> root (hd0,4)
grub> setup (hd0)
حيث هنا نقول له بأن ملفاته موجودة على قسم لينكس (hd0,4) وأن يقوم بتركيب نفسه على سجل اللإقلاع الأساسي MBR الخاص بالقرص الأول /dev/hda وهذه الخطوة نقوم بها لمرة واحدة

4.5.4 عمل قرص إقلاع للطوارئ

ضع قرصاً مرناً لا تريد البيانات الموجودة عليه لأنها ستفقد،ثم ومن سطر الأوامر اكتب ما يلي

bash# cd /boot/grub
bash# dd if=stage1 of=/dev/fd0 bs=512 count=1
bash# dd if=stage2 of=/dev/fd0 bs=512 seek=1
هذا القرص يمنحك سطر أوامر grub ويمكنك من تصفح الملفات بأمر cat أو إقلاع نظامي لينكس وويندوز


<< السابق كتاب لينكس الشامل التالي >>