FAT32-Bootsector
Ein einfacher und sehr kompakter Bootsektor, mit dem Sie Ihren Bootloader oder Kernel aus einer Datei laden können.
Erstellen Sie mit beigefügtem Skript.
Beachten Sie: Lesen Sie dies nicht und lesen Sie den Quellcode. Es wird kommentiert, also sind alle Informationen da
Was macht dieser Bootsektor eigentlich?
Hier ist es Schritt für Schritt:
- Überprüfen Sie, ob BIOS den erweiterten Festplattenbetrieb unterstützt
- Sucht nach der ersten aktiven FAT32 -Partition
- Sucht nach Ihrer Datei auf dieser Partition (im Stammverzeichnis)
- Lädt es in den Speicher
- Führt es aus
Speicherzustand nach meinem Bootsektor
Ihr Code:
Ihr Code wird unter 0x1000: 0x0000 (Segment: Offset) oder 0x10000 (linear) geladen.
Register
Die meisten Register sind nicht "Nulled" und ihnen wird Müll zugewiesen
Nur diese haben gültige Werte:
- CS: IP - 0x1000: 0x0000 (der geladenen Datei zugewiesen)
- DS - 0x1000 (auch der geladenen Datei zugewiesen)
- SS: SP - 0x0000: 0xffff (Stapel im ersten Segment)
- DL - Antriebsnummer (für BIOS -Interrupts)
Nützliche Daten im Speicher hinterlassen
Nach dem Springen in die geladene Datei sind noch einige nützliche Daten im Speicher noch übrig:
(Alle Offsets sind im Quellcode angegeben)
- 0x7c00 - Aktuelle Festplatte (Geräteummer), Fettadresse, Adresse des ersten Datensektors und ähnliche Informationen.
- 0x7e00 - BPB -Sektor dieser Partition
Einschränkungen
- Es ist alles im realen Modus, so dass die maximale Dateigröße nicht größer sein sollte als ein paar hundert Kilobyten
- Die Datei muss sich im Stammverzeichnis der ausgewählten Partition befinden
- Dateiname - Bootsektorsuche nach Datei mit 8.3 Dateiname
Methoden installieren
Umgebenden zu installieren:
- Auf Ubuntu -kompatiblen Systemen verwenden Sie install.sh script
- Unter Windows verwenden Sie Fat32-Bootsector.exe
Beachten Sie, dass Windows -Version keine Buchstaben für Partitionen verwendet, sondern Phisycal-Partitionen (nicht logisch).
Fehler?
Wenn ein Fehler auftritt, zeichnet Bootsector Fehlercode auf dem Bildschirm.
Hier sind Codes und Erklärungen von Fehlern:
0 - erweiterte BIOS -Funktionen nicht verfügbar
1 - bootfähige Partition nicht gefunden
2 - bootfähige Partition ist nicht FAT32
3 - Datei nicht gefunden
4 - Sektoren kann nicht geladen werden (BIOS -Interrupt -Fehler)