You are on page 1of 6

Der Bootloader GRUB

Tobias Eger, 14.12.2002, https://wwwbs1.informatik.htw-dresden.de/svortrag/ai99/Eger/ (Besuch: 2010-06-22)

Inhalt des gesamten Artikels


3.3. Start mittels GRUB 1 Einleitung 1.1 Allgemeines 1.2 GRUB Features 2. Aufbau einer Festplatte 2.1 Organisation der Daten auf einer Festplatte 2.2 Adressierung einer Festplatte 2.3 Logischer Aufbau von Festplatten 2.3.1 Master Boot Record 2.3.2 Partitionen (primre Partitionen) 2.3.3 Erweiterte/Logische Partitionen 2.3.4 Der Bootsektor 3. Startvorgang 3.1 Standard Startvorgang 3.2 Chainloading 3.2.1 Startvorgang mit einem Bootmanager in einer primren Partition 3.2.2 Startvorgang mit einem Bootmanager in dem MBR 4. GRUB 4.1. Installation 4.1.1 Bootdiskette und BackUp 4.1.2 Installation auf die Festplatte 4.1.3 Deinstallation 4.2 GRUB einrichten 4.2.1 Namenskonvention 4.2.2 Setup 4.3 Startvorgang mittels GRUB Shell 4.4 Das GRUB Bootmen 4.4.1 Aufbau 4.4.2 Allgemeine Befehle 4.4.3 Befehle fr die Bootmeneintrge 4.4.4 Tastaturbelegung ndern 4.4.5 Beispiel eines Bootmens

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.

1.2 GRUB Features


Partitionen anzeigen, verstecken, erstellen, aktivieren Die Kernel von FreeBSD, NetBSD, OpenBSD, GNU/Linux knnen inklusive aller Parameter geladen werden. Festplatten knnen logisch vertauscht werden, um Betriebssysteme von einer anderen Festplatte als der ersten laden zu knnen. Die Erstellung eines Startmens ist mglich. Das Startmen kann beliebig in Inhalt und Farbe verndert werden, teilweise sogar whrend des Startvorganges. Das Startmen erlaubt nicht nur Eintrge zum Laden eines Betriebssystems, sondern auch Eintrge, welche einen oder mehrere GRUB Kommandos ausfhren. Alle GRUB Kommandos sind schon vor dem Start eines Betriebssystems verfgbar. Durch die GRUB Shell lst sich jedes Betriebssystem manuell laden. Booten ber ein Netzwerk ist mglich. Kein 1024-Zylinder Problem mehr. (falls nicht vom BIOS verursacht) u. a.

2. Aufbau einer Festplatte


Alle Festplatten bestehen aus magnetisierbaren Scheiben. Die Informationen werden durch beidseitige Ummagnetisierung der Oberflche dieser Scheiben gespeichert. Diese Ummagnetisierung erfolgt durch Schreibkpfe und wird durch Lesekpfe (Heads) wieder gelesen. Die Schreib-/Lesekpfe bewegen sich radial auf einem Arm (Kamm) und schweben dabei ber den sich mit konstanter Geschwindigkeit rotierenden Scheiben.

Abbildung 1 Aufbau einer Festplatte.

2.1 Organisation der Daten auf einer Festplatte


Um die Daten einer Festplatte verwalten zu knnen, wird eine Einteilung der Magnetscheiben vorgenommen. Diese Einteilung wird durch eine Low-Level Formatierung vorgenommen. Dabei werden folgende Teile angelegt: Spuren (Tracks) Die Spuren sind konzentrische Kreise auf den Magnetscheiben. Alle Spuren einer Magnetscheibe werden von auen nach innen mit 0 beginnend durchnumeriert. Die Speicherkapazitt einer Festplatte ist abhngig von der Dichte der Spuren, welche in TPI (Tracks per Inch) angegeben wird. Sektoren Sektoren sind Kreisausschnitte auf den Magnetscheiben. Die Sektoren teilen jede Spur in 512Byte groe Stcke und werden im Gegensatz zu den Spuren und Zylindern mit 1 angefangen zu zhlen. Zylinder Als Zylinder bezeichnet man alle durch die Magnetscheiben bereinander liegenden Spuren, d.h., alle Spuren aller Magnetscheiben, mit der selben Nummer.

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.

