Linux auf andere Platte migrieren
Benz
- software
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
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";
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?
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";
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
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 :/
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ß,
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
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";
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