Product SiteDocumentation Site

8.8. ضبط محمّل الإقلاع

الأغلب أن محمّل الإقلاع يعمل بشكل سليم، لكن من الجيد دوماً معرفة طريقة إعداد وتثبيت مُحمِّل الإقلاع في حال اختفى من سجل الإقلاع الرئيسي، خصوصاً بعد تثبيت نظام تشغيل آخر، مثل ويندوز. قد تساعدك المعلومات التالية على تعديل إعدادات محمل الإقلاع إذا احتجت لذلك.

8.8.1. التعرف على الأقراص

يجب أن تُميّز إعدادات محمّل الإقلاع الأقراص الصلبة وأقسامها المختلفة. تستخدم لينكس ملفات ”كتلية block“ خاصة لهذا الغرض، مُخزَّنة في المجلد /dev/. منذ دبيان سكويز، وَحَّدَت النواة لينكس أسلوب التسمية، وأصبحت جميع سواقات الأقراص الصلبة (IDE/PATA،‏ SATA،‏ SCSI،‏ USB،‏ IEEE 1394) تُمثّل الآن بملفات /dev/sd*.
يمثّل كل قسم برقمه على القرص الذي يحويه: مثلاً، /dev/sda1 هو القسم الأول من القرص الأول، و /dev/sdb3 هو القسم الثالث على القرص الثاني.
كانت معمارية الحواسيب الشخصية PC (أو ”i386“ وقريبتها الفتية ”amd64“ أيضاً) مقيّدة لفترة طويلة باستخدام صيغة ”MS-DOS“ لجداول التقسيم، التي لا تسمح بأكثر من أربع أقسام ”أولية primary“ لكل قرص. لتجاوز هذا القيد عند استخدام صيغة التقسيم هذه، يجب إنشاء أحد هذه الأقسام الأربعة كقسم ”ممتد extended“، وعندها يمكن أن يحوي هذا القسم أقساماً ”ثانوية secondary“ إضافية. يبدأ ترقيم هذه الأقسام الثانوية من الرقم 5. أي أن القسم الثانوي الأول قد يكون /dev/sda5، يتبعه /dev/sda6، الخ.
من القيود الأخرى التي تعاني منها جداول تقسيم MS-DOS هي أنها لا تسمح بسعات أقراص تتجاوز 2 تيبي بايت، وهذه باتت مشكلة حقيقية مع الأقراص الحديثة.
ظهرت صيغة تقسيم جديدة تدعى GPT تخفف القيود على عدد الأقسام (حيث تسمح بتقسيم القرص إلى 128 قسم عند استخدام الإعدادات الافتراضية) وعلى مساحة الأقراص (تسمح بالوصول إلى 8 زيتي-بايت، وهذا يزيد عن 8 مليار تيرابايت). إذا كنت تنوي إنشاء أقسام فيزيائية عديدة على القرص نفسه، عليك التأكد من إنشاء جدول التقسيم بصيغة GPT عند تقسيم القرص.
ليس سهلاً دائماً أن تتذكر أي قرص يتصل بأي متحكم SATA، أو أي قرص هو الثالث في سلسلة SCSI، خصوصاً وأن تسمية الأقراص الصلبة التي تدعم التوصيل الساخن (وهذا يشمل معظم أقراص SATA والأقراص الخارجية وغيرها) قد تتغير بعد إعادة الإقلاع. لحسن الحظ، ينشئ udev روابطاً رمزية أسماؤها ثابتة بالإضافة إلى /dev/sd*، يمكنك استخدامها إذا كنت تريد تعريف القرص الصلب بطريقة غير غامضة. تُخزَّن هذه الروابط الرمزية في /dev/disk/by-id. يمكن أن تجد التالي مثلاً على جهاز فيه قرصين فيزيائيين.
mirexpress:/dev/disk/by-id# ls -l
total 0
lrwxrwxrwx 1 root root  9 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part2 -> ../../sdc2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 wwn-0x5000c50015c4842f -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 wwn-0x5000c50015c4842f-part1 -> ../../sda1
[...]
mirexpress:/dev/disk/by-id# 
لاحظ أن بعض الأقراص قد ذكرت عدة مرات (لأنها تتصرف كأقراص ATA و SCSI في آن معاً)، لكن المعلومات المهمة هي موديل القرص ورقمه التسلسلي أساساً، التي تتيح لك التعرف على ملف الجهاز الملحق.
تعتمد ملفات الضبط المعطاة في الأمثلة في الأقسام التالية على هذا الإعداد نفسه: قرص SATA وحيد، حيث يحوي القسم الأول نسخة ويندوز سابقة والثاني يحوي دبيان غنو/لينكس.

8.8.2. ضبط LILO

