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
أو بطريقة اسهل للفهم:
bash# cd /boot/grub
bash# cat stage1 stage2 | dd of=/dev/fd0 bs=512
هذا القرص يمنحك سطر أوامر grub ويمكنك من
تصفح الملفات بأمر cat أو إقلاع نظامي لينكس وويندوز
|