Neue
Homepage:
LAB1.de hat einen neuen Namen:
Unsere Tools werden jetzt unter der Adresse
www.ToolsAndMore.de
weitergeführt - klicken Sie bitte den nachstehenden Taster, um dort die
gesuchte Seite in neuester Version zu besuchen.
|
Hintergrundartikel:
Systeme gekonnt partitionieren
Mehrere Systeme auf einem PC? Mit Tools wie dem Boot-Manager WWBMU ist das
kein Problem! Allerdings sind dabei ein paar wenig bekannte „Vorfahrtsregeln“ bei
der Partitionierung zu beachten - sonst bleibt der Bildschirm dunkel.
Wissen Sie, wie viel ein GigaByte Plattenspeicher zur Zeit kostet? Kaum 3 Euro
- Tendenz weiter fallend! Im Gegenzug klettern die Kapazitäten der Einstiegsmodelle
unaufhaltsam. Bekam man vor eine Jahr für 200 Euro gerade mal um die 20 GByte,
so sind es jetzt schon 60 GByte und mehr.
Doch bei aller Freude über diese "unendlichen Weiten" stellt sich irgendwann
die Frage, was man damit überhaupt will? Denn selbst Windows inklusive Office XP
in voller Takelage belegen höchstens "ein paar" Gbyte. Den übrigen Speicher wird
der Normalanwender wohl kaum allein mit selbstverfassten Dokumenten füllen können
- von bestimmten Audio- und Videodateien einmal abgesehen.
Den Platz sinnvoll nutzen
Die überschüssigen Kapazitäten können aber auch zu wirklich sinnvollen Dingen
eingesetzt werden. Nimmt man etwa einen Boot-Manager hinzu, so kann man beispielsweise
mehrere Betriebssysteme auf ein und dem selben System nebeneinander einrichten.
Wer zum Beispiel einen PC zusammen mit anderen nutzt, kann auf diese Weise jedem
Anwender eine eigene isolierte Betriebssysteminstallation zuweisen: Ein Windows
für Junior zum Spielen, eines für Vater zum Schreiben und ein weiteres für Mutters
Einkaufsbummel im Internet - alles sauber voneinander getrennt. Denkbar ist aber
auch ein PC, auf dem neben DOS, Windows 98 und NT auch noch Linux und sonstige
Betriebssystem zu finden sind.
Auf
ein und dem selben PC können problemlos mehrere Betriebssysteme parallel eingerichtet
werden. Man braucht dazu nur einen Boot-Manager und etwas Know-How
Voraussetzung für ein unbeschwertes Nebeneinander der Systeme ist - neben dem
schon genannten Boot-Manager - ein gerüttet Maß an Wissen über die Historie der
einzelnen Betriebssysteme. Denn einige von ihnen schleppen seit Jahr und Tag Kinderkrankeiten
mit sich, die sich inzwischen mehr und mehr zu einer Altersschwäche auswachsen
- und zwar in dem Maße, indem die Hardware weiter wächst. Ein Beispiel: Zwar lässt
sich hinter einer 2-GByte-DOS-Partition locker eine weitere mit Windows 98 einrichten
- aber nicht umgekehrt!
Die Gründe für solch abstruses Verhalten liegen ähnlich wie die, für das Jahr-2000-Problem:
es wurde einfach zu kurz gedacht. Analysiert man den Code in so manchem Bootsektor,
so kann man oftmals nur noch die Hände über dem Kopf zusammenschlagen. Zwar könnte
man hier als Einwand gelten lassen, dass die Zeiten von DOS und Co. nun endgültig
vorüber sind (was so nicht stimmt). Doch die gleichen oben genannten Probleme finden
sich auch noch - man glaubt es kaum - bei Windows NT 4.0.
Dennoch: Wer um die jeweiligen Wehwehchen der einzelnen Systeme weiß, kann auf
seinem PC problemlos eine Handvoll Betriebssysteme und mehr einrichten. Damit dies
auch wirklich gelingt, machen wir zunächst einen Abstecher in die Theorie.
Was passiert beim Booten?
Der Start (Boot-Vorgang) eines Betriebssystem erfolgt in mehreren, dabei immer
größer werdenden Schritten:
Nach dem Einschalten des PCs oder einem Reset laufen zunächst verschiedene Tests
und Konfigurationen über das System-BIOS ab. Sind diese abgeschlossen, geht es
an den Start des Betriebssystems vom Datenträger. Dieser wird über BIOS-Interrupt
19h initiiert.
Bei Starts von Diskette wird dabei versucht, den ersten Sektor der Spur 0 mit
Kopf 0 - den sogenannten Boot-Sektor - von der Diskette in Laufwerk A: einzulesen.
Der Boot-Sektor enthält neben einigen Angaben über das Diskettenformat auch Boot-Code,
anhand dessen der Startprozess des jeweiligen Betriebssystems fortgesetzt wird.
Der Boot-Sektor wird an die Hauptspeicheradresse 0000h:7c00h eingelesen und der
Code an gleicher Stelle gestartet. Da der Boot-Sektor nur 512 Byte groß ist, kann
der enthaltene Code verständlicherweise nur rudimentäre Funktionen enthalten. Je
nach Betriebssystem werden von ihm nun weitere, mächtigere Boot-Komponenten nachgeladen,
bei DOS und Windows 9x beispielsweise die Kernel-Datei io.sys, bei Windows NT dagegen
ntldr, die wiederum als Sprungbrett für den NT-Kern dient.
Der Start von Platte im Detail
Doch zurück zum eigentlichen Start. Misslingt das Booten einer Floppy, da zum
Beispiel keine Diskette einliegt oder diese Funktion per BIOS-Setup gesperrt wurde,
so wird das gleiche mit der ersten Festplatte wiederholt - allerdings mit einem
wichtigem Unterschied. Bei Festplatten wird nicht sofort der betriebssystemspezifische
Boot-Sektor geladen, sondern ein dem übergestellter Bereich namens Master Boot
Record (MBR). Er wird ebenfalls an der Adresse 0000h:7c00h abgelegt und ausgeführt.
Er enthält neben der Partitionstabelle der betreffenden Festplatte ebenfalls Boot-Code,
der allerdings eine andere Aufgabe als im Boot-Sektor hat. Der MBR-Code untersucht
die maximal 4 Einträge der Partitionstabelle nach der als aktiv markierten Partition.
Wird er fündig, so verschiebt sich der Code zunächst im Hauptspeicher auf die Adresse
0000h:6c00h. Dadurch wird an 0000h:7c00h Platz gemacht für den ersten Sektor dieser
Partition (beim ersten Partitionstabelleneintrag ist dies Kopf 1, Spur 0, Sektor
1 - bei allen anderen Kopf 0, Spur 0, Sektor 1), den eigentlichen Boot-Sektor des
darauf installierten Betriebssystems. Anschließend wird der Start wie beim Floppy-Boot
fortgesetzt. Gibt es jedoch keine aktive Partition, so erhält man die berühmt,
berüchtigte Meldung "Betriebssystem fehlt".
Der MBR ist also nichts anderes als ein Mini-Boot-Manager, der für das Laden
des Boot-Sektor der aktiven Partition dient. Den Wechsel von einem Betriebssystem
zu einem anderen kann man ganz einfach mit fdisk vollziehen: Man setzt einfach
das Aktiv-Flag auf eine andere Partition um, und beim nächsten Start wählt der
MBR diese, statt der vorigen.
Die allgemeine 8-GByte-Grenze
Um es nochmals deutlich zu sagen: Wärend des Bootens herrscht im PC absolute
"Dunkelheit". Es gibt keine hilfreichen Betriebssystemkomponenten, keine Treiber
- nur das System-BIOS und gegebenenfalls entsprechende Erweiterungen auf Zusatzkarten
wie SCSI-Adaptern. Das bedeutet für den Code im MBR, dass er zum Laden des gewünschten
Boot-Sektors allein auf den für Datenträgerzugriffe zuständigen Interrupt 13h angewiesen
ist. Will man nun einen PC mit mehreren Betriebssystemen ausstatten, so kann man
daher die einzelnen Partitionen nicht uneingeschränkt an beliebiger Stelle platzieren.
Ein erstes Hindernis stellt die sogenannte 8-GByte-Grenze dar. Dies begründet
sich darin, dass die Partitionstabelleneinträge in CHS-Manier (Cylinder, Head,
Sector) gehalten sind - die Anfangs- und Endwerte also in Zylinder, Kopf und Sektor
ausgedrückt werden müssen. Die hierfür maximal verwaltbaren Werte liegen bei 1024
Zylindern (0 bis 1023), 255 Köpfen (0 bis 254) sowie 63 Sektoren (1 bis 63). Der
letzte auf diese Weise ansprechbare Sektor liegt also bei 16450560 (1024 x 255
x 63), was etwa 7,844 GByte ergibt. Boot-Sektoren, die dahinter liegen, können
vom MBR-Code also nicht geladen werden und somit die zugehörigen Betriebssysteme
nicht starten.

Als der Master Boot Record und die darin enthaltene Partitionstabelle entworfen
wurden, waren Gbyte-grosse Platten noch unvorstellbar - zum Leidwesen heutiger
Anwender
Hier sei allerdings angemerkt, dass diese Barriere nur deshalb eine Rolle spielt,
weil wieder einmal Rücksicht auf Abwärtskompatibilitäten genommen werden muss.
Denn die Partitionstabelle enthält auch zwei 32-Bit-Felder, die die Anzahl der
Sektoren vor dem Partitionsbeginn und innerhalb der Partition beschreiben. Deren
Limit liegt somit bei 2 Tbyte! Da die Interrupt 13h-Extensions direkt LBA-Adressierungen
unterstützen, könnte man also zumindest theoretisch genauso gut Sektoren oberhalb
der 8-GByte-Grenze einlesen - doch dann müsste auch der Code in den Boot-Sektoren
mitspielen, vom Betriebssystem selbst ganz zu schweigen.
Ist Ihnen eigentlich aufgefallen, dass seltsamerweise nur maximal 255 Köpfe statt
256 eingetragen werden können? Das ist eine erzwungene Verbeugung vor den FAT-Partitionen
von DOS und Windows. Deren Boot-Sektor enthält nämlich ebenfalls ein Feld, in dem
die Anzahl der Köpfe eingetragen werden muss. Doch leider handelt es sich aus Kompatibilitätsgründen
lediglich um ein Byte - und darin hat der Wert 256 eben keinen Platz.
Die Standardfunktionen des Interrupt 13h haben übrigens die gleiche Enstehungsgeschichte
wie die unterdimensionierten Partitionseinträge. Auch hierfür gelten also die oben
genannte Maximalwerte, weshalb man mit einem veralteten System-BIOS ohne Interrupt
13h-Extensions maximal nur rund 8 GByte einer Festplatte ansprechen kann.
Beschränkungen bei DOS
Die 8-GByte-Grenze stellt, im Vergleich zu den Problemen der einzelnen Betriebssystem
selbst, allerdings noch das kleinste Übel dar. Wie bereits eingangs erwähnt, kann
DOS nur innerhalb der ersten 2 GByte einer Festplatte gestartet werden. Liegt der
betreffende Boot-Sektor höher, so kann der MBR zwar problemlos darauf zugreifen.
Doch der Startcode im Boot-Sektor selbst verrechnet sich: Um die Position der Kerneldatei
io.sys zu ermitteln, muss der Boot-Code auf die FAT zugreifen. Dabei kommt es dann
zu einem Registerüberlauf, falls die zugehörigen Cluster (die io.sys enthalten)
nicht unterhalb von 2 GByte liegen - anstatt beispielsweise auf eine Position bei
3 GByte zuzugreifen, werden Daten bei 1 GByte gelesen und ausgeführt, wodurch es
zwangsläufig zum Absturz kommt.
Da DOS zu den kritischsten Fällen zählt, sollte man dieses Betriebssystem möglichst
nah an den Festplattenanfang legen. Sollte der Platz innerhalb der ersten 2 GByte
nicht ausreichen (etwa weil dort noch eine zweite DOS-Partition abgelegt werden
soll), so kann man sich durch Auslagerung behelfen: In der zu bootenden primären
DOS-Partition legt man nur die für den tatsächlichen Start relevanten Dateien ab.
Das sind io.sys, msdos.sys, command.com sowie config.sys und autoexec.bat, die
zusammen kaum 100 KByte benötigen. Die übrigen System und Applikationsdateien kann
man problemlos in einem logischen Laufwerk einer erweiterte Partition unterbringen
(mit entsprechenden Verweisen in config.sys und autoexec.bat). Dieses kann durchaus
oberhalb von 2 GByte liegen. Die beinhaltende erweiterte Partition darf allerdings
die 8-Gbyte-Grenze nicht überschreiten, da sonst die logischen Laufwerke darin
nicht erkannt werden.
Probleme bei Windows NT 4.0
Auf ähnliche Probleme trifft man auch bei Windows NT 4.0. Sofern das Betriebssystem
auf einer FAT-Partition installiert werden soll, gelten die gleichen Beschränkungen
wie für DOS - allerdings auch die gleichen Lösungsansätze: Kritisch ist nur der
Start des NT-Loaders ntldr. Das Betriebssystem selbst kann sich dagegen auf einer
beliebigen Partition unterhalb von 8 GByte befinden. Für die primäre Ministartpartition
werden allein die Dateien ntldr, ntdetect sowie boot.ini benötigt, die zusammen
kaum 200 KByte auf die Waage bringen. Eine leichte Linderung bringt übrigens die
Formatierung der NT-Startpartition mit NTFS statt FAT. Dann muss der Partitionanfang
nicht unterhalb von 2, sondern immerhin 4 GByte liegen.
Kaum Einschränkungen bei Windows 95/98
Die oben genannte Boot-Probleme der letzten offiziellen DOS-Version wurden
in Windows 95 (DOS 7.0) vollständig gelöst. Dieses Betriebssystem und auch Windows
98 kann an beliebiger Stelle innerhalb der ersten 8 GByte einer Festplatte installiert
werden. Bei Partitionen, die diese Grenze überschreiten, muss lediglich sichergestellt
werden, dass die Datei io.sys noch im vorderen Teil liegt. Eine erweiterte Partition
darf unter Windows 9x die 8-GByte-Grenze überschreiten und auch größer als 8 GByte
sein. Dies gilt sowohl für das Dateisystem FAT-12/16 (maximale Größe hier 32 MByte
bzw. 2 GByte), als auch FAT-32.
Wichtig: Bitte beachten Sie aber, dass sich beim Betriebssystemmix die Plattenorganisation
immer nach dem schwächsten Glied richten muss. Angenommen, Sie wollen beispielsweise
DOS mit Windows 98 einsetzen und beide Betriebssysteme sollen dabei auf logische
Laufwerke in einer erweiterten Partition zugreifen können. Dann muss sich deren
Dimensionierung und Position zwangsläufig nach den begrenzteren Fähigkeiten von
DOS richten und nicht nach den Möglichkeiten von Windows 98.
OS/2 und Linux mit altem LILO
Bei den drei von OS/2 unterstützten Dateisystemen FAT-12/16, FAT-32 und HPFS
ist lediglich darauf zu achten, dass sich die Boot-Dateien unterhalb von 8 GByte
befinden.
Ähnliche Anforderungen gelten für Linux. Falls der verwendete Linux-Loader LILO
den Parameter lba noch nicht kennt, so ist er auf die Standard-Funktionen
von Interrupt 13h angewiesen. Folgende Dateien und Bereiche müssen daher unterhalb
der 8-GByte-Grenze angesiedelt werden:
- Der Boot-Sektor, in den LILO installiert wurde,
- alle Dateien im Verzeichnis /boot (bzw. dem in /etc/lilo.conf spezifizierten
Ort),
- die Linux-Kernel, die LILO booten soll,
- sowie gegebenenfalls die Boot-Sektoren anderer Betriebssysteme, die LILO starten
soll.
Windows 2000, Windows ME und Linux mit neuem LILO
Alle drei Systeme können problemlos oberhalb von 8 GB installiert und gestartet
werden (Auch von WWBMU!).
|
|
FAT 16
|
FAT 32
|
NTFS
|
HPFS
|
Linux
|
|
MS-DOS 6.22 *
|
Boot-Sektor < 2 GByte
|
-
|
-
|
-
|
-
|
|
Windows 95 und 95A
|
Boot-Sektor < 8 GByte
|
-
|
-
|
-
|
-
|
|
Windows 95B und ff.
|
Boot-Sektor < 8 GByte
|
Boot-Sektor < 8 GByte
|
-
|
-
|
-
|
|
Windows 98
|
Boot-Sektor < 8 GByte
|
Boot-Sektor < 8 GByte
|
-
|
-
|
-
|
|
Windows NT 3.x und 4.0
|
Boot-Sektor < 2 GByte *
|
-
|
Boot-Sektor < 4 GByte max. **
|
-
|
-
|
|
Windows 2000
|
Boot-Sektor < 8 GByte
|
Kein Limit
|
Kein Limit
|
-
|
-
|
|
Windows ME
|
Boot-Sektor < 8 GByte
|
Kein Limit
|
Kein Limit
|
-
|
-
|
|
OS/2
|
Boot-Sektor < 8 GByte
|
-
|
-
|
Boot-Sektor < 8 Gbyte
|
-
|
|
Linux (LILO ohne "lba")
|
Boot-Sektor < 8 GByte
|
-
|
-
|
-
|
Boot-Sektor < 8 GByte
|
|
Linux (LILO mit "lba")
|
Boot-Sektor < 8 GByte
|
-
|
-
|
-
|
Kein Limit
|
* Erweiterte Partitionen müssen innerhalb 8 Gbyte
liegen
** Größe 4 bis 8 GByte
(je nach Anfangsposition)
Diese Tabelle zeigt eine Aufstellung der Maximalpositionen
der einzelnen Betriebssystem unter Verwendung der jeweiligen unterstützten Dateisysteme.
Weitere Möglichkeiten
Mit dem Boot-Manager WWBMU
können bekanntlich bis zu vier primäre Systempartitionen gestartet werden - bzw.
drei bei Verwendung einer erweiterten Partition auf der ersten Festplatte. Das
muss aber nicht bedeuten, dass lediglich drei bzw. vier Betriebssysteme installiert
werden können. Unter Zuhilfenahme der Boot-Optionen die beispielsweise in Windows
9x, NT oder auch Linux schon enthalten sind, können recht komplexe Boot-Varianten
aufgebaut werden.
Wenn man zum Beispiel die NT-Startdateien in eine bestehende DOS-Partition installiert,
das System selbst aber in ein logisches Laufwerk, so kann man über eine einzige
primäre Partition DOS und mehrere NT-Varianten starten. Ähnliches gilt für Windows
9x und natürlich auch Linux.
|