Discussion:
vdi-Platte in reale Partition umziehen
(zu alt für eine Antwort)
Ch. Hanisch
2014-03-05 16:19:55 UTC
Permalink
Hallo,

ich habe mir Debian 7 in einer VirtualBox installiert.
Nun möchte ich die dortige Installation in eine reale Partition auf
einer externen Festplatte (/dev/sdc11) migrieren und von dort dann auch
booten können.

Geht das überhaupt und wenn ja, wie?

Gruß
Ch. Hanisch
Falk Dµ?b bert
2014-03-05 20:34:39 UTC
Permalink
Post by Ch. Hanisch
ich habe mir Debian 7 in einer VirtualBox installiert.
Nun möchte ich die dortige Installation in eine reale Partition auf
einer externen Festplatte (/dev/sdc11) migrieren und von dort dann auch
booten können.
Geht das überhaupt und wenn ja, wie?
Ich würde es mit einem Imager wie Clonzilla versuchen.

Falk D.
Ch. Hanisch
2014-03-06 09:10:26 UTC
Permalink
Hallo,
Post by Falk Dµ?b bert
Post by Ch. Hanisch
ich habe mir Debian 7 in einer VirtualBox installiert.
Nun möchte ich die dortige Installation in eine reale Partition auf
einer externen Festplatte (/dev/sdc11) migrieren und von dort dann auch
booten können.
Geht das überhaupt und wenn ja, wie?
Ich würde es mit einem Imager wie Clonzilla versuchen.
Ok. - also prinzipiell sollte das gehen.
Ich habe aber ein Problem mit der externen USB-Platte, die bei mir in
der Virtuellen Maschine
Geräte -> USB-Geräte -> Kein USB-Gerät angeschlossen
nicht erscheint.

Auch mit Clonzilla bewege ich mich nur auf der vdi-Platte.

Wie kriege ich die externe USB-Platte (/dev/sdc11) mit ins Spiel?

Gruß
Ch. Hanisch
Juergen P. Meier
2014-03-06 09:15:50 UTC
Permalink
Post by Ch. Hanisch
Post by Falk Dµ?b bert
Post by Ch. Hanisch
ich habe mir Debian 7 in einer VirtualBox installiert.
Nun möchte ich die dortige Installation in eine reale Partition auf
einer externen Festplatte (/dev/sdc11) migrieren und von dort dann auch
booten können.
Geht das überhaupt und wenn ja, wie?
Ich würde es mit einem Imager wie Clonzilla versuchen.
Ok. - also prinzipiell sollte das gehen.
Ich habe aber ein Problem mit der externen USB-Platte, die bei mir in
der Virtuellen Maschine
Geräte -> USB-Geräte -> Kein USB-Gerät angeschlossen
nicht erscheint.
Auch mit Clonzilla bewege ich mich nur auf der vdi-Platte.
Wie kriege ich die externe USB-Platte (/dev/sdc) mit ins Spiel?
Wozu der Aufwand? Das ist doch kein Wintendo, das ist ein Linux.

Eine Linux-VM auf Hardware packen geht recht einfach:

Da du schon oben von /dev/sdc11 schreibst, gehe ich davon aus dass die
exerne Festplatte per USB angesprochen wird, dass du schon direkt an die
Virtuelle Linux-Maschine angeschlossen hast (so dass die Linux-VM auf
das USB-Laufwerk zugreift, nicht der Host).

Jetzt kannst du das laufende Linux-system ganz einfach auf die
festplatte klonen: (fuer geeignete Werte von einfach)

1.) Zielplatte passend partitionieren. Wenn die Platte groeser als
500Mb ist (vermutlich), brauchst du mindestens zwei partitionen:
eine kleine /boot Partition (z.B. 500 MByte aks 500 Mio Byte aka 480
MiByte) und den rest wuerde ich in eine dicke / partition (root)
packen. Be bedarf noch eine Swap-Partition (2*RAM).
Das partitioniertool (csfdisk, cfdisk oder fdisk) sollte dir erlauben
eine Partition (die /boot) als Bootable zu markieren.
2.) formattieren (mkfs), je nach gusto. Die /boot wuerde ich jedoch
nur als ext2fs ohne journalling formatieren. wegen KISS
3.) System kopieren
Dazu solltest du alle Daemons und services anhalten, die du nicht
unbedingt brauchst (bei debian: per init 2 in den runlevel 2 wechseln
oder manuell alles an services stoppen was Datenbankfiles o.Ae. offen
haelt).
Jetzt kannst du ganz einfach alle Dateien kopieren (die neuen
dateisysteme nach /mnt/newroot bzw. /mnt/newboot mounten vorher!):

tar csSpPf - -C / --one-file-system . | tar xsSpPf - -C /mnt/newroot
tar csSpPf - -C /boot --one-file-system . | tar xsSpPf - -C /mnt/newboot

Falls du mehrere Dateisysteme hast, musst du das fuer jedes fs analog
machen.

4.) Kopiertes System verifizieren:

Das ist ein wenig tricky, erstmal alles von /dev/sdc unmounten.

Dann das neue Root-fs nach /mnt mounten.
dann alle weiteren dateisysteme in die entsprechenden
unterverzeichnisse von /mnt mounten (z.B. /mnt/boot, /mnt/var etc.)
Jetzt fehlen noch binding-mounts fuer die pseudo-dateisysteme:
mount -B /proc /mnt/proc
mount -B /dev /mnt/dev
mount -B /sys /mnt/sys
mount -B /dev/shm /mnt/dev/shm
mount -B /dev/pts /mnt/dev/pts
Und schon kannst du den Klon mit "chroot /mnt /bin/bash" austesten.