2.2 Adressierung einer Festplatte


CHS-Modus Bis etwa 1997 wurde fr die Adressierung der Festplatte das CylinderHeadSector-Verfahren genutzt. Dadurch kann jeder 512 Byte Sektor durch die Angabe des Zylinder, des Kopfes und des Sektors genau lokalisiert werden. Die Kpfe geben dabei die Magnetscheibe und deren Seite an und die Zhlung wird wie bei den Zylindern mit 0 angefangen. Die CHS-Adressen sind drei Byte (24 Bit) gro und besitzen folgenden Aufbau. CHS Bits mgliche Werte Kopf 8 0..255 Sektor 6 0..63 Zylinder 10 0..1023 Die maximale Kapazitt errechnet sich durch: 256 Kpfe * 63 Sektoren * 1024 Spuren * 512 Byte/Sektor = 8064 MByte LBA-Modus Da heutige Festplatten wesentlich grere Kapazitten haben, verwendet man zur Adressierung die "Linear Block Address". Diese Adresse ist vier Byte (32Bit) lang und numeriert alle Sektoren einer Festplatte der Reihe nach durch. Dadurch ergibt sich eine maximale Gesamtkapazitt von: 2^32 Sektoren * 512 Byte/Sektor = 2048 GByte = 2 TeraByte

2.3 Logischer Aufbau von Festplatten 2.3.1 Master Boot Record


Der Master Boot Record, kurz MBR, stellt so eine Art "Inhaltsverzeichnis" einer Festplatte dar. Er befindet sich immer am Anfang einer Festplatte, genauer gesagt auf Spur 0, Kopf 0 und Sektor 1 und belegt genau einen 512 Byte Sektor. Neben ein paar allgemeinen Informationen befinden sich im MBR zwei wichtige Komponenten. Zum einen die Master Boot Routine, welche whrend des Starts des Computers ausgefhrt wird, und zum anderen die Partitionstabelle. Damit der MBR eindeutig identifiziert werden kann, beinhalten die letzen zwei Bytes die Signatur AA55h. Abschnitt Master Boot Routine Fehlermeldungen unbelegt Partitionstabelle Offset 0 139 219 446 Lnge Beschreibung (Byte) 139 80 227 64 Prft den Datentrger, ermittelt die aktive Partition und ldt deren Bootsektor. Beinhaltet alle Fehlermeldungen, wie zum Beispiel "Ungltige Partitionstabelle", "Fehler beim Laden des Betriebssystems" oder "Fehlendes Betriebssystem". Wird momentan nicht genutzt. Beinhaltet Informationen fr 4 Partitionen.

Signatur 510 2 AA55h fr die eindeutige Identifizierung des Master Boot Record. Tabelle 1 Aufbau des Master Boot Records

2.3.2 Partitionen (primre Partitionen)


Um auf einer Festplatte mehrere unterschiedliche Dateisysteme und dadurch auch mehrere unterschiedliche Betriebssysteme parallel verwalten zu knnen, wurden die Festplatten in logische Teile eingeteilt, den so genannten Partitionen. Alle Informationen ber diese Partitionen werden im MBR in der Partitionstabelle gespeichert. Die Partitionstabelle des MBR bietet Platz fr 4 Partitionseintrge zu je 16 Byte.

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

Tabelle 3 Partitionstypen (Auszug)

2.3.3 Erweiterte/Logische Partitionen


Mit dem Anstieg der Festplattenkapazitten stieg auch der Bedarf an Partitionen. Die vier vom Master Boot Record untersttzten Partitionen reichten oft nicht aus, um Festplatten sinnvoll zu verwalten. Dies fhrte zur Einfhrung von erweiterten und logischen Partitionen. Eine erweiterte Partition beginnt nicht wie eine primre Partition mit einem Bootsektor, sondern mit einer weiteren Partitionstabelle. Diese Partitionstabelle, auch "erweiterte Partitionstabelle" genannt, hat den gleichen Aufbau wie die des Master Boot Records, aber nur zwei Partitionseintrge. Ein Eintrag verweist auf eine nicht erweiterte Partition und der andere wiederum auf eine erweiterte Partition. Dadurch bilden alle erweiterte Partitionstabellen eine einfache verketten Liste. Diese Liste darf dabei aber keine Ringliste darstellen.

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.

