Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

0700: Der Unterschied zwischen Masterbootsektor und Bootsektor

Sie benötigen jetzt etwas PC-Grundwissen, denn alle weiteren Module werden darauf aufbauen. Es geht um die Frage: Was ist der Unterschied zwischen einem Masterbootsektor und einem Bootsektor? Zunächst müssen wir verstehen, was eine Partition ist. Also:

1. Was ist eine Partition?

Um diese Frage beantworten zu können, muss ich noch ein weiteres mal ausholen. Damit Sie sich besser vorstellen können, was eine Partition ist, zeige ich Ihnen zunächst, wie Linux mit Datenträgern allgemein umgeht.

1.1. Datenträger aus der Sicht von Linux

Linux vergibt jedem Datenträger eine Bezeichnung, damit es die Datenträger mehr oder weniger eindeutig voneinander unterscheiden kann.

Als das noch heute anzutreffende System der Datenträgerbezeichnungen erfunden wurde, unterschied man hauptsächlich zwischen 2 verschiedenen Festplattentypen:

  • IDE-Festplatten: Auch ATA- oder PATA-Festplatten genannt. Festplatten dieses Typs nannte man "hard disk". Die Abkürzung lautete "hd".
  • SCSI-Festplatten: Festplatten dieses Typs nannte man "scsi disk". Die Abkürzung lautete "sd".

Die meisten Datenträgertypen oder Übertragungsprotokolle, die seitdem in die Welt der Hardware hinzugekommen sind, werden heute von Linux wie SCSI-Festplatten behandelt. Dazu gehören unter anderem folgende Datenträgertypen und Übertragungsprotokolle:

Auch wenn diese modernen Erscheinungen der Hardware-Welt nichts mit SCSI zu tun haben, betrachtet Linux sie alle einheitlich als sogenannte "scsi disks".

Soweit zum theoretischen Unterbau. Wie sieht das jetzt praktisch in einem Linux-System aus? Also:

  • Die erste Festplatte vom Typ "hard disk" heißt "/dev/hda". Die zweite heißt "/dev/hdb", die dritte dann "/dev/hdc". So geht das weiter, bis die Grenzen der Hardware oder die Grenzen des Alphabets erreicht sind (hier ist die Grenze meist "/dev/hdd").
  • Die erste Festplatte vom Typ "scsi disk" heißt "/dev/sda". Die zweite heißt "/dev/sdb", und auch hier geht das Ganze weiter, bis die Grenzen entweder der Hardware oder des Alphabets erreicht sind (hier ist die Grenze eher "/dev/sdz", vielleicht liegt sie sogar bei "/dev/sdzz", wer das genauer wissen will, möge bitte entsprechende Nachforschungen anstellen).

    Was die Abkürzung "sd" (z.B. in "/dev/sda") betrifft, so wird sie in letzter Zeit vermehrt auch als "Serial Disk" interpretiert.

  • Bei Disketten hießen die Geräte früher "/dev/fd0", "/dev/fd1" und so weiter. Aber, wer baut heutzutage noch Diskettenlaufwerke in seine Rechner ein? :-)

Geräte vom Typ "hard disk" sind meistens die im Aussterben befindlichen IDE-Festplatten und IDE-CD-ROM- oder IDE-DVD-Geräte, die nach dem ATA- (bzw. neudeutsch PATA-) Standard arbeiten. Alles andere ist vom Typ "scsi disk": Alte SCSI-Geräte sowieso (kauft sich heute eh kein Mensch mehr), die neuen SATA- und eSATA-Datenträger und -Geräte, USB-Geräte (Sticks, Festplatten, ...), Firewire-Geräte und vieles mehr.

1.2. Partitionen allgemein

Zurück zur Frage: Was ist eine Partition?

Viele Datenträger (Diskette, Festplatte, USB-Stick, ...) können partitioniert werden, damit die Partitionen dieser Datenträger logisch für den Benutzer wie mehrere Datenträger erscheinen. Beispiel: Sie nehmen eine 90 GB große Festplatte und unterteilen Sie in 3 Partitionen mit 30 GB pro Partition. Eine solche Partition sieht logisch ungefähr wie eine Festplatte aus. In dieser Partition speichern Sie Verzeichnisse und Dateien.

Sie könnten zwar auf der 90-GB-Festplatte auch ohne Partition Verzeichnisse und Dateien speichern, aber das ist nicht üblich. Eine Partition dient als eine Art Container für Verzeichnisse und Dateien. Wenn Sie auf einer 90-GB-Festplatte keine drei 30-GB-Partitionen benötigen, sondern lieber 90 GB als Ganzes für Verzeichnisse und Dateien haben wollen, dann sollten Sie genau eine 90 GB große Partition auf dieser Festplatte erstellen.

1.3. Partitionen aus der Sicht von Linux

Da heutzutage parallele Geräte von seriellen Geräten verdrängt werden (der PATA-Standard wird durch den SATA-Standard abgelöst), wird Ihre erste Festplatte im Rechner mit sehr hoher Wahrscheinlichkeit heute "/dev/sda" heißen. Wenn Sie diese Festplatte partitionieren, dann heißt die erste primäre Partition "/dev/sda1", die zweite entsprechend "/dev/sda2" und so weiter. Es gibt maximal 4 primäre Partitionen, dann ist Schluss.

Wenn Sie auf der Festplatte mehr als nur 4 Partitionen einrichten wollen, dann müssen Sie auf mindestens eine der maximal 4 möglichen primären Partitionen verzichten. Die Tabelleneinträge dieser einen primären Partition nutzt das Protokoll dann dafür, dass Sie beliebig viele weitere logische Partitionen definieren können.

Die erste logische Partition dieser Festplatte heißt dann immer "/dev/sda5", die zweite dann entsprechend "/dev/sda6" und so weiter. Die Zählung beginnt hier immer bei 5. An der Nummer der Partition können Sie also erkennen, ob Sie es hier mit einer primären oder mit einer logischen Partition zu tun haben.

Die Partitionen einer Festplatte können Sie in das Dateisystem des Betriebssystems hineinmounten, um dann auf den Partitionen Verzeichnisse und Dateien speichern zu können.

1.4. Disketten

Bei Disketten waren Partitionen unüblich. Die Organisationsebene "Partition" wurde offenbar einfach weggelassen. An der Stelle der Partition wurden gleich die Verzeichnisse und die Dateien gespeichert. Deshalb wurde anstelle des Buchstabens für die Identifizierung von Disketten gleich eine Zahl verwendet: "/dev/fd0", "/dev/fd1", ...

Dieser Umstand ist für das vollständige Verstehen von USB-Sticks später noch von Bedeutung.

1.5. Zusammenfassung

Sie wissen jetzt ungefähr, was eine Partition ist. Wenn das Thema für Sie immer noch unklar ist, dann lesen Sie bitte in der Wikipedia nach, um das Thema besser zu verstehen. Zurück zur Frage: Was ist der Unterschied zwischen einem Masterbootsektor und einem Bootsektor? Wir nähern uns der Antwort dieser Frage nun, indem wir mal betrachten, was passiert, wenn ein PC bootet:

2. Ein PC bootet

Was passiert, wenn jemand einen PC frisch einschaltet oder die Reset-Taste drückt? Folgendes:

  1. Der Rechner sucht im BIOS nach dem ersten Maschinenbefehl, den er ausführen kann. Im BIOS steht meistens sinngemäß: "Suche nach einem Bootmedium um von ihm weitere Instruktionen zu erhalten!"
  2. Der Rechner sucht nun also nach der erstbesten Diskette oder Festplatte, die ihm begegnet. Bei modernen Rechnern können Sie als Benutzer diesen Prozess auch beeinflussen, indem Sie eine Tastenkombination drücken, damit der Rechner Ihnen ein Bootmenü anbietet, welches alle aktuell dem Rechner bekannten Datenträger auflistet, so dass Sie selbst wählen können, von welchem Datenträger der Rechner die nächsten Instruktionen empfangen soll.
  3. Wenn der Rechner auf die Weise einen Datenträger (Diskette, Festplatte, USB-Stick, CD-ROM, ...) gefunden hat, dann liest er dort in einem genau festgelegten Adressbereich die dort befindlichen Maschinenbefehle ein und führt sie aus. Dieser festgelegte Bereich auf dem Datenträger hat viele Namen. Er heißt je nach Sprache oder je nachdem, ob abgekürzt wird oder nicht, so:
    • Masterbootsektor
    • Master Boot Record
    • MBR

    Wenn die Befehle, die dort gefunden wurden, unsinnig sind (z.B., weil dort willkürliche Zahlen stehen), dann stürzt der Rechner jetzt ab (das heißt, er macht ganz zufällig irgendwelche wilden Dinge; kein Mensch versteht, was genau er da macht, aber der Rechner lässt sich nicht mehr steuern). Um den Rechner von seiner Reise in die Welt der Zufallsbefehle zu befreien, kann der Mensch jetzt Reset drücken, und das Spiel beginnt von vorn, sofern er zwischenzeitlich nichts an den äußeren Umständen geändert hat.

    Wenn im MBR ein Bootsektor-Virus steht, dann führt der Rechner den Virus aus und macht entsprechend irgendetwas kaputt ;-)

    Bei vielen Rechnern steht im MBR, dass der Rechner ein Betriebssystem booten soll. Dann führt der Rechner entsprechend die dort befindlichen Befehle aus und bootet ein Betriebssystem.

    Im MBR kann auch ein Bootmenü hinterlegt sein, das dem Benutzer die Möglichkeit gibt, eins von vielen auf dem Rechner installierten Betriebssystemen zu booten.

    Es gibt aber noch zwei weitere Möglichkeiten:

    • A) Im MBR steht, dass der Rechner in dem Bootsektor einer Partition nachsehen soll, um dort weitere Befehle einzulesen.
    • B) Im MBR befindet sich ein Bootmenü und der Anwender wählt einen Menüpunkt aus, in dem steht, dass der Rechner in dem Bootsektor einer Partition nachsehen soll, um dort weitere Befehle einzulesen.

    Und da haben wir auch schon den Unterschied:

    • Einem Datenträger ist in der Regel ein Masterbootsektor zugeordnet.
    • Jeder Partition des Datenträger ist zusätzlich auch noch ein Bootsektor zugeordnet.

    Was passiert also, wenn der Rechner im Bootsektor einer Partition nachsieht, um dort weitere Befehle in den Speicher zu lesen?

  4. Im Prinzip kann der Rechner jetzt das gleiche machen, was er auch schon konnte, als er im MBR die Instruktionen gelesen und ausgeführt hat. Er kann also wieder ein Betriebssystem booten, ein Bootmenü ausführen oder in einen anderen Bootsektor springen.

