Was ist ein "Bootsektor"? Was ist der Unterschied zu "MBR"?
Wenn beim Booten das BIOS mit seinen Prüfungen und Initialisieren fertig ist, lädt
es vom Bootmedium (meist die erste Festplatte) den ersten Sektor und führt den
darin befindlichen Code aus. Dieser erste Sektor wird heutzutage
Master Boot Record (MBR: Hauptbootsektor) genannt und dieses erste Programm
nennt sich Boot-Loader. Da sich in diesem Sektor auch die Partitionstabelle
befindet, wird auch vom Partititionssektor gesprochen. Der Boot-Loader
sieht in der Parttitionstabelle nach, welche Partition als aktiv markiert ist
und führt den dort befindlichen Bootsektor aus, der dann das auf der
Partition befindliche Betriebssystem lädt.
Der MBR und die Bootsektoren sind nicht über das Dateisystem (FAT, NTFS usw.)
zu erreichen. Man benötigt einen direkten Festplattenzugriff, um sie auslesen zu können.
Das nachfolgende MS-DOS-Programm benutzt die Funktion 02h des BIOS-Interrupts 13h, um
den MBR auszulesen, und speichert dessen Inhalt als BOOT.BIN ab:
Das obige 16-Bit-Programm funktioniert unter MS-DOS und auch unter Win9x (95, 98, 98SE, ME),
aber nicht unter WinNT (NT, XP, 2000, Vista). WinNT übernimmt die vollständige Kontrolle
über sämtliche Hardware und lässt einen direkten Zugriff unter BIOS nicht zu. Allerdings
kann man in WinNT mit der Win32-Funktion CreateFile auch direkt auf die Festplatte
zugreifen, wenn man mit Administratorrechten unterwegs ist:
In Win9x funktioniert dieses Programm nicht. Einen Zugriff wenigstens auf die
Diskettenlaufwerke kann man über den virtuellen Treiber VWIN32 und die Funktion
DeviceIoControl bewerkstelligen:
Der Festplattenzugriff ist mit dieser Methode nicht möglich. Um auch unter Win9x
in einem 32-Bit-Programm auf die Festplatte zuzugreifen können, schlägt Microsoft
einen etwas abenteuerlichen Weg vor: