Danke, Thilo!
...

Partitionieren für mehrere Betriebssysteme

Dieses Dokument enthält Anleitung zur Partionierung der Festplatte für den Einsatz mehrerer Betriebssysteme unter Verwendung des NT-Bootloaders.

Beschreibung der Problematik

Das Einrichten mehrerer Betriebssysteme auf einem PC ist durch die Besonderheiten der einzelnen Systeme nicht immer trivial und wird durch einige Beschränkungen (1024-Zylinder-Grenze) zusätzlich erschwert. Nach einigen Experimenten glaube ich, eine zuverlässige Methode zum Einteilen der Festplatten zur Installation mehrerer Betriebssysteme gefunden zu haben.

Dabei ist es weitgehend egal, ob nur Windows 95/98 und Windows NT installiert werden sollen, oder ob auch noch Linux oder bspw. Windows 2000 hinzukommen. Ungemein hilfreich ist ein leistungsfähiges Partitionierungswerkzeug wie Partition Magic, das sich bei mir in der Praxis immer gut bewährt hat. Partition Magic ermöglicht es, Partitionen für alle gängigen Betriebssysteme anzulegen; es unterstützt bspw. Operationen mit FAT16-, FAT32-, NTFS-, HPFS- und Linux-Partitionen. Man kann dann auf das fdisk-Programm von Linux verzichten, das beim Anlegen von logischen Laufwerken manchmal die physische Reihenfolge nicht beachtet. Utilities für DOS und Windows kommen damit nicht zurecht und melden eine ungültige Partitionierung. Auch Partition Magic kann dies nicht reparieren. Die Partionierung sollte daher am besten komplett mit einem System vorgenommen werden, idealerweise mit einem Tool wie Partition Magic.

Allgemeine Vorgehensweise

Zum Booten eines Betriebssystems wird der NT-Bootloader verwendet. Die gleiche Aufgabe erfüllen auch spezielle Programme wie der IBM-Boot-Manager, der im Lieferumfang von Partition Magic 3.0 enthalten war. Allerdings ist hierzu meist eine eigene primäre Partition erforderlich. Zudem hat der IBM-Boot-Manager die unangenehme Eigenschaft, primäre Partitionen beim Auswählen eines Systems auf einer anderen primären Partition in der Partitionstabelle als versteckt zu markieren. Es ist dann bei einem System mit einer primären NTFS- und einer primären FAT-Partition unter NT nicht möglich, auf die FAT-Partition zuzugreifen. Mit dem NT-Boot-Manager treten diese Probleme nicht auf.

Er fügt sich bei richtiger Konfiguration optimal in seine Umgebung ein. Somit wird keine zusätzlicher Bootmanager benötigt. Entscheidend ist immer eine primäre FAT16-Partition, die in der Partitionstabelle als aktiv markiert wird, so daß von ihr gebootet wird. Auf ihr liegt der Bootsektor von Windows 95/98 und der NT-Bootloader. Für diese Partition reicht eine Größe von ca. 10 MB völlig aus. Diese Betriebssysteme werden komplett in logischen Laufwerken installiert. Für den Linux-Loader LILO sollte ggf. auch eine primäre Partition am Anfang der Festplatte angelegt werden, damit erspart man sich hinterher viel Ärger.

Auf einer evtl. vorhandenen zweiten Festplatte sollten möglichst keine primären Partitionen angelegt werden. Bei den Microsoft-Betriebssystemen schieben sich sonst diese Partitionen vor die logischen Laufwerke auf der ersten Platte. Diese Änderung an den Laufwerksbuchstaben kann erhebliche Probleme verursachen.

Installation Windows 95/98

Es empfiehlt sich, zuerst Windows 95/98 zu installieren. Während des Setups müssen eine primäre FAT16-Partition (ca. 10 MB) und eine erweiterte Partition angelegt werden, die den restlichen Plattenspeicher umfaßt. Wer eine große Festplatte hat und Linux installieren möchte, sollte schon jetzt eine zweite primäre Partition vorsehen, um darin später das /boot-Verzeichnis des Linux-Systems zu installieren.

Innerhalb der erweiterten Partition wird dann zunächst ein logisches Laufwerk angelegt. FAT32 speichert Dateien effizienter als FAT16 und empfiehlt sich, wenn man Windows 95b oder Windows 98 einsetzt. Die Größe dieser Partition richtet sich nach dem voraussichtlichen Platzbedarf. Und dazu kann ich hier nichts sagen. ;-)

Das Setup-Programm fragt dann nach dem Verzeichnis, in dem Windows installiert werden soll. Es muß D:\WINDOWS angegeben werden. Laufwerk C:\ hätte ja auch gar nicht genügend Kapazität für die Installation. Dasselbe gilt für die Verzeichnisse Programme und Eigene Dateien.

Einige schlecht programmierte Programme nehmen hierauf keine Rücksicht und installieren einige Dateien trotzdem auf Laufwerk C:\ – da kann man halt nichts machen. :-( Es steht ja alles in der Datei MSDOS.SYS:

[Paths]
WinDir=D:\WINDOWS
WinBootDir=D:\WINDOWS
HostWinBootDrv=D

Installation von Windows NT 4.0

Die Installation von Windows NT ist jetzt fast trivial. Durch die Vorarbeiten während der Installation von Windows 95/98 macht man dem NT-Setup die Arbeit ziemlich einfach. NT verwendet die primäre FAT16-Partition für die Installation seines Bootloaders. Der bisherige Bootsektor, der den Bootcode von Windows 95/98 enthält, wird in der Datei BOOTSECT.DOS gespeichert. Während der Installation muß natürlich noch eine Partition für das NT-Systeme angelegt werden. NTFS sollte hier auf jeden Fall der Vorzug vor FAT16 gegeben werden. Beim nächsten Start erscheint das Menü des NT-Bootloaders, das vorher installierte Windows 95/98 wird automatisch in das Menü aufgenommen.

Installation von Linux

Die Installation von Linux gestaltet sich für die meisten Anwender erfahrungsgemäß komplizierter als bei den Microsoft-Systemen, bei denen nahezu alles automatisch abläuft. Darauf soll hier aber nicht eingegangen werden. Hinsichtlich der Partionierung gibt es jedoch ebenfalls einige Fallstricke, die man beachten sollte.

Wenn man LILO verwenden will, muß die Partition, auf der LILO installiert wird, vollständig unterhalb der 1024-Zylinder-Grenze liegt – sonst kann LILO das Linux-System nicht booten. Wer also bereits eine große Partition für Windows hat und Linux dahinter installieren möchte, sollte also genau wissen, wo die 1024-Zylinder-Grenze liegt.

Idealerweise wurden bereits mit Partition Magic eine primäre Boot-Partition (/boot, ca. 10 MB) am Anfang der Festplatte und innerhalb der erweiterten Partition eine Swap-Partition (/swap, ca. 100 MB) und eine System-Partition angelegt (/). Wenn man weiß, wann die 1024-Zylinder-Grenze erreicht wird, kann man die Boot-Partition als logisches Laufwerk anlegen oder auf eine separate Boot-Partition verzichten.

Alternativ kann man Loadlin verwenden, um Linux zu booten. Loadlin ist ein DOS-Programm, das nicht unter Windows ausgeführt werden kann. Im Normalfall wird man das Bootmenü von Windows 98 ergänzen, so daß Loadlin ausgeführt wird, bevor die GUI geladen wird. Mit Loadlin braucht man sich über die Partionierung keine Gedanken zu machen. Die Linux-Partition, die Loadlin starten soll, kann durchaus auch über der 1024-Zylinder-Grenze liegen.

Ein Wort zum fdisk-Programm von Linux. Dieses Programm kann man zwar durchaus verwenden, um die Partitions-ID einer Partition zu ändern. Man sollte es aber unbedingt vermeiden, neue logische Laufwerke unter Linux anzulegen, da das Programm im Gegensatz zu seinen Pendants unter DOS und OS/2 die physikalische Reihenfolge der Partitionen nicht beachtet. DOS-Programme und auch Partition Magic können mit einer solchen Partitionierung nichts anfangen. Ich kenne auch kein Programm, das eine solche Partitionierung automatisch berichtigen kann. Sie sollten sich also schon mal mit einem Diskeditor vertraut machen – oder die Partitionstabelle löschen und von vorne anfangen...

Wichtig ist noch die richtige Konfiguration von LILO. LILO dient in dieser Konfiguration nur zum Laden des Linux-Systems. Damit der NT-Bootloader LILO starten kann, muß der Bootsektor in eine Datei gespeichert werden. Das geht bspw. mit einem Diskeditor (bspw. Norton Utilities).

Unter Linux gibt man einfach den Befehl

dd if=/dev/hda2 bs=512 count=1 of=/bootsect.lin

ein. hda2 ist dabei die Partition, auf der LILO installiert ist, in diesem Beispiel also die primäre Boot-Partition.

Auch die Datei BOOTSECT.LIN muß in die NT-System-Partition kopiert werden. Der Eintrag in der BOOT.INI kann etwa C:\BOOTSECT.LIN="Linux" lauten.

Der NT-Bootloader

Der NT-Bootloader ist in der vorliegenden Konfiguration auf der primären FAT16-Partition installiert. Er wird konfiguriert durch die Datei BOOT.INI. Auf meinem PC sieht diese Datei so aus:

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(4)\WINNT

[operating systems]
multi(0)disk(0)rdisk(0)partition(4)\WINNT="Windows 2000"
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT 4.0"
C:\="Microsoft Windows 98"
C:\BOOTSECT.LIN="Linux"

Wird Windows 2000 zusätzlich zu Windows NT 4.0 installiert, wird auch eine neue Version des NT-Bootloaders installiert. Die Version aus NT 4.0 ist nicht in der Lage, Windows 2000 zu starten.

Um andere Betriebssysteme zu starten, muß der Boot-Sektor von bootfähigen Partitionen als Datei auf die primäre FAT-Partition kopiert werden. Mit einem Diskeditor bspw. aus den Norton Utilities ist dies in wenigen Minuten erledigt.

Der Eintrag C:\="Microsoft Windows 98" ist übrigens mißverständlich, denn im Bootsektor von C:\ sitzt natürlich der NT-Bootloader. In der Tat wird damit die Datei BOOTSECT.DOS geladen, in die beim Installieren von NT nach Windows 95/98 automatisch der alte Bootsektor gesichert wird. Mit C:\BOOTSECT.DOS="Microsoft Windows 98" bootet Windows 98 demnach auch, und die Arbeitsweise des Bootloaders sollte deutlicher werden.