2.3.4 Der Bootsektor


Der Bootsektor ist der erste Sektor einer primren Partition oder logischen Partition. Erweiterte Partitionen enthalten keinen Bootsektor, da ihr erster Sektor von der erweiterten Partitionstabelle belegt ist. Der Bootsektor enthlt eine Tabelle mit den wichtigsten Eigenschaften der Partition und des Laufwerks. Dieser Tabelle schliet sich der eigentliche Bootcode an, welcher das Betriebssystem ldt. Eintrag Lnge Beschreibung Sprungbefehl 3 Sprungbefehl zur Bootroutine in Maschinensprache. Dieser Teil des Bootsektors ist abhngig vom verwendeten Betriebssystem und beinhaltet z.B. den Betriebssystemnamen, den Partitionsnamen und den Typ des Dateisystems. Betriebssystem spezifische X Eintrge Bootroutine max. 512-3-X

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.

3.2.1 Startvorgang mit einem Bootmanager in einer primren Partition


Der Start mit einem Bootmanager, der in einer primren Partition installiert wurde, beginnt genau so wie der normale Start ohne Bootmanager. Das BIOS ldt nach seinem POST die Master Boot Routine, welche wiederum die aktive Partition sucht und den Bootsektor dieser Partition ldt. Doch im Bootsektor befindet sich jetzt nicht das Startprogramm fr das Betriebssystem, sondern der erste Teil des Bootmanagers. Bootmanager sind oft in zwei oder mehrere Teile aufgeteilt, da im Bootsektor nur weniger als 512Byte fr den Bootcode zur Verfgung stehen. Der Bootmanager zeigt nun das Startmen mit allen installierten und startfhigen Partitionen und wartet auf die Auswahl einer Partition durch den Benutzer. Hat der Nutzer seine Wahl getroffen, so ldt der Bootmanager den Bootsektor der ausgewhlten Partition und bringt diesen zur Ausfhrung, genau wie dies die Master Boot Routine getan htte.

3.2.2 Startvorgang mit einem Bootmanager in dem MBR


Beim Start mit einem Bootmanager, der im MBR installiert wurde, ldt das BIOS nach seinem POST den MBR, welcher aber jetzt anstatt der Master Boot Routine den ersten Teil des Bootmanagers beinhaltet und bringt diesen zur Ausfhrung. Der Rest erfolgt genau wie beim Start aus einer primren Partition heraus. Der Bootmanager ldt nun seine restlichen Teile nach und zeigt sein Bootmen. Danach wartet er auf die Auswahl einer Partition durch den Nutzer und bringt daraufhin die ausgewhlte Partition zur Ausfhrung, genau wie dies die Master Boot Routine getan htte.

3.3 Start mittels GRUB


Startet man einen Computer mit dem GRUB als Bootmanager, so ist der erste Teil des Startvorganges dem Chainloading identisch. Das BIOS macht natrlich genau so seinen POST und ldt anschlieend den MBR. Je nachdem, ob der GRUB am MBR oder in einer primren Partition installiert ist, wird dieser geladen. Ist ein Bootmen definiert, so wird dies geladen und angezeigt, ansonsten erscheint die GRUB Shell. Bis hierher ist der Startvorgang identisch dem Chainloading, doch jetzt kommt der Unterschied, kennt bzw. untersttzt der GRUB das zu ladende Betriebssystem, so ldt er dessen Kernel mit samt allen Parametern selbst und fhrt nicht den Bootcode des Bootsektors der aktiven Partition aus. Dadurch ist es z.B. mglich, mehrere Bootmeneintrge fr ein Betriebssystem zu erstellen, welche dann wiederum unterschiedliche Kernel starten knnten. Alle anderen Betriebssysteme, die nicht direkt untersttzt werden, wie z.B. alle Windows Versionen, OS2 und BeOS, werden mittels Chainloading geladen.

You might also like