CLoNY
زيزوومي جديد
غير متصل
من فضلك قم بتحديث الصفحة لمشاهدة المحتوى المخفي
الإقلاع إلى أنظمة التشغيل Booting to OSs

عملية الإقلاع هى:
البحث عن نظام التشغيل وإيجادة ثم تحميلة وإحداث بدء لتشغيل هذا النظام.
وهى مجموعة متسلسلة ومترابطة من الأحداث تنتهى بإحداث بداء لنظام التشغيل
قبل الإقلاع
يقوم المعالج بقراءة البيانات الموجودة فى Bios ROM ومن ثم تحميل البيانات الرئيسية مثل التاريخ والوقت ومعلومات الهاردوير ...الخ
ملحوظة مهمة:
لايشترط أن يكون مصدر Bios ROM هو البيوس ولإيضاح معنى الجملة السابقة نفترض أن لدينا لوحة أم بها بيوس تالف فإنة فى معظم الأحيان يتم الحكم عليها بأنها ماتت.
ولكن هذة النقطة بالذات لا ينتبة إليها الكثيرون وهى أن المعالج يستطيع قراءة Bios ROM من أى قرص خارجى مما يتيح أمامك فرصة لمعالجة البيوس
كيف تتم عملية الإقلاع؟
سوف أتحدث عن عملية إقلاع لنظام تشغيل مثبت على قرص صلب وليس الإقلاع من أسطوانة تحتوى على برامج أو على نظام تشغيل محمول Portable .
فى البداية سأتكلم عن الإقلاع إلى أحد أنظمة ميكروسوفت وبعدها سوف اتكلم عن أنظمة التشغيل الأخرى بصورة منفصلة وكذلك عملية الإقلاع الغير متجانس وهو الإقلاع إلى هارد ديسك يحتوى على أكثر من نظام تشغيل (ويندوز+ماك+لينكس)
بالنسبة لأنظمة ميكروسوفت
لكى يتم الإقلاع إلى نظام تشغيل فإنة يجب أن يكون هناك شىء مهم وهو
القرص الصلب
-لابد أن يحتوى القرص الصلب على أقسام Partitions وأن يكون هناك واحدا على الأقل منها هو قسم أولى Primery Partition وبحد أقصى 4 بارتيشن فقط لكل هاردديسك
-من الممكن عمل قسم ممتد Extended ثم تقسيمة داخليا إلى عدد من الأقسام المنطقية Logical
-كافة الأقسام التى تم إنشاءها على القرص الصلب تندرج تحت مسمى Boot Record ولكن هذا ال Boot Record سيحتاج إلى مكان لحفظ بياناتة الشخصية بة وهو الماستر ولذلك فإن اسمة هو Master Boot Record وهو قطاع من قطاعات الهاردديسك
ما هى قطاعات الهاردديسك؟
نفترض أن لدينا هارد ديسك بة قسم أساسى وأخر ممتد وأن القسم الممتد يحتوى على أقسام منطقية
فتكون القطاعات هى
Master Boot Record
هو بارتيشن حجمة 512 بايت ويقع فى النقطة التالية CHS 0,0,1
ولكن ما معنى CHS 0,0,1
C=Cylinder
H=Head
S=Sector
أى إنة يقع فى أول قطاع من قطاعات الهاردديسك وهو الماستر لكل أقسام الهاردديسك ويرمز لة ب MBR
Partition Boot Sector
ويحتل أول قطاع فى القسم الأساسى Primery Partition و الذى يقوم بإنشاؤة هو نظام التشغيل وحجمة 512 بايت ويرمز لة ب BPR
Extended Boot Sector
ويقع فى بداية القسم الممتد Extended Partition وفية يتم تخزين جداول البارتيشن Partition Table ويرمز لة ب EBR
Logical Extended Boot Sector
عند بداية كل قسم منطقى
صورة توضيحية لقطاعات الهارد ديسك

صورة أبسط..

