Upline: Infos & Dokus Administration Linux

Festplatte umkopieren und Partitionierung ändern


Gelegentlich benötigt man mal eine kleinere/größere Festplatte und möchte jedoch das bestehende System nicht aufgeben. Hier ist eine kleine Anleitung dazu: Zur Veranschaulichung sollte ein sehr einfaches Bsp. genügen. Vorhanden ist eine Platte am Primary Master (/dev/hda) mit entsprechender Partitionierung. Ziel ist die für den Kopiervorgang am Secondary Master (/dev/hdc) angeschlossene Festplatte. Zuerst sollte diese mit den folgenden Befehlen partitioniert und vorbereitet werden. Ziel ist es, am Anfang eine Swap-Partition (ca. 2xRAM) zu erstellen und danach den Rest der Root-Partition (/) zukommen zu lassen. Für weitergehende Informationen zu den Befehlen und deren Verwendung sollten die man-Pages genügen. Nutzt das verwendete Linux das devfs-Filesystem, darf das entsprechende Verzeichnis natürlich nicht kopiert werden und muß per Hand (leer) erstellt werden. In diesem Fall müssen natürlich auch alle im folgenden verwendeten "/dev/hd..." entsprechend ersetzt werden.
# cfdisk /dev/hdc
# mkswap /dev/hdc1
# mkfs.ext3 /dev/hdc2
# mount /dev/hdc2 /mnt
# cd /mnt
# umask 022
# mkdir cdrom floppy mnt proc tmp
# chmod 1777 tmp
# chmod a-w proc
# cd -
# tar -cSf - /bin /boot /dev /etc /home /lib /opt /root /sbin /usr /var /vmlinuz|tar -xSf - /mnt
Je nach Geschwindigkeit der Festplatten und Größe des Systems kann man hier eine entsprechende Pause einplanen :o) ...


Mit
# vi /mnt/etc/fstab
bekommt man die Partitionszuordung des neuen Systems, welche von Hand entsprechend angepaßt werden muß. In meinem Bsp. sollte sie etwa wie folgt aussehen:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type>  <options>          <dump>  <pass>
/dev/hda2       /             ext3    errors=remount-ro  0       1   
/dev/hda1       none          swap    sw                 0       0
proc            /proc         proc    defaults           0       0
/dev/fd0        /floppy       auto    user,noauto        0       0
/dev/cdrom      /cdrom        iso9660 ro,user,noauto     0       0
Als nächstes muß entweder die /etc/lilo.conf oder die /boot/grub/grub.conf angepaßt werden, je nachdem, welchen Boot-Manager man verwendet, so daß das Root-Verzeichnis auf /dev/hda2 zeigt. Jetzt kommt der etwas schwierigere Teil, für den man sicherheitshalber eine Linux-Boot-CD oder Diskette greifbar haben sollte. Die Informationen, wo sich die Root- und Swap-Partitionen befinden werden nämlich fest in den Kernel kompiliert und können nachträglich (so auch während der Inst. einer Distribution) nur mit dem Befehl rdev verändert werden. Aber auch LILO ändert die Einstellungen automatisch (GRUB - don't know?). Wer trotzdem lieber rdev direkt benutzen will, sollte die nötigen Änderungen durch folgende Befehle erreichen können (Hinweis: Ich hab's nicht noch mal nachvollzogen!):
# rdev /mnt/vmlinuz /dev/hda2
# rdev -s /mnt/vmlinuz /dev/hda1
Mit LILO sollte es folgendes Kommando sein:
# lilo -b /dev/hdc -C /mnt/etc/lilo.conf
Jetzt folgt die Stunde der Wahrheit: Rechner herunterfahren (init 0 oder shutdown -h now oder halt), Festplatten wechseln und hoffen, daß der Rechner die frisch kopierte Platte hochfährt. Sollte etwas nicht geklappt haben, dann von einer Rettungs-CD aus booten (z.B. SuSE-CD und dann im Menü auf installiertes System booten gehen oder per Knoppix etc.). Sobald man wieder auf das System zugreifen kann entsprechende oben erwähnte Dateien nochmals überprüfen. Falls irgendetwas in der LILO-Konfiguration geändert wurde, diesen wieder starten, um die Änderungen in den MBR zu schreiben. Der Grub benötigt keinen solchen Neustart, da er seine Konfiguration bei jedem Booten neu einliest.