FAT32-Bootsector
حذاء بسيط ومدمج للغاية ، والذي يتيح لك تحميل محمل التمهيد أو kernel من ملف.
بناء باستخدام البرنامج النصي المرفق.
إشعار: لا تقرأ هذا ، اقرأ رمز المصدر. تم التعليق ، لذلك كل المعلومات موجودة
ماذا يفعل هذا bootsector بالفعل؟
هنا ، خطوة بخطوة:
- تحقق مما إذا كانت BIOS تدعم عملية القرص الممتدة
- يبحث عن أول قسم FAT32 النشط
- تبحث عن ملفك على هذا القسم (في دليل الجذر)
- يحملها في الذاكرة
- ينفذها
حالة الذاكرة بعد حذاء بلدي
رمزك:
يتم تحميل الكود الخاص بك على 0x1000: 0x0000 (الجزء: الإزاحة) ، أو 0x10000 (خطي).
السجلات
معظم السجلات ليست "صفر" ويتم تعيين القمامة لهم
فقط هؤلاء لديهم قيم صالحة:
- CS: IP - 0x1000: 0x0000 (تم تعيينه إلى ملف محمّل)
- DS - 0x1000 (تم تعيينه أيضًا إلى ملف محمّل)
- SS: SP - 0x0000: 0xffff (مكدس في الجزء الأول)
- DL - رقم محرك (لمقاطعات BIOS)
تبقى بيانات مفيدة في الذاكرة
بعد القفز إلى الملف المحمّل ، لا يزال هناك بعض البيانات المفيدة المتبقية في الذاكرة:
(يتم تحديد جميع التعويضات في رمز المصدر)
- 0x7C00 - القرص الحالي (رقم الجهاز) ، عنوان الدهون ، عنوان قطاع البيانات الأول ومعلومات مماثلة.
- 0x7E00 - قطاع BPB لهذا القسم
القيود
- كل شيء في الوضع الحقيقي ، لذا لا ينبغي أن يكون حجم الملف الأقصى أكبر من بضع مئات من الكيلوغرامات
- يجب أن يكون الملف في دليل الجذر للقسم المحدد
- اسم الملف - يبحث Bootsector عن ملف مع 8.3 اسم ملف
تثبيت الطرق
لتثبيت الاستخدام:
- على الأنظمة المتوافقة مع Ubuntu استخدم تثبيت.
- على Windows ، استخدم fat32-bootsector.exe
إشعار إصدار Windows لا يستخدم رسائل للأقسام ، ولكن أقسام phisycal (غير منطقية) ، لذلك قد يكون من الصعب مطابقة حرف القسم ، ولكن من ناحية أخرى ، فإنه يدعم محركات أقراص USB متعددة التقسيم
أخطاء؟
عندما يحدث الخطأ ، يرسم Bootsector رمز الخطأ على الشاشة.
فيما يلي رموز وتفسيرات للأخطاء:
0 - وظائف BIOS الممتدة لا تتوفر
1 - قسم قابل للتمهيد لم يتم العثور عليه
2 - القسم القابل للتمهيد ليس FAT32
3 - لم يتم العثور على ملف
4 - لا يمكن تحميل القطاعات (خطأ مقاطعة BIOS)