الآن لدينا الهاردديسك ونريد الإقلاع إلى أحد أنظمة تشغيل ميكروسوفت
أنظمة ميكروسوفت التى سنبحثها على فئتين
الفئة الاولى وتتضمن أنظمة التشغيل التالية
Windows2000,WindowsXP,Windows2003
الفئة الثانية وتتضمن الأنظمة
Windows Vista,Windows7
وعلى ذلك سنضع فهرس لكل مجموعة كالتالى
البوت إلى انظمة Windows2000,WindowsXP,Windows2003
1-عند بداء تشغيل الجهاز فإن المتحكم فى عملية التشغيل هو البيوس من خلال عدد من العمليات مثل فحص المكونات الرئيسية و المنافذ.....الخ وهذة العملية تسمى Power On Self Test وتختصر إلى POST
2-يتم البحث عن Master Boot Record وعند العثور علية يتم عمل لود لة فى الذاكرة وينتهى هنا دور البيوس وتصبح القيادة لدى MBR
3-جميع الأحداث حتى هذة اللحظة ليست لها علاقة بنظام التشغيل وحتى الان فإن البوت هو System Boot
4-يقوم MBR بفحص الهاردديسك بحثا عن قسم نشط إلى أن يجدة فيقوم بتسليم التحكم إلى Partition boot Sector ويسمى أحيانا Partition Boot Record أو PBR الموجود فى بداية القسم النشط
5-الان أصبح التحكم مع Partition Boot Record الذى يقوم بدورة فى البحث عن ntldr الذى يبداء فى البحث عن ملف البوت Boot.ini لقراءة محتوياتة ومعرفة مسار النظام بغرض الوصول إلى ملف بوت النظام وهو الملف ntoskrnl
6-الملف ntoskrnl هو NT Operating System Kernel وهو الآن يأخذ السيطرة الكاملة معلنا بداء عملية إقلاع نظام التشغيل OS Boot ومعلنا نهاية مرحلة System Boot
طبعا هذة الخطوات سهلة وبسيطة للغاية وأنا أرى أن البوت هذا هو أبسط أنواع البوت على الإطلاق
رسم بيانى Block Diagram يوضح خط سير العملية

EFI
Extensible Firmware Interface
Extensible Firmware Interface
قبل أن ندخل إلى شرح البوت فى ويندوز فيستا وويندوز 7 فهناك شىء مهم يجب معرفتة أولا
EFI
لم تتطور البيوس من عام 1980 ولكن أنظمة التشغيل تطورت ولم تعد البيوس قادرة على تلبية مستلزمات أنظمة التشغيل وكذلك تطور كبير للهاردوير ولم يصاحبة أدنى تطور فى البيوسEFI
فى عام 2000 قامت شركة Intel بطرح أول إصدار من إصدارات EFI وكان الغرض من وراء ذلك هو معالجة عيوب البيوس وكذلك بغرض تهميش دور البيوس فى تأثيرها على أنظمة التشغيل تمهيدا للإستغناء عنها مستقبليا
يتم تطوير ال EFI الان من قبل Unified EFI Forum وأصبحت معروفة الان ب UEFI
ولكن ماهى مشكل البيوس والتى تعالجها EFI؟
يوجد فى البيوس مشكلتان رئيسيتان
1- ACPI
ACPI هى اختصار ل Advanced Configuration and Power Interface واجهة الطاقة والتوزيع المتقدم ويوجد بها عددا من الجداول تتحكم فى صلاحية الجهاز للعمل فى بيئة تشغيل معينة أو لا وكذلك القدرة على تشغيل خاصية معينة او عدم تشغيلها وأيضا الكيفية التى يتم بها توزيع الطاقة على المكونات الأساسية للجهاز طبقا لطبيعة نظام التشغيل Operating System-Directed Configuration and Power Management.
ولكنها تتعامل مع الأنظمة على أسس تم وضعها منذ 30 عاما مضت وأصبحت مستلزمات أنظمة التشغيل تخرج عن نطاق قدرات ACPI لذلك فإنة لايمكن الان تشغيل احد أنظمة التشغيل الحديثة إعتمادا على ACPI الموجودة بالبيوس
2-SMBIOS
وهى اختصار ل System Management BIOS ووظيفتها هى إمداد نظام التشغيل بالمعلومات التى يحتاجها النظام
إذن فإن أحد أهم وظائف EFI هو معالجة عدم توافق ACPI و SMBIOS مع أنظمة التشغيل
مكونات EFI
1-EFI Services
وهى مجموعة من الخدمات وتنقسم إلى قسمين
-EFI Boot Services
ويتم توفيرها فى مرحلة البوت
-Runtime Services
وتكون موجودة فى داخل نظام التشغيل
2-Device Drivers
بالإضافة إلى التعريفات التقليدية للأجهزة فإن EFI تقوم بانشاء بيئة للمكونات الغير معتمدة على المعالج processor-independent device environment من خلال ما يسمى ب EFI Bayte Code أو EBC وهذة البيئة تشبة بيئة Open firmware المستخدمة حاليا فى أجهزة Power PC لأجهزة ماكينتوش و أجهزة SPARC من شركة Sun Microsystems
3-Boot Manager
وهو المسئول عن اختيار وتحميل نظام التشغيل اثناء الإقلاع
4-Disk Support
بالإضافة إلى الشكل الكلاسيكى لتقسيم الهارد ديسك و MBR فإن EFI أدخلت شيئا جديدا يسمى GUID Partition Table ويختصر إلى GPT وهو يعتمد على إنشاء Guid لكل بارتيشن يعنى Identifier مثل هذا {9b31a47c-3e8e-11de-9b91-d640738e3d83}
5- EFI Extensions
وتقوم بعمل تحميل لبعض الدريفرات أو البيانات الغير قابلة للتعديل مثل بيانات OEM
6-EFI shell
وهو واجهة التحكم فى EFI ومن الممكن تواجدها بصورة تلقائية فى بعض أنواع الماذربورد مثال محاولة شركة MSI لإدراج الواجهة التطبيقية لل EFI