Allgemein gesagt: Von jedem Bootsektor aus (ob hart verdrahtet oder von einem Bootmenü gesteuert ist dabei egal) ist ein Betriebssystem bootbar oder ein anderer Bootsektor erreichbar. Es kann der Bootsektor einer beliebigen Partition oder sogar der Bootsektor eines beliebigen Datenträgers angesprungen werden.

Im Klartext heißt das auch, dass Sie sowohl in MBRs als auch in den Bootsektoren der Partitionen Bootmenüs hinterlegen können, und diese so konfigurieren können, dass Sie zwischen den Bootmenüs beliebig oft hin- und herspringen können, um dann irgendwann doch mal ein Betriebssystem zu booten.

3. Klare Begriffsdefinition

Fassen wir zusammen:

  • Ein Masterbootsektor ist einem Datenträger zugeordnet.
  • Ein Bootsektor ist einer Partition eines Datenträgers zugeordnet.

4. Ausnahmen

Da Disketten keine Partitionen haben, fällt auch bei den Bootsektoren eine Organisationsebene weg. Disketten haben nur einen Bootsektor, der dem Datenträger zugeordnet ist. Bei Disketten gibt es keinen "Masterbootsektor".

5. USB-Sticks booten

Bei vielen Rechnern ist das BIOS so voreingestellt, dass der Rechner einen USB-Stick wie eine Diskette behandelt, also vom Bootsektor der ersten Partition booten will, statt vom Masterbootsektor des gesamten Datenträgers. Wenn also der USB-Stick im MBR ein Bootmenü enthält, dann kann es passieren, dass der Rechner das Bootmenü ignoriert und stattdessen gleich die erste Partition bootet.

Wenn Sie Glück haben, dann können Sie im BIOS des Rechners einstellen, dass das BIOS USB-Sticks nicht wie Disketten, sondern wie Festplatten behandeln soll. Dann bootet der Rechner auch bei USB-Sticks vom MBR statt vom Bootsektor der ersten Partition.

Auf einem Barebone-System (sowohl "Shuttle SN68PTG5" als auch "Shuttle SN68PTG6-Deluxe") können Sie die Sichtweise des BIOS auf einen angesteckten USB-Stick (hier beispielhaft an einem "1GB SAMSUNG Flash Memory - Mobile Storage" gezeigt) wie folgt ändern:

  • Reboot
  • Mit der "Entfernen-Taste" das BIOS betreten

Im BIOS dann:

  • Integrated Peripherals
  • USB Device Setting
  • Samsung Mighty Drive PMAP
    • Wenn Sie "HDD mode" wählen, dann behandelt der Rechner diesen Stick wie eine Festplatte.
    • Wenn Sie "FDD mode" wählen, dann behandelt der Rechner diesen Stick wie eine Diskette.
  • Drücken Sie "F10", um das BIOS zu verlassen und Ihre Einstellungen zu speichern.