Wer mehrere Linux-Systeme parallel installieren oder einfach auf einen neuen Computer umziehen möchte, hat viel zu tun: Dateien kopieren, Bootloader und Kernel-Parameter anpassen, und bloß die Zuordnung der Mount-Punkte nicht vergessen. Machen Sie es sich doch einfach und nennen Sie die Dateisysteme beim Namen.
Die folgende Anleitung richtet sich an Linux-Benutzer, die mehrere Distributionen auf einem Rechner betreiben, ihren Rechner umrüsten oder wechseln wollen, ohne Linux neu zu installieren. Sie kann zudem als Erweiterung für den Multi-Distributions-Artikel aus LinuxUser 03/2003 [1] angesehen werden, den Sie auf unserer Homepage nachlesen können.
In Sachen Gerätenamen nimmt es Linux sehr genau: Bei IDE-Festplatten bestimmt die Position am Controller über den Gerätenamen, während SCSI-Festplatten in der Reihenfolge ihrer SCSI-ID benannt werden. Die Gerätenamen der Partitionen leiten sich aus dem Gerätenamen der Festplatte plus der Nummer der jeweiligen Partition in der Partitionstabelle ab – /dev/hdb6 ist also der sechste Eintrag auf der Slave-Festplatte am primären IDE-Controller.
Mit den Gerätenamen /dev/hdb6 bezeichnet Linux die genaue Position, an dem es das Dateisystem der Partition findet – ohne Gewähr dafür, dass es sich um die gewünschten Daten handelt. So ist /dev/hda6 zum Beispiel ein logisches Laufwerk im erweiterten Bereich der Festplatte – löscht der Benutzer etwa mittels fdisk die Partition hda5, rücken alle anderen Partitionen auf: Aus hda6 wird hda5, und hda7 ist jetzt hda6. Linux greift weiterhin auf /dev/hda6 zu, landet aber nun auf der falschen Partition. Besonders schwerwiegend sind solche Partitionsverwechslungen beim Systemstart – das Endergebnis ist meist ein Kernel-Panic, und man muss die Rettungs-CD bemühen.
Mauerblümchen Partitionsnamen
Deutlich flexibler ist es, den Dateisystemen Namen zu geben und diese für den Systemstart heranzuziehen – ändert sich dann die Reihenfolge der Partitionen oder verlegen Sie die Daten gar auf eine andere Festplatte, findet sich Linux trotzdem zurecht. Während des Systemstarts prüft der Linux-Kernel alle gefundenen Partitionen und bestimmt dann den Namen der Dateisysteme.
Red Hat Linux war die erste große Distribution, die an Stelle der Gerätenamen die Dateisystemnamen verwendete – allerdings sind die Namen vorgegeben und lassen sich während der Installation nicht ohne weiteres ändern. Bei SuSE Linux ab Version 8.1 kann man zwar die Namen frei wählen, muss dafür aber bei der Partitionierung in den Experten-Modus wechseln. Für die meisten wird daher die manuelle Umstellung interessant sein – zumal sie für alle Distributionen gleich ist.
Namensvergabe
Die Unterstützung für Dateisystemnamen, englisch als Volume Label oder auch nur als Label bezeichnet, bringen nicht alle Dateisysteme mit. Derzeit kann Linux nur bei Ext-2, Ext-3, Reiser-FS und XFS die Namen der Dateisysteme auswerten und setzen.
Bei Ext-2 und Ext-3 verwenden Sie den Befehl:
tune2fs -L Name /dev/Gerätename
Bei Reiser-FS, das SuSE Linux nach wie vor standardmäßig als Root-Dateisystem einsetzt, müssen Sie folgenden Befehl eingeben:
reiserfstune -l Name /dev/Gerätename
Die Dateisystemnamen dürfen maximal 16 Zeichen lang sein und sollten nur aus Buchstaben, Zahlen sowie den Zeichen Punkt, Minus, Unterstrich und Schrägstrich bestehen. Theoretisch sind auch andere Zeichen möglich, sie können aber im Zusammenhang mit Administrationsprogrammen der Distributionen oder System-Tools zu Problemen führen, auch wenn der Systemstart noch funktioniert. Wir empfehlen Ihnen, lediglich Zahlen und die Buchstaben “a” bis “x” in Kleinschreibung zu verwenden – das lässt sich im Notfall auch bei amerikanischer Tastaturbelegung im Rettungssystem problemlos eingeben.
Gemeinsam genutzte Dateisysteme sollten nach ihrem Inhalt benannt werden, die Home-Partition zum Beispiel mit “home” und eine etwaige Boot-Partition mit “boot”. Für die Root-Partition empfehlen wir Ihnen den Namen und die Versionsnummer der Distribution – bei SuSE Linux 8.2 zum Beispiel “suse82”, für Red Hat Linux 9.A “redhat9a” und Mandrake Linux 9.1 “mandrake91”. Damit verhindern Sie eine Namenskollission, falls Sie später einmal mehrere Distributionen gleichzeitig installieren möchten.
Dateisystemtabelle <I>/etc/fstab<I> anpassen@KL:Für die Umstellung der Dateisystemtabelle <I>/etc/fstab<I> auf Volume Labels müssen Sie die Gerätenamen durch die Dateisystemnamen ersetzen. In der Datei <I>/etc/fstab<I> sind alle Dateisysteme eingetragen, die beim Systemstart automatisch oder später durch den Benutzer von Hand eingebunden werden können. Uns interessiert die erste Spalte, hier sind die Gerätenamen der Partitionen eingetragen:
/dev/hda3 / reiserfs defaults 1 1 /dev/hda5 swap swap pri=42 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 proc /proc proc defaults 0 0 usbdevfs /proc/bus/usb usbdevfs noauto 0 0 /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 /dev/dvd /media/dvd auto ro,noauto,user,exec 0 0 /dev/fd1 /media/floppy auto noauto,user,sync 0 0
Die Gerätenamen in der ersten Spalte können Sie durch den Namen des Dateisystems (nicht zu verwechseln mit dem Dateisystemtyp in der dritten Spalte) ersetzen. Zudem müssen Sie “LABEL=” voranstellen. Die fstab sieht nach der Änderung also folgendermaßen aus:
LABEL=suse82 / reiserfs defaults 1 1 /dev/hda5 swap swap pri=42 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 proc /proc proc defaults 0 0 usbdevfs /proc/bus/usb usbdevfs noauto 0 0 /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 /dev/dvd /media/dvd auto ro,noauto,user,exec 0 0 /dev/fd1 /media/floppy auto noauto,user,sync 0 0
Stolperstein Bootloader
Der einzige Stolperstein bei der variablen Partitionierung ist der Bootloader, er muss nach wie vor vom BIOS des Rechners gestartet werden und dann seine eigenen Programmdateien finden. Deshalb muss sowohl bei LILO als auch bei Grub die Boot-Partition benannt werden. Allerdings können Sie den Kernel-Parameter “root=” auf Volume Labels umstellen, hier ein Auszug aus der Grub-Konfiguration:
kernel /boot/vmlinuz root=LABEL=suse82 hdb=ide-scsi vga=0x788
Nun können Sie Ihr Linux-System sehr weitgehend verändern, ohne sich um Dateisystemtabelle oder Kernel-Parameter Gedanken zu machen. Der einzige Knackpunkt bleibt der Austausch der Festplatte: Nach Übertragung aller Daten und Setzen der Dateisystemnamen müssen Sie den Bootloader erneut installieren und je nach Umbau die Positionsangabe für den Bootloader in der Konfiguration anpassen.
Neue Distributionen ausprobieren
Durch die Verwendung der Dateisystemnamen ist es nun sehr einfach, mehrere Distributionen parallel zu installieren und sie auch nach Belieben zu löschen, ohne dass dies Einfluss auf die übrigen Distributionen hat.
Am Einfachsten geht dies mit einem Master-Grub, der die Bootloader der einzelnen Distributionen startet. Dazu legen Sie die Partition hda1 mit einer Größe von 10 MB an und formatieren sie als Ext-2 – zum Beispiel, indem Sie von der Rettungs-CD aus LinuxUser 08/2003 starten. Mounten Sie die Partition unter /mnt, richten Sie das Verzeichnis /mnt/grub ein und legen Sie dort die Datei menu.lst an. Das nachfolgende Listing zeigt eine Beispielkonfiguration der /mnt/grub/menu.lst für vier Distributionen auf den Partitionen hda5 bis hda8:
timeout 10 default 0 title SuSE 8.1 root (hd0,4) chainloader +1 title SuSE 8.2 root (hd0,5) chainloader +1 title Red Hat 8.0 root (hd0,6) chainloader +1 title Red Hat 9.0 root (hd0,7) chainloader +1
Kopieren Sie nun alle Dateien aus dem Verzeichnis /usr/lib/grub/i386-pc der Rettungs-CD in das Verzeichnis /mnt/grub und richten Sie Grub mit folgenden Befehlen ein:
grub root (hd0,0) setup (hd0) quit
Damit ist der Master-Grub installiert. Bei der Installation der ersten Distribution sollten Sie /dev/hda2 als Swap-Partition einrichten lassen, der Rest der Festplatte wird zu einer erweiterten Partition (“Extended”). Dort bekommt jede Distribution ein logisches Laufwerk, in unserem Beispiel SuSE Linux 8.1 die Partition /dev/hda5. Zudem müssen Sie den Bootloader der jeweiligen Distribution in der Root- oder Boot-Partition ablegen lassen, bei SuSE Linux 8.1 wäre dies wiederum /dev/hda5. Alle weiteren Distributionen benutzen dann /dev/hda2 als Swap-Partition.
Nach Umstellung auf Dateisystemnamen können Sie jederzeit etwa beide SuSE-Distributionen löschen – die Swap-Partition ändert ihre Position nicht, einzig die beiden Red-Hat-Partitionen rücken auf zu hda5 und hda6 – in Grub-Schreibweise entspricht dies hd(0,4) und hd(0,5). Es genügt also, die beiden Zahlen in der Master-Grub-Konfiguration grub/menu.lst auf /dev/hda1 anzupassen. Dank der Möglichkeit, während des Systemstarts die Grub-Konfiguration zu bearbeiten [2], brauchen Sie für die Änderung nicht einmal eine Rettungs-CD.
Infos
[1] Mirko Dölle, “Bunt gemischt für Jedermann”: LinuxUser 03/2003, Seite 70 oder http://www.linux-user.de/ausgabe/2003/03/070-multidistri/index.html
[2] Martin Loschwitz, “Lilos Erben”: LinuxUser 07/2002, Seite 71 oder http://www.linux-user.de/ausgabe/2002/07/071-grub/grub-1.html