وغالبا فإنها تكون مصاحبة لأقراص تثبيت أنظمة التشغيل الحديثة ويقوم بعض أنظمة التشغيل بظبط إعدادتها بصورة تلقائية أثناء القيام بتثبيت نظام التشغيل بما يتلائم مع نظام التشغيل بمعنى أن نظام التشغيل يقوم بتهيئتها حسب متطلباتة هو دون النظر إلى البيوس وإعدادتها وEFI يدعم بيئة عمل Intel و Itanium
وهذا هو المخطط العام لل EFI
أنظمة التشغيل التى يدعمها EFI
-Windows 2000 advenced Server و Windows Server 2003 و Windows XP 64 Bit ولكن بصورة محدودة
-Windows Vista و Windows 7 بصورة كاملة
-أنظمة Linux بشرط استخدام Elilo Boot Loader
-أنظمة تشغيل ماكينتوش بداية من MAC OS X 10.4 المعروف ب Tiger وكافة إصدارات Leopard وكل إصدارات INTEl Based MAC
الإقلاع إلى انظمة Windows Vista و Windows7
لا تستطيع البيوس أن تتعامل مع أنظمة Vista و 7 للأسباب التى ذكرنها فى شرح EFI لأن البيوس لا تستطيع ان تفى للويندوز بمتطلباتة وعلى ذلك فإن للبيوس دور هامشى ومحدود بالنسبة لهذة الأنظمة ويتم الإعتماد على EFI .-تتم كافة خطوات الإقلاع بصورة طبيعية جدا ولكن المتحكم فى الإقلاع هنا هو EFI Boot Services
-يتم نقل التحكم من قطاع البوت بالهارد ديسك إلى ملف جديد بدلا من NTLDR وهو هنا الملف bootmgr
-فى السابق كان الملف NTLDR يقوم بقراءة الإحداثيات من الملف BOOT.INI ولكن هذا الملف تم الإستغناء عنة الان وعلى ذلك يصبح هناك سؤال مهم ...بل هى محموعة أسألة
ما الذى سيفعلة bootmgr وأى مسار سيسلكة وأى ملفات سيقراءها؟
-الملف bootmgr هو ملف نظام مخفى وهو يتواجد فى القسم الذى يحتوى على البوت ومن الضرورى أن يكون هذا القسم هو قسم أساسى قابل للإقلاع
-القسم القابل للإقلاع قد يكون:C أو قد يكون القسم المخفى المسمى System Reserved

-لن يقوم الملف bootmgr بقراءة ملف نصى بسيط مثل ملف BOOT.INI ولكنة سوف يقراء بيانات موجودة داخل قاعدة بيانات
-قاعدة البيانات هذة هى فى حقيقتها Firmware Independent Datbase ولمعرفة معنى هذا المصطلح يمكن الرجوع إلى تعريف EFI
-قاعدة البيانات هذة تحوى بداخلها على معلومات توزيع البوت والمكونات اللازمة لبداء التشغيل
-إن قاعدة بيانات البوت يتم إنشاؤها أثناء تثبيت النظام والذى يقوم بإمداد هذة القاعدة بالبيانات هو EFI وليست البيوس
-تتواجد قاعدة البيانات هذة داخل مجلد مخفى من مجلدات النظام يسمى BOOT وقاعدة البيانات هذة تسمى Boot Configurations Datbase وتختصر إلى BCD
Boot Configurations Datbase
-تتواجد فى القسم النشط داخل مجلد BOOT فى الملف BCD-تحتوى قاعدة بيانات BCD على معلومات البوت وعلى معلومات إضافية خاصة بدريفرات الجهاز
-تستطيع قاعدة البيانات هذة إدارة الإقلاع لعدد من أنظمة التشغيل المختلفة سواء كانت أنظمة التشغيل هذة من النوع المعتمد على البيوس BIOS based operating أو نظام من النوع المعتمد على NVRAM وهى اختصار ل Non Voltile RAM وهى أحد مكونات EFI
-تقوم بعمل بوت لنظام التشغيل عن طريق تشغيل ملف Winload.exe وفى حالة وجود نظام تشغيل من أنظمة NT فإنها تقوم بنفسها بتشغيل الملف NTLDR
كيف تتم إدارة BCD ؟
يوجد عدد من الطرق للتحكم فى قاعدة بيانات البوت وإدارتها وأدوات التحكم فى BCD كالتالى
1-Advenced System Properties
وهى الخصائص المتقدمة للنظام أكتب SystemPropertiesAdvanced فى Run

2-msconfig
لتغيير خصائص عملية الإقلاع من خلال الخيارات الموجودة فى نافذة Boot

3-Windows Recovery Environment Startup Repair
وهى خاصة بإصلاح البوت وكذلك بداء التشغيل ويتم الوصول إليها عن طريق الدخول إلى خيارات الإقلاع بالضغط على F8 فى بداية الإقلاع ثم اختيار Repair Your computer ثم متابعة الخطوات وسوف يتم تشخيص واصلاح البوت بصورة آلية

4-bootrec.exe
هذا الامر يستخدم لإصلاح البوت عند فشل الطريقة السابقة وهو يتم كالتالى
-قم بالدخول إلى Windows Recovery Environment Startup Repair وعند الوصول إلى المرحلة الموضحة بالصورة قم بالضغط على Commend Prompet

الأوامر المستخدمة لإصلاح BCD باستخدام bootrec.exe هى فى حقيقتها حذف لقاعدة البيانات ثم إعادة إنشاءها وهى كالتالى
كود:
bcdedit /export C:\BCD_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd
يوجد اوامر أخرى فى bootrec
كود:
/FixMbr
/FixBoot
/ScanOs
/RebuildBcd
5-bcdedit.exe
وهى أداة تحرير ال BCD من داخل الويندوز ويمكن من خلالها عمل تعديل فى سيناريو الإقلاع وكذلك إضافة نظام نشغيل أخر إلى قائمة البوت ويتم ذلك كالتالى
run>cmd>bcdedit
ولمعرفة المزيد عن الاوامر الخاصة ب bcdedit فى الرابط التالى
يجب عليك
تسجيل الدخول
او
تسجيل لمشاهدة الرابط المخفي
وبذالك نكون قد أعطينا فكرة موجزة عن الإقلاع فى أنظمة ميكروسوفت

التعديل الأخير بواسطة المشرف: