Main /

Linux Kopieren

Linux Kopieren

Linux: Komplettes System kopieren

Linux beherrscht die Möglichkeit mit dem ganzen System einfach umzuziehen. Egal ob ein neuer Computer oder nur eine größere Festplatte. Dabei braucht man nur einen anderen Rechner im Netz der genügend freien Plattenplatz hat oder eine externe Festplatte.

Warum sollte die mühsam eingerichtete Software also nicht auch woanders ihren Dienst verrichten?

Daten vorbereiten

Ein Umzug mit Linux ist eigentlich ganz einfach, die alten Dateien zusammenpacken, kopieren, auspacken, bootloader einstellen, neues System booten, fertig.

Ok, ganz so einfach ist es doch noch nicht.

Vorbereiten

Schlaue Leute gehen bei und manipulieren den Kernel soweit, dass er für genau das eigene System abgespeckt wurde. Desweiteren werden Gentoo-Linux User CFLAGS in /etc/make.conf eingetragen haben, die etwas mehr Performance durch entsprechende Compiler switches bringen (sollen).

Gleich vorweg, ist das alte System ein AMD (K6, Athlon, ...) und 3DNow! aktiv und das neue System ein Intel kann man an diese Stelle gleich aufgeben und neu installieren, die hier beschriebene Technik wird nicht funktionieren. Das liegt nicht an Linux selbst, sondern laste ich Lars eher Intel/AMD an, die unfähig sind Ihre Prozessoren so zu erstellen, das x86 Erweiterungen (MMX, 3DNow!, SSE...) emuliert werden können bzw. kompatibel sind.

Ein Umzug funktioniert nur:

von Prozessor

nach Prozessor

Kommentar

AMD

AMD (>= das selbe Modell)

Die neueren Prozessoren sind immer voll rückwärts kompatibel

Intel

Intel (>= das selbe Model)

dito

Intel

AMD (>=neueres Modell)

Hier muss man gucken, was der Intel alles konnte (MMX, SSE, SSE2, SSE3)
Das sollte der AMD Prozessor dann auch beherrschen.

Pentium III

Celeron I, K6 III

Der Celeron I und der K6-III beherrschen nur MMX, aber kein SSE wie der Pentium III das gibt Illegal Instructions

Athlon64

Core Duo

Der Core Duo beherrscht kein 3DNow!
Falls es AMD64 war, das kann nur der Core 2 Duo, trotzdem würde ich hier neu installieren.

Da die meisten Nutzer aber eher auf ein neueres System mit dem selben Prozessor umziehen, funktioniert die Methode meist trotzdem.

Ist bis hier alles positiv verlaufen? Gut. Zeit für einen Kaffee.

Letzte Vorbereitungen auf dem alten Rechner

Hat der alte Rechner nur IDE Laufwerke(PATA), der neue aber S(erial)ATA, sollte man nochmals einen neuen Kernel auf dem alten System backen. Also:

 cd /usr/src/linux
 make menuconfig

Kernel until 2.6.18

 Device Drivers --->
    SCSI device support --->
        <*> SCSI device support
        <*> SCSI disk support
        [*] Probe all LUNs on each SCSI device
        SCSI low-level drivers --->
           <*> Serial ATA (SATA) support
               <*> Intel PIIX/ICH SATA support
               <*> NVIDIA SATA support

Kernel since 2.6.19

 Device Drivers --->
    SCSI device support --->
        <*> SCSI device support
        <*> SCSI disk support
        [*] Probe all LUNs on each SCSI device
    Serial ATA (prod) and Parallel ATA (experimental) drivers --->
        <*> ATA deiver support
        <*>   Intel PIIX/ICH SATA support
        <*>   NVIDIA SATA support

Je nachdem welchen Chipsatz man hat (Intel oder NVidia), das richtige auswählen. Logisch.

Kernel bauen

 make 
 make modules_install

und installieren

 cp /usr/src/linux/arch/i386/boot/bzImage /boot

Daten sichern

