Beruflich Dokumente
Kultur Dokumente
1 Einleitung
1.1 Allgemeines
Der GRand Unified Bootloader wurde von Erich Boleyn entwickelt und erschien erstmals 1995. Ursprnglich diente der GRUB als Loader fr das HURD Betriebssystem. Nach einigen Verbesserungen wurde der GRUB 1999 in das GNU Project bernommen. Der GRUB untersttzt den Multibootstandard vollstndig, dadurch ist er in der Lage, jedes Multiboot konforme Betriebssystem, wie z. B. FreeBSD, NetBSD, OpenBSD und GNU/Linux, zu starten. Die anderen Betriebssysteme werden durch das so genannte "Chainloading" geladen.
Abbildung 2 Datenorganisation einer Festplatte. Zone-Bit Recording Da die Auenspuren wesentlich lnger als die Innenspuren sind, wird bei modernen Festplatten eine ungleichmige Verteilung der Sektoren vorgenommen. Dies bedeutet, dass die ueren Spuren mehr Sektoren besitzen als die inneren. Dieses Verfahren nennt man Zone Bit Recording (ZBR). Die Spuren werden dabei in Zonen eingeteilt und jeder Zone eine bestimmte Sektorenzahl zugeteilt. Die Umrechnung von logischen Sektoren zu physischen Sektoren, wird dabei durch das festplatteneigene BIOS realisiert.
Signatur 510 2 AA55h fr die eindeutige Identifizierung des Master Boot Record. Tabelle 1 Aufbau des Master Boot Records
Offset
Lnge (Byte) 1 3 1 3 4 4
Beschreibung Partitionsstatus
0 1 4 5 8 12
0x00 = inaktiv 0x80 = bootfhige Partition Beginn der Partition (CHS-Adresse ) Partitionstyp Ende der Partition (CHS-Adresse) lineare Adresse des ersten Blocks der Partition Anzahl der Blcke der Partition
Tabelle 2 Aufbau eines Eintrages der Partitionstabelle Am Anfang jeder Partition befindet sich der Bootsektor dieser Partition, welcher im Fall einer bootfhigen Partition den Startcode des auf der Partition befindlichen Betriebssystems beinhaltet. Ist der Partitionstyp einer Partition 0x00 oder ist die Lnge der Partition Null, so handelt es sich um einen leeren (ungenutzten) Partitionstabelleeintrag. Typ 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0E 0x0F 0x40 0x51 0x52 Betriebs-/Dateisystem Partitionstabelleeintrag ungenutzt DOS mit 12-Bit-FAT XENIX XENIX DOS mit 16-Bit-FAT extended DOS-Partition (ab DOS 3.3) DOS-4.0-Partition mit mehr als 32 MByte OS/2 HPFS AIX AIX bootable OS/2 Boot Manager Win95 FAT32 Win95 FAT32 Win95 FAT16 Win95 extended Vendix 80286 Novell Microport Typ 0x63 0x64 0x65 0x75 0x80 0x81 0x82 0x83 0x85 0x93 0x94 0xA5 0xA6 0xA7 0xB7 0xB8 0xC7 0xDB Betriebs-/Dateisystem GNU HURD Novell Netware Novell Netware PC/IX Old MINIX Linux/Minix Linux swap Linux native Linux extended Amoeba Amoeba BBT BSD/386 OpenBSD NextStep BSDI fs BSDI swap Syrinx CP/M
Abbildung 3 Beispiel der Partitionsstruktur einer Festplatte. Im Gegensatz zu den Partitionen, welche im MBR eingetragen sind und relativ zum Festplattenanfang (Sektor 0) adressiert werden, werden die in einer erweiterte Partitionstabelle eingetragenen Partitionen relative zum Anfang der ersten erweiterten Partition adressiert. Jede Partitionstabelle, egal ob die im MBR oder eine erweiterte Partitionstabelle, darf nur einen Eintrag einer erweiterten Partition enthalten. Diese Eintrge unterscheiden sich nur durch den Partitionstyp von den primren Partitionseintrgen. Typische Partitionstypen dafr sind: 0x05 DOS extended 0x0F Win95 extended 0x85 Linux extended
Der Eintrag der Partitionsgre in den Partitionstabellen kann dabei beliebig grer als Null sein, viele Partitionsprogramme erwarten aber die Gre der Partition inklusive aller weiteren erweiterten Partitionen. Alle "nicht erweiterte Partitionen", die in einer erweiterten Partitionstabelle eingetragen sind, werden logische Partition genannt. Logische Partitionen enthalten die eigentlichen Daten und bilden logische Laufwerke. Erweiterte Partitionen enthalten dagegen nur die logischen Laufwerke und keine Daten.
Die Bootroutine hat die Aufgabe, das eigentliche Betriebssystem zu laden. Tabelle 4 Prinzipieller Aufbau eines Bootsektors. Die Bootsektoren der unterschiedlichen Betriebssysteme haben meistens einen unterschiedlichen Aufbau. Eines haben sie aber alle gemeinsam, sie fangen alle mit einem Maschinecode Befehl an. Dies ist wichtig, da der Bootsektor von den Bootmanagern oder der Master Boot Routine geladen und zur Ausfhrung gebracht wird. Da der MBR genau diese Vorraussetzung erfllt, kann man diesen auch als Bootsektor einsetzen. Lediglich die Bootroutine msste angepasst werden.
3. Startvorgang
3.1 Standard Startvorgang
Nach dem Start des Computers und der erfolgreichen Durchfhrung des PowerOnSelfTests, ldt das BIOS den ersten Sektor (Partitionssektor) des Startlaufwerkes. Handelt es sich bei dem Startlaufwerk um eine Festplatte, so wird damit der MBR geladen. Nach dem Laden des MBR wird die darin befindliche Master Boot Routine zur Ausfhrung gebracht. Diese beginnt mit der Suche nach der aktiven Partition in der Partitionstabelle. Wurde die aktive Partition gefunden, so ldt die Master Boot Routine den Bootsektor dieser Partition in den Speicher und startet das darin befindliche Bootprogramm. Dieses Bootprogramm startet daraufhin das eigentliche Betriebssystem. Da die Master Boot Routine nur in der Partitionstabelle der ersten Festplatte sucht, ist ein Start eines Betriebssystems von einer weiteren Festplatte nicht mglich.
3.2 Chainloading
Beim Systemstart mittels "Chainloading", zu deutsch "Kettenladen", wird zu erst der Bootmanager geladen, der daraufhin nichts anderes macht als das Bootprogramm des zu startenden Betriebssystems zu laden und auszufhren. Der Bootmanager braucht dabei das zu ladende Betriebssystem nicht zu kennen und kann somit jedes Betriebssystem laden.