Benz: Linux auf andere Platte migrieren

Hi,

Ich muss mein Server-Linux von einer 4GB-Partition/Platte auf eine 2GB-Partition/Platte migrieren (belegt sind nur 300MB). Kann ich das schnell mit "Boardmitteln" machen, oder muss ich mich wie bei Windows umständlich erst nach einem Image Tool umsehen, damit das ganze am Ende bootet etc?

Danke,
Jens

  1. echo $begrüßung;

    Ich muss mein Server-Linux von einer 4GB-Partition/Platte auf eine 2GB-Partition/Platte migrieren (belegt sind nur 300MB). Kann ich das schnell mit "Boardmitteln" machen, oder muss ich mich wie bei Windows umständlich erst nach einem Image Tool umsehen, damit das ganze am Ende bootet etc?

    Falls es sich um die Partition handelt, die im laufenden Betrieb verwendet wird, boote zunächst von einer CD. Mounte beide Partitionen und kopiere mittels cp -a. cp -a ist eine Zusammenfassung aus dpR und kopiert inklusive die bestehenden Rechte beizubehalten.

    In einem zweiten Terminal kannst du dir den Fortschritt anzeigen lassen: watch ist ein Tool, das ein Kommando wiederholt aufruft. watch df -h zeigt dir die aktuelle Belegung der Partitionen fortlaufend an.

    echo "$verabschiedung $name";

    1. Danke schonmal,

      das heisst also, ich könnte nicht das gerade "laufende" Betriebssystem auf eine andere Platte kopieren? Können manche Dateien nicht gelesen werden, solang sie vom Betriebssystem "benutzt" werden oder wieso?

      Und wie geht das, dass am Ende das ganze bootet, wird es einfach reichen mit cfdisk das bootable flag zu setzen? Muss ich nicht noch irgendwie etwas am MBR ändern etc?

      1. echo $begrüßung;

        das heisst also, ich könnte nicht das gerade "laufende" Betriebssystem auf eine andere Platte kopieren? Können manche Dateien nicht gelesen werden, solang sie vom Betriebssystem "benutzt" werden oder wieso?

        Du kannst es probieren, ich tät das nicht. Wenn du Zeit und Lust auf Experimente hast, nur zu :-) Vorher ein Backup ziehen, am besten vom nicht laufenden System. Ähm, ja.

        Und wie geht das, dass am Ende das ganze bootet, wird es einfach reichen mit cfdisk das bootable flag zu setzen? Muss ich nicht noch irgendwie etwas am MBR ändern etc?

        Kommt ganz drauf an, wie das jetzige System konfiguriert ist. Der Bootloader muss natürlich, wenn sich die Gegebenheiten ändern, umkonfiguriert werden. Und da der MBR von cp nicht erfasst wird, ist auch noch eine Installation des Bootloaders im MBR vorzunehmen.

        echo "$verabschiedung $name";

        1. Moin Moin!

          /etc/fstab sollte man ggf. anpassen, danach von einem Bootmedium (Installations-CD) den Bootloader neu installieren (sudo chroot /mnt /sbin/lilo bzw. sudo chroot /mnt /sbin/grub, je nach Distribution).

          Für mehr Details wären Name und Nummer der Distribution sehr hilfreich, ebenso die Antwort auf die Frage, ob das ein Plattentausch ist oder ob neue Platten eingebaut wurden.

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
          1. Hi,

            das ist die Ubuntu Gutsy (7.10, neueste) Server Version. Es soll am Ende ein Tausch sein.

            Aha, ich kann also von einer Boot-CD den Bootloader auch für andere (gerade nicht "laufende") Linux installieren. Und dann bräuchte ich wohl nur noch den MBR schreiben, oder ist das gar nicht nötig, wenns eh nur die erste Partition gibt? Oder wird Grub standardmäßig nicht eh als MBR geschrieben?

            Sorry, blicke da noch nicht ganz durch :/

            1. Hellihello Zsammen,

              dumme Frage, wären die Platten ident, könnte er nicht von CD starten und dann mit dd ein image erstellen? Auch dann, wenn die andere HD größer wäre? Dann wäre doch auch der MBR mit bei.

              Dank und Gruß,

              frankx

              --
              tryin to multitain  - Globus = Planet != Welt
              1. Moin Moin!

                Hellihello Zsammen,

                dumme Frage, wären die Platten ident, könnte er nicht von CD starten und dann mit dd ein image erstellen? Auch dann, wenn die andere HD größer wäre? Dann wäre doch auch der MBR mit bei.

                Könnte klappen, wenn die Platten exakt gleich viele Sektoren haben. Wenn die Zielplatte größer ist, paßt die Partitionstabelle nicht zur Platte, was aber außer ein paar verlorenen Mega-/Gigabytes nichts macht.

                cp -a kopiert nur das Dateisystem. Die Loader von lilo und grub existieren außerhalb des Dateisystems, zumindest das erste kleine Stückchen, das den Rest nachlädt. Das kann cp -a nicht kopieren. Die neue Platte muß partitioniert (cfdisk, fdisk, sfdisk) werden, dann müssen Dateisysteme angelegt werden (mke2fs -j oder mkreiserfs, mkswap nicht vergessen!), dann kopiert man alles von der alten auf die neue Platte. Dann ggf. Anpassungen an /etc/fstab, /etc/lilo.conf, grub-Konfiguration vornehmen (es sei denn, Device-Namen sind über das Kopieren unverändert geblieben), und dann aus dem auf der Zielplatte vorhandenen System(!) den Bootloader neu installieren:

                chroot /mnt/neueplatte
                mount -t proc proc /proc
                mount -t sysfs sysfs /sysfs
                lilo # bzw. grub mit einer Hand voll Parametern
                umount /sysfs
                umount /proc
                exit

                Alexander

                --
                Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
      2. echo $begrüßung;

        das heisst also, ich könnte nicht das gerade "laufende" Betriebssystem auf eine andere Platte kopieren? Können manche Dateien nicht gelesen werden, solang sie vom Betriebssystem "benutzt" werden oder wieso?

        Da fällt mir grad ein, das du ja auch /dev mitkopieren musst. Wenn das nicht einfach nur "kalte" Einträge auf der Platte sind, sondern das Betriebssystem beim Lesen von /dev/random und Konsorten Inhalt vorgaukelt, ...

        echo "$verabschiedung $name";

        1. Moin Moin!

          Da fällt mir grad ein, das du ja auch /dev mitkopieren musst. Wenn das nicht einfach nur "kalte" Einträge auf der Platte sind, sondern das Betriebssystem beim Lesen von /dev/random und Konsorten Inhalt vorgaukelt, ...

          ... macht das gar nichts, weil cp -a schlau genug ist, device nodes als nodes zu kopieren (sprich: stat() und mknod() statt stat(), read(), write()).

          Im schlimmsten Fall (/dev in RAMDisk per udev gefüllt) müllt man sich das /dev-Verzeichnis auf der neuen Platte unnötig zu.

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".