Im chroot solltest dann als erstes die dortige /etc/fstab und
die grub-config bzw. lilo.conf (der bootloader halt) anpassen.

Wenn in der /etc/fstab die Dateisyseme per GUUID referenziert werden,
musst du die von den neu erstellten Dateisystemen nehemn (tune2fs -i).

Auch alle anderen Verweise auf Dateisystemzugehoerigkeiten (boot/root)
muessen auf die neue Platte zugeschnitten werden.
Bei Debian muesste /etc/fstab und die grub-config reichen.
Dann kannst du auch den boot-loader auf die neue Platte schreiben und
bist fertig (sync, umount etc. natuerlich).

Das Ergebnis ist ein boot-faehiger Klon auf der externen Platte.

Okay, einfach geht vielleicht anders, aber wenn man das einmal gemacht
hat, hat man uebung :)

Juergen
--
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)
Ch. Hanisch
2014-03-06 14:52:29 UTC
Permalink
Hallo,

danke erst mal für die ausführlichen Hinweise.

Nachdem ich mich in Benutzer und Gruppen (KUser) -> Gruppe vboxusers ->
BENUTZER eingetragen hatte, konnte ich auch unter
Geräte -> USB-Geräte -> jMicron USB to ATA/ATAPI Bridge [0100]
meine externe USB-Platte einbinden.

Mit Clonzilla kam ich nicht zurecht, da mit
part_to_local_part Klon_einer_lokalen_Partition_auf_eine_lokale_Partition
die Ziel-Partitionen nur bis /dev/sdb7 statt wie nötig bis /dev/sdb14
gingen.
Ich habe dann mit einer SystemrescurCD
1) die Zielpartitionen auf /dev/sdb13 '/' und /dev/sdb14 '/home'
vorbereitet und formatiert (ext4 und ext3) und dann einfach mit
2)
dd if=/dev/sda1 of=/dev/sdb13 bs=1M
dd if=/dev/sda3 of=/dev/sdb14 bs=1M
kopiert.

Allerdings, da die Zielpartitionen jeweils größer waren als die
Quell-Partitionen, ist jetzt der verfügbare Platz auf der externen
Festplatte nicht voll ausgeschöpft.

Wie kann man das korrigieren?

Ansonsten läuft es auf der realen Festplatte.

Gruß
Ch. Hanisch
Juergen P. Meier
2014-03-07 06:26:41 UTC
Permalink
Post by Ch. Hanisch
1) die Zielpartitionen auf /dev/sdb13 '/' und /dev/sdb14 '/home'
vorbereitet und formatiert (ext4 und ext3) und dann einfach mit
2)
dd if=/dev/sda1 of=/dev/sdb13 bs=1M
dd if=/dev/sda3 of=/dev/sdb14 bs=1M
kopiert.
Allerdings, da die Zielpartitionen jeweils größer waren als die
Quell-Partitionen, ist jetzt der verfügbare Platz auf der externen
Festplatte nicht voll ausgeschöpft.
Wie kann man das korrigieren?
Je nach dem welches DAteisystem du verwendet hast, kannst du es evtl.
einfach resizen. Ext2fs und Ext3fs kann man z.B. mit resize2fs vergroessern
(das sollte auch gemounted gehen), und waere genau fuer deinen Fall
geeignet: Die partition ist bereits groesser als das Dateisystem
darauf bisher, resize2fs sagt dem Filesystem dass es jetzt den ganzen
Platz verwenden kann.

Du benoetigst die genaue Anzahl der Sektoren/Bloecke deiner
Partitionen auf sdb13 und sdb14 (einfach aus /proc/partitions auslesen)

Juergen
--
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)
Ch. Hanisch
2014-03-07 12:24:39 UTC
Permalink
Hallo,
Post by Juergen P. Meier
Post by Ch. Hanisch
Allerdings, da die Zielpartitionen jeweils größer waren als die
Quell-Partitionen, ist jetzt der verfügbare Platz auf der externen
Festplatte nicht voll ausgeschöpft.
Wie kann man das korrigieren?
Je nach dem welches DAteisystem du verwendet hast, kannst du es evtl.
einfach resizen. Ext2fs und Ext3fs kann man z.B. mit resize2fs vergroessern
(das sollte auch gemounted gehen), und waere genau fuer deinen Fall
geeignet: Die partition ist bereits groesser als das Dateisystem
darauf bisher, resize2fs sagt dem Filesystem dass es jetzt den ganzen
Platz verwenden kann.
Du benoetigst die genaue Anzahl der Sektoren/Bloecke deiner
Partitionen auf sdb13 und sdb14 (einfach aus /proc/partitions auslesen)
Ich habe es mit Gparted -> Partition -> Überprüfen im ausgehängten
Zustand (umount) gemacht.
Jetzt scheint alles wieder zu stimmen.

Gruß
Ch. Hanisch
Marc Haber
2014-03-07 16:50:13 UTC
Permalink
Post by Ch. Hanisch
ich habe mir Debian 7 in einer VirtualBox installiert.
Nun möchte ich die dortige Installation in eine reale Partition auf
einer externen Festplatte (/dev/sdc11) migrieren und von dort dann auch
booten können.
Geht das überhaupt und wenn ja, wie?
Ich würde das so machen wie Umzug von Hardware auf Hardware: Auf
Quelle und Ziel ein rescuesystem booten und die Dateisysteme rsyncen.

Es mag elegantere Methoden geben, aber das geht wenigstens ohne
detaillierte Kenntnisse der Virtualisierungs-Interna.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Loading...