Da meist nicht mehr genügend Platz auf der eigenen Platte ist, das Storagedevice mounten.

 mount /mnt/storage

 cd /
 mount /boot
 tar czpfv /mnt/storage/boot.tar.gz boot
 tar czpfv /mnt/storage/rootdisk.tar.gz bin dev etc lib root sbin share tmp usr var
 tar czpfv /mnt/storage/usersw.tar.gz home opt 

Das v kann auch weggelassen werden, dann erzeugt der Packvorgang keine Bildschirmausgabe.

Siehe dazu auch: PackerAnwenden

p im Parameterfeld von tar ist GANZ WICHTIG, der besagt, das alle Rechte der Datei beibehalten werden. Ohne diesen Parameter kann man gleich nochmal von vorn beginnen mit Packen.

Auf dem Storagedevice gibt es jetzt 3 *.tar.gz Dateien, die unterschiedlich groß ausfallen. Falls noch mehr Verzeichnisse im root Verzeichnis liegen, diese nach der selben Methode kopieren.

Vorsicht bei gemounteten Devices in /mnt oder wo auch immer, diese sollten vorher natürlich per umount aus dem root Verzeichnis ausgetragen werden.

Neues System starten

Das Storagedevice an den neuen Rechner anschliessen, Mit Knoppix CD oder Gentoo Installations CD den Rechner hochfahren, eine Shell starten, dann die neue Festplatte einrichten mit z.B. cfdisk Ich Lars bevorzuge eine Partion für /boot mit 100MB und große logische Partion mit dem Rest, Swap lege ich als Datei an, die kann nämlich wachsen...

Die neuen Partion formatieren

 mkfs.ext2 -L boot /dev/sda1
 mkfs.ext3 -j -L root /dev/sda5

Daten auspacken

Wir wechseln in das root Verzeichnis der neuen Festplatte und starten das Auspacken.

 tar xzf /<entsprechender Pfad>/boot.tar.gz
 tar xzf /<entsprechender Pfad>/rootdisk.tar.gz
 tar xzf /<entsprechender Pfad>/usersw.tar.gz

Man kann auch [*tar xzfv*] verwenden, dann sieht man was passier und es ist nicht so langweilig.

Nachbereitung nach dem Auspacken

Jetzt müssen unbedingt noch ein paar Dateien manipuliert werden, damit beim nächsten booten keine gravierenden Mängel auftreten.

Datei

Was ist zu tun

/proc
/sys

Diese Directories unbedingt anlegen, sie dürfen nicht mit kopiert werden.
lost+found ist schon da.

 /etc/modules.autoload.d/kernel-2.6 

Alle Module auskommentieren, wo man weiß das sie nicht zur neuen Hardware passen.
loop,autofs4 können immer bleiben, die haben nicht direkt etwas mit Hardware zu tun.

 /etc/fstab 

Das neue Partionsmodell eintragen

 /boot/grub/grub.lst 

Im Grub Menü die Daten eintragen, wie/wo die Bootdaten, Kernel sind.

 /boot/grub/device.map 

Hier die Platte eintragen, von der gebootet werden soll, also etwa: (hd0)<tab>/dev/sda

Evtl. xdm noch aus den Runlevels entfernen, da neue HW meist auch neue Grafiktreiber nach sich zieht und somit Xorg erstmal nicht laufen sollte.

Bootloader installieren

 grub-install --no-floppy --root-directory=/mnt/gentoo /dev/sda

Ja ich will Grub im MBA. Die Dateien kopiert Grub nach /mnt/gentoo/boot/grub.

Du hast kein Grub? Selbst schuld, Pech, weiß ich leider nicht. Ließ die Gentoo Anleitung.

OK: The file /boot/grub/stage1 not read correctly Bei mir war es die device.map, die auf ein falsches Laufwerk zeigt

Rechner rebooten, Knoppix CD oder Gentoo Installation CD aus dem CD Fach entfernen und Rechner neu starten.

Rechner booten

Beten das alles geklappt hat, es sollte sich nach kurzer Zeit der Login: melden.

Wenn nicht, hilft vielleicht die chroot Umgebung der Gentoo Installation CD, dazu:

 mount /dev/sda5 /mnt/gentoo
 mount /dev/sda2 /mnt/gentoo/boot
 mount -t proc proc /mnt/gentoo/proc
 mount -o bind /dev  /mnt/hda5/dev
 chroot /mnt/gentoo /bin/bash
 env-update
 source /etc/profile

Das einzige, was hier in einer chroot Umgebung nicht klappt ist den Bootloader zu installieren.

Abschlussarbeiten

Neue Hardware läuft, Linux System kommt in der Console hoch.

  • Neue Hardware identifizieren, ein echter Linuxer sollte seine Hardware aber auch so kennen grinning smiley Tools dafür sind:
    lspci
    lshw
  • Den Kernel an das neue System anpassen.
    Netzwerkdevice
    agp/drm
  • /etc/modules.autoload.d/kernel-2.6 Module eintragen
  • /etc/fstab stimmen alle Platten?
  • /etc/make.conf die USE Flags/CFLAGS anpassen. Nettes Tool dafür:
    ufed

Fehler

Hier mal eine kurze Auflistung was ich Lars so alles falsch gemacht hatte.

Was

Solution

beim packen Rechte vergessen

tar czpf die Rechte werden mit p kopiert.

Hänger nach dem Booten in udev

unbedingt das /dev Directory mit kopieren

Hänger nach localmount

Vergessen nicht mehr vorhandene Partionen aus der /etc/fstab auszutragen.

grub blieb hängen

in der /boot/grub/grub.lst die falschen Partionen ausgewählt für root, hier ist die Partionsbenamsung eine echte Herausforderung (hd0,...)

Fehlermeldungen wie diese: "Error, do this: mount -t proc proc /proc"

Einmal prüfen, ob /proc wirklich leer ist.

Fehlermeldungen wie diese: "/dev/zero does not exist"

Gerne bei udev Problemen. Nachprüfen, ob /sys existiert, wenn nicht anlegen. Ja ne, ist klar, /sys und /dev/zero gehören zusammen winking smiley

Kernel panic, can't find root hd0,0

Treiber passt nicht, richtigen Treiber in Device Drivers -> SCSI device support -> SCSI low-level-drivers oder in Device Drivers -> Serial ATA and Parallel ATA drivers wählen (NICHT als Modul sondern als <*> markieren!)

Nachbetrachtung, Was bringst?

Ok, ich hätte auch ein neues frisches System installieren können, aber dafür hätte ich mich komplett durch die sehr gute Gentoo Anleitung quälen müssen. Dafür war ich einfach zu faul. grinning smiley

Jetzt habe ich mein altes gut lauffähiges Gentoo Linux zurück mit allen alten Problemen dafür aber auch mit allen alten Programmen und allen Einstellungen und wer schon mal ein System durch einen Plattencrash verloren hat, der weiß auch wie wertvoll die alten Einstellungen sind. Jetzt geht es an die Hardware Anpassung, als erstes Xorg...

Gleich mal das System auf Stand bringen

 emerge -u --deep --newuse world...

In diesem Sinne.

Nachtrag²

Wer selbiges mit Windows XP + M$ Office versucht, das klappt auch, nur muss man dann innerhalb von 3 Tagen gleich 2x bei M$ anrufen und Windows aktivieren dann M$ Office aktivieren. Dann klappt das kopieren nicht mit tar sondern nur mit dd if=/dev/hda ... und anschließendem Vergrößern der Partion mittels qtparted von Knoppix aus oder PartitionMagic. Und wenn M$ Vista kommt, muss sowieso alles neu installiert werden. Wozu? Für noch mehr bunt und 3D!

Ich will jetzt auch erstmal eine neue coole 3D Oberfläche

 ACCEPT_KEYWORDS="~x86" emerge beryl

Oder doch compiz?

 ACCEPT_KEYWORDS="~x86" emerge compiz

Ach, eigentlich reicht mir 2D grinning smiley

Siehe auch

p.s. lt. Murphy: Was schief gehen kann, geht schief!

Frische Änderungen | Menü editieren
zuletzt geändert am 07.10.2015 21:19 Uhr von Lars
Edit Page | Page History