Ich habe einen Bootloader geschrieben und muss ihn auf ein USB-Laufwerk schreiben. Da ich unter Windows arbeite, muss mein Bootloader Dateisysteme wie FAT32 und FAT16 usw. unterstützen. Ich habe BPB verwendet ( BIOS Parameter Block
) zu diesem Zweck. Mir ist bekannt, dass ein USB-Laufwerk aus Sektoren besteht.
Aber hat es einen Kopf, Spuren usw.? Denn diese Informationen sind im Bios-Parameterblock zu vermerken.
Antworten:
Angenommen, Sie verwenden das BIOS INT 13h, um vom USB-Laufwerk zu lesen, dann übersetzt das BIOS die Adressen nach Bedarf, um mit dem USB-Laufwerk zu arbeiten. Aktuelle Bootloader suchen nach INT 13h-Erweiterungen und verwenden, falls vorhanden, die erweiterte Version von Lesesektoren mit einer 64-Bit-logischen Sektoradresse anstelle von CHS (Zylinder / Kopf / Sektor), um die Größenbeschränkungen der alten Schnittstelle zu vermeiden. Ein klassischer Master-Boot-Datensatz enthält jedoch nur 32-Bit-Werte für den Startsektor und die Anzahl der Sektoren für jede primäre Partition, wodurch die Laufwerksgröße auf 2 Terabyte begrenzt wurde.
Wiki-Artikel:
http://en.wikipedia.org/wiki/INT_13H
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/Master_boot_record#Sector_layout
quelle
USB-Laufwerke haben keinen Kopf, keine Spuren oder Sektoren. Nur Festplatten haben. Möglicherweise kann Ihr Bios-Parameterblock keine USB-Laufwerke verarbeiten.
quelle