LILO‏ (Linux Bootloader، أو مُحمِّل لينكس) هو أقدم محمّل إقلاع — صلب لكنه صدئ. يعتمد LILO على كتابة العنوان الفيزيائي للنواة التي ستقلع في MBR، ولهذا يجب أن تتبع كل تحديث لها (أو لملف إعدادات LILO) بالأمر lilo. إذا نسيت عمل ذلك سيعجز النظام عن الإقلاع إذا أزيلت النواة القديمة أو استبدلت لأن النواة الجديدة لن تكن في الموقع نفسه على القرص.
ملف إعدادات LILO هو /etc/lilo.conf؛ المثال التالي يبين ملفاً بسيطاً يحوي إعدادات قياسية.

مثال 8.3. ملف إعداد LILO

# The disk on which LILO should be installed.
# By indicating the disk and not a partition.
# you order LILO to be installed on the MBR.
boot=/dev/sda
# the partition that contains Debian
root=/dev/sda2
# the item to be loaded by default
default=Linux

# the most recent kernel image
image=/vmlinuz
  label=Linux
  initrd=/initrd.img
  read-only

# Old kernel (if the newly installed kernel doesn't boot)
image=/vmlinuz.old
  label=LinuxOLD
  initrd=/initrd.img.old
  read-only
  optional

# only for Linux/Windows dual boot
other=/dev/sda1
  label=Windows

8.8.3. ضبط GRUB 2

GRUB‏ (Grand Unified Bootloader ، أو مُحمِّل الإقلاع الموحد الكبير) هو محمّل إقلاع أحدث. لا يشترط استدعاؤه بعد كل تحديث للنواة؛ إذ أن GRUB يعرف كيف يقرأ نظم الملفات ويعثر على القسم الذي يحوي النواة على القرص وحده. لتثبيت GRUB على MBR القرص الأول، فقط اطبع grub-install /dev/sda.
تُخزَّن إعدادات GRUB 2 في /boot/grub/grub.cfg، لكن هذا الملف (في دبيان) يُولَّد من ملفات أخرى. إياك تعديل هذا الملف يدوياً، لأن جميع التغييرات المحلية ستضيع عند الاستدعاء التالي للأمر update-grub (وهذا قد يحدث عند تحديث حزم متنوعة). أكثر التعديلات شيوعاً على الملف /boot/grub/grub.cfg (مثل إضافة بارامترات إقلاع للنواة أو تغيير مدة عرض القائمة، مثلاً) تُجرى عبر استخدام المتغيرات في /etc/default/grub. أما لإضافة مدخلات إلى القائمة، فإما أن تنشئ ملف /boot/grub/custom.cfg مخصص أو تُعدِّل الملف /etc/grub.d/50_custom. بالنسبة للتعديلات الأعقد، يمكنك تعديل الملفات الأخرى في /etc/grub.d، أو إضافة ملفات إليها؛ يجب أن تعيد هذه السكربتات أجزاء من الإعدادات، وقد تستخدم برامج خارجية لهذا الغرض. السكربتات التالية هي المسؤولة عن تحديث قائمة النَوَى المتاحة للإقلاع: يختص 10_linux بنوى لينكس المُثبَّتة؛ أما 20_linux_xen فيهتم بنظم Xen الظاهرية، و 30_os-prober يذكر نظم التشغيل الأخرى (Hurd ،OS X ،Windows).

8.8.4. خاص بحواسيب ماكنتوش (PowerPC): ضبط Yaboot

Yaboot هو محمل الإقلاع الذي تستخدمه حواسيب ماكنتوش القديمة التي تستخدم معالجات PowerPC. لا تقلع هذه الحواسيب كالحواسيب الشخصية PC، بل تعتمد على قسم إقلاع (‎“bootstrap” partition)، يُنفّذ منه BIOS (أو OpenFirmware) محمل الإقلاع، ويثبت البرنامج ybin المحمل yaboot وملف إعداداته على ذلك القسم. تحتاج إعادة تشغيل هذا الأمر فقط في حال تعديل /etc/yaboot.conf (الذي يُنسَخ على قسم الإقلاع، ويَعرِفُ yaboot طريقة العثور على مواقع النَوَى على الأقراص).
يجب أن تملك ملف /etc/yaboot.conf سليم قبل استدعاء ybin. فيما يلي مثالاً عن إعدادات أصغرية.

مثال 8.4. ملف إعداد Yaboot

# bootstrap partition
boot=/dev/sda2
# the disk
device=hd:
# the Linux partition
partition=3
root=/dev/sda3
# boot after 3 seconds of inactivity
# (timeout is in tenths of seconds)
timeout=30

install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
enablecdboot

# last kernel installed
image=/vmlinux
        label=linux
        initrd=/initrd.img
        read-only

# old kernel
image=/vmlinux.old
        label=old
        initrd=/initrd.img.old
        read-only

# only for Linux/Mac OSX dual-boot
macosx=/dev/sda5

# bsd=/dev/sdaX and macos=/dev/sdaX
# are also possible