Tweety`s HOWTO`s

 
 

Linux umkopieren
auf eine neue größere Festplatte
mit einzelnen Partitionen
für bestimmte Verzeichnisse

  1. Problematik
  2. Rettungssystem starten
  3. Partitionen
  4. mit fdisk partitionieren
  5. Partitionstabelle kontrollieren
  6. bootbar-Flag aktivieren
  7. Dateisystemtyp ändern
  8. fdisk verlassen
  9. Dateisystem erstellen
  10. SWAP einrichten
  11. Festplatten mounten
  12. Daten umkopieren
  13. weitere Daten umkopieren
  14. Rootpartition umkopieren
  15. Rootpartition vorbereiten
  16. Festplatten tauschen
  17. installiertes System starten
  18. /etc/fstab aktualisieren
  19. LILO und lilo.conf
  20. Neustart
Problematik

Der Platz auf ihrem System wird knapp und Sie haben sich eine neue größere Festplatte zugelegt. Jetzt wollen Sie sowohl das System umkopieren, als auch einigen Verzeichnissen (z.B. /boot /usr /home /var usw.) Partitionen zuordnen.

Bei großen Platten bietet sich das Partitionieren einfach an. Je nach Anwendungsbereich (...Server; Workstation) ergeben sich unterschiedliche Partitionsgrößen und -varianten. Beispielsweise braucht /boot nicht mehr als 10MB, sollte aber im vorderen Bereich (also unter der 1024 Zylindergrenze wegen dem lilo) der Festplatte liegen. Auf einer Workstation sollte /home natürlich größer ausfallen, wobei beim Server /var mehr Platz beansprucht. Wie auch immer, dies sind alles individuelle Überlegungen, die man sich am besten vor dem Einrichten auf ein Blatt Papier (wieviele Partitionen; wie groß; welche Verzeichnisse usw.) niederschreibt. Nicht benötigter Speicherplatz sollte auch unberührt bleiben für später anliegende Aktionen.
Genaueres unter Partitionen.

Auch wenn diese Seite lang ist, ist die Zeit, die dieses Verfahren benötigt (je nach Partionsgröße) erschwinglich. Ich versuche halt die Arbeitsschritte so detailiert wie möglich zu dokumentieren, damit auch wirklich jeder es nachvollziehen kann. Zum Überspringen von Passagen können die Pfeile in der Abschnittsüberschrift benutzt werden.

Rettungssystem starten

Arbeiten Sie nicht im laufenden System, sondern mit Ihrem Linux Rettungssystem (Bootdisk, Rescuedisk und evtl. Modules), welches jeder verantwortungsvolle User besitzen sollte. Dieses Vorgehen sollte nur von geübteren Benutzern ausgeführt werden, da es ein gutes Verständnis des Systems voraussetzt. Es muss im BIOS A als erstes in der Bootsequence stehen.

  1. Die Boot-Diskette (in meinem Falle von Suse) einlegen und den Rechner neu starten.
  2. Die gewünschten Einstellungen zu Sprache, Monitor usw. vornehmen, bis man das Hauptmenü erreicht.
  3. Im Hauptmenü den Punkt "Installation / System starten" und dann "Rettungssystem starten" auswählen. Je nach dem wo sich das Rettungs-System befindet, wählt man "CD-ROM" oder "Diskette" aus. Bei CD-ROM muß die CD im CD-Laufwerk liegen. Benutzt man die vorher erstellte Rescue-Diskette, wählt man einfach "Diskette".
  4. Ist das System hochgefahren, kann man sich am berühmten "YoMama"-login-Prompt als root einloggen und ohne Passwort beginnen
YoMama login: root
Have a lot of fun...
YoMama:~ # _

Wie an der Tilde ~ zu erkennen ist, befinden wir uns im Homeverzeichnis des roots (/root).Also wechseln wir noch in das Rootverzeichnis ( / ).

YoMama:~ # cd /
YoMama:/ # _

Partitionen

Wir nehmen unsere individuell geplante Partitionsliste zur Hand, die z.B. bei einem durchschnittlichen Einzelbenutzersystem so aussehen könnte:

Primäre Partition 1 /boot 10MB
Primäre Partition 2 SWAP 128MB - 256MB
Primäre Partition 3 / (200MB oder mehr)
erweiterte Partition 4 bis Ende
logische Partition 5 /home (200MB oder mehr)
logische Partition 6 /usr (700MB oder mehr)
logische Partition 7 /opt (200MB oder mehr)

Man sollte bei der Partitionierung ein paar Punkte beachten:

  • Eine Festplatte kann nur bis zu 4 primäre Partitionen enthalten. Wenn man aber mehr als 4 Partitionen braucht (unser Beispiel benötigt 7), dann wird anstatt eine primäre Partition eine erweiterte Partition angelegt. Da auf jeder Festplatte nur eine erweiterte Partition existieren kann, sollte man die benötigten primären Partitionen an den Anfang der betreffenden Festplatte legen und dahinter die erweiterte Partition mit den darin enthaltenen logischen Partitionen folgen lassen.
  • Es muss nicht der gesamte auf einer Platte zur Verfügung stehende Platz partitioniert sein. So kann es bei einer großen Festplatte durchaus sinnvoll sein, nur den tatsächlich benötigten Platz zu partitionieren und den restlichen Raum zunächst für eine spätere Verwendung unpartitioniert zu belassen.
  • Zwischen den einzelnen Partitionen sollte kein ungenutzter Platz liegen (viele Festplattenpartitionierungsprogramme gestatten dies auch nicht).
  • Auf Festplatten, von denen kein Betriebssystem gestartet werden soll, welches auf eine primäre Partition angewiesen ist, reicht es in der Regel aus, eine einzige erweiterte Partition anzulegen, in der dann nach Bedarf logische Partitionen erzeugt werden können.
  • Wenn Linux mit einem anderen Betriebssystem zusammen verwendet wird, das zur Benennung von Partitionen Laufwerksbuchstaben verwendet, sollten freier Platz und die Partitionen für Linux immer möglichst weit hinten liegen. Falls nämlich eine solche Partition eines Tages wieder für das Betriebssystem mit den Laufwerksbuchstaben sichtbar wird, ordnet es eventuell einigen Partitionen neue Laufwerksbuchstaben zu. Das kann dazu führen, dass dieses Betriebssystem seine eigenen Daten nicht mehr findet und deswegen nicht mehr funktioniert.
mit fdisk partitionieren

Im Verzeichnis /dev liegen die Gerätedateien. Wir beschäftigen uns mit dem IDE- oder SCSI-Bus (je nachdem, welches System sie nutzen).

Primary Master -> /dev/hda (im Falle der Partitionierung hda1; hda2; hda3 usw.)
Primary Slave -> /dev/hdb
Secondary Master -> /dev/hdc
Secondary Slave -> /dev/hdd
Bei SCSI -> /dev/sda usw.

In unserem Beispiel ist die alte Platte /dev/hda, die neue Platte /dev/hdc und unser CD-Laufwerk /dev/hdd. Alte und neue werden später getauscht, doch dazu später mehr in Festplatten tauschen. Ich lasse /dev/hdb frei, um gegenseitiges Ausbremsen zu verhindern.

Wir rufen das Kommando fdisk mit der zu pationierenden Gerätedatei /dev/hdc auf.
Mit m gelangen wir anschließend zur Hilfe.

YoMama:/ # fdisk /dev/hdc

The number of cylinders for this disk is set to 59560.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., LILO)
2) booting and partitioning software from other OSs
e.g., DOS FDISK, OS/2 FDISK)

Kommando (m für Hilfe): m
Kommando Bedeutung
a (De)Aktivieren des bootbar-Flags
b »bsd disklabel« bearbeiten
c (De)Aktivieren des DOS Kompatibilitätsflags
d Eine Partition löschen
l Die bekannten Dateisystemtypen anzeigen
m Dieses Menü anzeigen
n Eine neue Partition anlegen
o Eine neue leere DOS Partitionstabelle anlegen
p Die Partitionstabelle anzeigen
q Ende ohne Speichern der Änderungen
s Einen neuen leeren »Sun disklabel« anlegen
t Den Dateisystemtyp einer Partition ändern
u Die Einheit für die Anzeige/Eingabe ändern
v Die Partitionstabelle überprüfen
w Die Tabelle auf die Festplatte schreiben und das Programm beenden
x Zusätzliche Funktionen (nur für Experten)

Kommando (m für Hilfe): _

Da wir jetzt die nötigen Kommandos kennen, können wir mit unserer Partitionsliste die Partitionen einrichten. Ein Abbruch erfolgt jederzeit mit der Tastenkombination Strg + C und bei absoluter Unsicherheit beendet q das fdisk Programm ohne die Einstellungen zu speichern. 59560 Zylinder sind in meinem Fall ca. 30GB. Wir wollen eine neue Partition anlegen, also geben wir n ein.Wir erinnern uns, die /boot Partition sollte unter der 1024 Zylindergrenze liegen, 10MB groß und die erste Platte sein. Daraus ergeben sich folgende Schritte:

Kommando (m für Hilfe): n
Kommando Aktion
e Erweiterte
p Primäre Partition (1-4)
p
Partitionsnummer (1-4): 1
Erster Zylinder (1-59560) [Standardwert: 1]: 1
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (1-59560) [Standardwert: 59560]: +10M

Kommando (m für Hilfe): _

Somit wäre die erste primäre Partition angelegt. Bei den nächsten zwei primären Partitionen
(siehe Partitionsliste -> drei primäre Partitionen und eine erweiterte Partition, die wiederum drei logische Partitionen enthält)
ändert sich lediglich die Partitionsnummer, Startzylinder (der erste Wert in der Klammer) und die Partitionsgröße, die ich mit + einleite, gefolgt von der eigentlichen Größe und ein großes M für MB (MegaByte).

Kommando (m für Hilfe): n
Kommando Aktion
e Erweiterte
p Primäre Partition (1-4)
p
Partitionsnummer (1-4): 2
Erster Zylinder (22-59560) [Standardwert: 22]: 22
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (22-59560) [Standardwert: 59560]: +256M

Kommando (m für Hilfe): n
Kommando Aktion
e Erweiterte
p Primäre Partition (1-4)
p
Partitionsnummer (1-4): 3
Erster Zylinder (543-59560) [Standardwert: 543]:
Benutze den Standardwert 543
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (543-59560) [Standardwert: 59560]: +200M

Kommando (m für Hilfe): _

Bei der dritten primären Partition habe ich mal kein Startzylinder eingegeben, sondern einfach nur RETURN betätigt und fdisk nimmt den vorgeschlagenen Standardwert (den ersten Wert in der Klammer):
"Benutze den Standardwert 543 "

Jetzt ist Vorsicht geboten, da nun die erweiterte Partition definiert wird. Ich persönlich halte nicht viel von zwei Betriebssystemen auf einer Festplatte, da so manche Betriebssysteme die Angewohnheit haben, den MBR (Master Boot Record) kaputt zu schiessen. Also wenn ich überhaupt ein zweites Betriebssystem neben Linux installieren möchte, dann auf einer seperaten Festplatte. Aus diesem Grunde kann ich ruhig die erweiterte Partition bis zum Ende der Festplatte anlegen.

Wir benutzen das Kommando e für "erweiterte Partition" und den Standardstart- und Standardendzylinder. Die nächste Partition hat logischerweise den gleichen Startzylinder, da sie ja als erste logische Partition in der erweiterten Partition liegt. Diese und alle weiteren bekommen ihre Partitionsnummer chronologisch zugewiesen. Jede weitere logische Partitionnummer wird inkrementiert (mit 1 addiert), welches die Abfrage: "Partitionsnummer (1-4):" entfallen lässt.

Kommando (m für Hilfe): n
Kommando Aktion
e Erweiterte
p Primäre Partition (1-4)
e
Partitionsnummer (1-4): 4
Erster Zylinder (950-59560) [Standardwert: 950]:
Benutze den Standardwert 950
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (950-59560) [Standardwert: 59560]:
Benutze den Standardwert 59560

Kommando (m für Hilfe): n
Erster Zylinder (950-59560) [Standardwert: 950]:
Benutze den Standardwert 950
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (950-59560) [Standardwert: 59560]: +200M

Kommando (m für Hilfe): n
Erster Zylinder (1357-59560) [Standardwert: 1357]:
Benutze den Standardwert 1357
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (1357-59560) [Standardwert: 59560]: +700M

Kommando (m für Hilfe): n
Erster Zylinder (2780-59560) [Standardwert: 2780]:
Benutze den Standardwert 2780
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (2780-59560) [Standardwert: 59560]: +200M

Kommando (m für Hilfe): _

Partitionstabelle kontrollieren

Mit dem Kommando p rufen wir unsere gerade erstellte Partitionstabelle auf und vergleichen diese mit unserer Partitionsliste.

Kommando (m für Hilfe): p

Festplatte /dev/hda: 16 Köpfe, 63 Sektoren, 59560 Zylinder
Einheiten: Zylinder mit 1008 * 512 Bytes

Gerät boot. Anfang Ende Blöcke Id Dateisystemtyp
/dev/hdc1 1 21 10552+ 83 Linux
/dev/hdc2 22 542 262584 83 Linux
/dev/hdc3 543 949 205128 83 Linux
/dev/hdc4 950 59560 29539944 5 Erweiterte
/dev/hdc5 950 1356 205096+ 83 Linux
/dev/hdc6 1357 2779 717160+ 83 Linux
/dev/hdc7 2780 3186 205096+ 83 Linux
Kommando (m für Hilfe): _

Wie wir sehen ist die boot.-Spalte leer. Aber im nächsten Schritt werden wir dieses ändern.

bootbar-Flag aktivieren

Mit dem Kommando a aus der Hilfe bewirken wir folgende Aktion:
(De)Aktivieren des bootbar-Flags

Kommando (m für Hilfe): a
Partitionsnummer (1-7): 1

Kommando (m für Hilfe): _

Wir wählen natürlich Partitionsnummer 1, da wir ja dort unsere /boot Partition liegen haben.
Mit einem neuen Aufruf von p (siehe Partitionstabelle kontrollieren) können wir ein * in der boot.-Spalte bei der /boot Partition sehen, welche nun somit bootfähig ist.
Ein erneutes Aufrufen von a an dieser Stelle würde den bootbar-Flag deaktivieren.

Dateisystemtyp ändern

In der mit p aufgerufenen Partitionstabelle ist der Dateisystemtyp bei allen primären und logischen Partitionen standardmäßig Linux. Mit Aufruf des Kommandos:
t Den Dateisystemtyp einer Partition ändern
(siehe Hilfe) legen wir für eine bestimmte Partition den neuen Dateisystemtyp fest, welchen wir mit l in einer Auswahl anzeigen lassen können. In unserem Fall müssen alle Partitionen (außer eine) den Typ Linux besitzen. Unsere Ausnahme lautet SWAP, welche wir später im Abschnitt SWAP einrichten mehr Aufmerksamkeit erfordert.

Kommando (m für Hilfe): t
Partitionsnummer (1-10): 2
Hex code (L um eine Liste anzuzeigen): l

0 Leer 17 Verst. HPFS/NTF 5c Priam Edisk a6 OpenBSD
1 FAT12 18 AST Windows swa 61 SpeedStor a7 NeXTSTEP
2 XENIX root 1b Verst. Win95 FA 63 GNU HURD / SysV b7 BSDI fs
3 XENIX usr 1c Verst. Win95 FA 64 Novell Netware b8 BSDI swap
4 FAT16 <32M 1e Verst. Win95 FA 65 Novell Netware c1 DRDOS/sec (FAT-
5 Erweiterte 24 NEC DOS 70 DiskSecure Mult c4 DRDOS/sec (FAT-
6 FAT16 3c PartitionMagic 75 PC/IX c6 DRDOS/sec (FAT-
7 HPFS/NTFS 40 Venix 80286 80 Old Minix c7 Syrinx
8 AIX 41 PPC PReP Boot 81 Minix / old Lin db CP/M / CTOS / .
9 AIX bootfähig 42 SFS 82 Linux Swap e1 DOS access
a OS/2 Bootmanage 4d QNX4.x 83 Linux e3 DOS R/O
b Win95 FAT32 4e QNX4.x 2nd part 84 OS/2 verst. C:- e4 SpeedStor
c Win95 FAT32 (LB 4f QNX4.x 3rd part 85 Linux erweitert eb BeOS fs
e Win95 FAT16 (LB 50 OnTrack DM 86 NTFS volume set f1 SpeedStor
f Win95 Erw. (LBA 51 OnTrack DM6 Aux 87 NTFS volume set f4 SpeedStor
10 OPUS 52 CP/M 93 Amoeba f2 DOS secondary
11 Verst. FAT12 53 OnTrack DM6 Aux 94 Amoeba BBT fd Linux raid auto
12 Compaq Diagnost 54 OnTrackDM6 a0 IBM Thinkpad hi fe LANstep
14 Verst. FAT16 <3 55 EZ-Drive a5 BSD/386 ff BBT
16 Verst. FAT16 56 Golden Bow
Hex code (L um eine Liste anzuzeigen): 82

Kommando (m für Hilfe): _

Wir sehen eine Liste von Dateisystemtypen mit jeweils voranstehenden Hex Code. Wir suchen Linux Swap und tragen den dazugehörigen Hex Code 82 ein. In der mit p aufgerufenen Partitionstabelle ist jetzt der Dateisystemtyp Linux Swap in unserer SWAP Partition zu erkennen.

fdisk verlassen

Ein Abbruch erfolgt jederzeit mit der Tastenkombination Strg + C und bei absoluter Unsicherheit beendet q das fdisk Programm ohne die Einstellungen zu speichern. Wenn wir aber sicher sind beenden wir mit
w Die Tabelle auf die Festplatte schreiben und das Programm beenden
und betrachten unsere Arbeit mit fdisk als erledigt.

Dateisystem erstellen

Nachdem Verlassen von fdisk befinden wir uns wieder im YoMama-Prompt. Außer der SWAP Partition erstellen wir für jede einzelne Partition ein Dateisystem für Linux. Das Kommando lautet mke2fs mit folgender Syntax:

YoMama:/ # mke2fs -t ext2 /dev/hda1

Das - leitet einen Schalter ein, welcher t (TYP) lautet, gefolgt vom Dateisystem ext2 (extended 2) und zuletzt die Gerätedatei /dev/hdc1 (Partition). Wir befolgen evtl. anfallende Anweisungen und wiederholen diesen Befehl mit den fünf (unser Beispiel 3-7; 2 nicht -> weil SWAP) anderen Partitionen /dev/hdc3 bis /dev/hdc7. Diese Schritte können je nach Größe der Partitionen ein wenig Zeit in Anspruch nehmen.

SWAP einrichten

Zum Einrichten der SWAP Partition geben wir das Kommando mkswap mit der entsprechenden Gerätedatei /dev/hdc2 (unser Beispiel) ein und aktivieren diese durch das Kommando swapon und natürlich der entsprechenden Gerätedatei /dev/hdc2. Wenn alles so einfach wäre.

YoMama:/ # mkswap /dev/hdc2
Swapbereich Version 1 mit der Größe 268881920 Bytes wird angelegt
YoMama:/ # swapon /dev/hdc2
YoMama:/ # _

Man könnte jetzt mehrere vorbereitete SWAP Partitionen so anlegen und aktivieren (Version 2 usw.), aber wer braucht das schon. Mit dem Kommando swapoff /dev/hd?? (?? = Festplatte + SWAP Partitionsnummer) deaktiviert man sie logischerweise.

Festplatten mounten

Um unsere alte und neue Festplatte zu mounten, benötigen wir zwei Mountpoints, welche am sinnigsten /old und /new heißen sollten. Nach Erstellung dieser, mounten wir die Rootpartition der alten Festplatte (in meinem Fall /dev/hda5) in Mountpoint /old und die erste neue benögtigte Partition /dev/hdc1 in Mountpoint /new. Wenn die Rootpartition der alten Fetsplatte nicht bekannt sein soll (welches echt peinlich wäre), kann man meistens mit "fdisk /dev/hda" und anschließend p die root erkennen. Am eindeutigsten steht sie aber in der Mounttabelle /etc/fstab, welche mit dem vi - Editor im laufendem System ausgelesen werden kann.

YoMama:/ # mkdir old new
YoMama:/ # mount -t ext2 /dev/hda5 /old
YoMama:/ # mount -t ext2 /dev/hdc1 /new
YoMama:/ # mount

Die Syntax des Kommandos mount ist dem entsprechend logisch:
Kommando -> Schalter Dateisystemtyp -> Dateisystem -> Gerätedatei -> Mountpoint
Meistens kann man "-t ext2" weglassen, außer bei folgender Meldung:
mount: you must specify the filesystem type
In der letzten Zeile rufen wir mount ohne Zusatz auf und können durch simples Ablesen die Wirkung unserer Eingaben kontrollieren.

Daten umkopieren

Wir haben /dev/hdc1 gemountet, welches laut unserer Partitionsliste die boot Partition werden soll. Hierzu wechseln wir in das zu kopierende Verzeichnis (wir erinnern uns: Die komplette alte Festplatte ist unter /old gemountet) und kontrollieren dieses mit unserem Prompt oder mit dem Kommando pwd (print working directory = zeige aktuelles Verzeichnis). Nachdem wir uns in /old/boot befinden rufen wir folgendes Kommando auf:

YoMama:/ # cd old/boot
YoMama:/old/boot # pwd
/old/boot
YoMama:/old/boot # tar -cpf - . --same-owner | (cd /new && tar xpvf - )

Die genaue Funktionsweise und Möglichkeiten des Archivierungs - Kommandos tar hier an Ort und Stelle zu erklären, würde den Rahmen sprengen und nur noch mehr verwirren. Also beziehe ich mich nur grob auf unser Anliegen:

Mit
  • -c (create) erzeugen wir ein Archiv.
  • p (preserve permissions) bleiben die Rechte erhalten.
  • f (file) legen wir das Ziel des Archives fest.
  • . zeigen wir auf das aktuelle Verzeichnis.
  • --same-owner bleibt der Besitzer erhalten.
  • | (Pipe) leiten wir zu einem weiteren Kommando weiter.
  • cd /new wechseln wir zum Mountpoint /new und somit auf die boot Partition /dev/hdc1.
  • && leiten wir eine logische UND-Verknüpfung ein.
  • x (extraxt) extrahieren bzw. entpacken wir die Dateien aus dem Archiv.
  • v (verbose) lassen wir uns den Namen der geschriebenen oder gelesenen Datei ausgeben.

Anschließend wechseln wir wieder in das Rootverzeichnis / und unmounten (Kommando: umount) die neue Festplatte, damit wir die den Mountpoint /new für die nächste Zielpartition freigeben.

YoMama:/old/boot # cd /
YoMama:/ # pwd
/
YoMama:/ # umount /dev/hdc1

weitere Daten umkopieren

Wir wiederholen jetzt den letzten Abschnitt "Daten umkopieren" mit jeder weiteren Partition unserer Partitionsliste mit Ausnahme von SWAP und /, da die Auslagerungspartition siehe "SWAP einrichten" schon angelegt ist und mit / beschäftigen wir uns später unter "Rootpartition umkopieren".

Wir lassen die ganze Zeit die Rootpartition /dev/hda in /old gemountet, aber mounten in /new die jeweilige Zielpartition. Wir wechseln in das dem entsprechende Quellverzeichnis "cd /old/?", kontrollieren mit dem Prompt oder mit "pwd" und kopieren die Daten mit "tar -cpf - . --same-owner | (cd /new && tar xpvf - ) " Kommando. In unserem Beispiel heißt das:

Verzeichnis Zielpartition
/old/home /dev/hdc5
/old/usr /dev/hdc6
/old/opt /dev/hdc7

Rootpartition umkopieren

Für die Rootpartition wechseln wir logischer Weise nur in das Verzeichnis /old und mounten in /new die Zielpartition /dev/hdc3 (unser Beispiel, siehe Partitionsliste). Da wir aber unsere schon kopierten Daten nicht doppelt auf der neuen Festplatte haben möchten, fügen wir dem tar Kommando die Ausbindungsfunktion --exclude Name hinzu.

YoMama:/ # cd old
YoMama:/old # pwd
/old
YoMama:/old # mount -t ext2 /dev/hdc3 /new
YoMama:/old # mount
YoMama:/old # tar -cpf - . --exclude boot --exclude home --exclude usr --exclude opt --same-owner | (cd /new && tar xpvf - )

Jetzt wird alles, außer die mit --exclude angegebenen Verzeichnisse umkopiert.

Rootpartition vorbereiten

Da die jetzt ausgebundenen Verzeichnisse in unserer Verzeichnisstruktur fehlen, müssen diese nun manuell angelegt werden. Wir wollen diese ja schließlich als Mountpoints für unsere Partitionen nutzen. Also wechseln wir in unsere neue Rootpartition und legen die gewünschten Verzeichnisse an, und kontrollieren diese mit ls.

YoMama:/old # cd new
YoMama:/new # mkdir boot home usr opt
YoMama:/new # ls

Festplatten tauschen

Wir fahren das Rettungssystem nachdem Unmounten der beiden Festplatten herunter:

YoMama:/new # cd /
YoMama:/ # umount /dev/hda5
YoMama:/ # umount /dev/hdc3
YoMama:/ # shutdown -h now

Jetzt werden die Festplatten getauscht, wobei wir eigentlich nicht auf die Jumperung achten müssen, da eh beide auf Master eingstellt sein müssten.

installiertes System starten

Wir starten noch einmal Mal mit der Bootdiskette das System.

  1. Die Boot-Diskette (in meinem Falle von Suse) einlegen und den Rechner neu starten.
  2. Die gewünschten Einstellungen zu Sprache, Monitor usw. vornehmen, bis man das Hauptmenü erreicht.
  3. Im Hauptmenü den Punkt "Installation / System starten" und dann "installiertes System starten" auswählen.
  4. In der Rootpartitionsabfrage geben wir /dev/hda3 (welche vorher natürlich /dev/hdc3 war) ein.
  5. Beim Login geben wir root und das dazugehörige Passwort ein.
/etc/fstab aktualisieren

Damit alle neuen Partition bei jedem Start richtig eingebunden werden, müssen Eintragungen in der Mounttabelle /etc/fstab vorgenommen werden, welche mit dem Kommando:
vi etc/fstab aufgerufen wird.
Mit ESC - :wq können wir den Editor schreibend verlassen. i (insert)< ermöglicht uns im Editor Eintragungen vorzunehmen.
Unsere Mounttabelle sollte laut Beispiel so aussehen:

# /etc/fstab: Tabelle einzubindender Dateisysteme.
#
# <Dateisystem> <Mountpunkt> <Typ> <Optionen> <dump> <pass>
/dev/hda3 / ext2 defaults,errors=remount-ro 0 1
/dev/hda1 /boot ext2 defaults 0 1
/dev/hda5 /home ext2 defaults 0 1
/dev/hda6 /usr ext2 defaults 0 1
/dev/hda7 /tmp ext2 defaults 0 1
/dev/hda2 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto defaults,user,noauto 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
~
~
~
~
~
~
/etc/fstab: unmodified: line 1

LILO und lilo.conf

Wir rufen die LILO-Konfigurationsdatei auf:
Kommando: vi etc/lilo.conf
Hier werden zwei Eintragungen kontrolliert und evtl. korrigiert:

.
.
.
# Specifies the boot device. This is where Lilo installs its boot
# block. It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/hda

# Specifies the device that should be mounted as root. (`/')
#
root=/dev/hda3
.
.
.

Obwohl /dev/hda1 unsere Bootpartition ist, geben wir /dev/hda ein, um die gesamte Platte und somit den MBR bekannt zu machen. Mit ESC - :wq den Editor beenden und nun umbedingt den
lilo aufrufen, damit alle Einstellungen dem System bekannt gemacht werden.

Rechnername:/# lilo
Added lin *
Added linold
Added lin218old
Rechnername:/# _

Neustart

Jetzt fahren wir das System ohne Bootdiskette nocheinmal hoch

Rechnername:/# reboot

Have a lot of fun...