Post by Ch. HanischPost by Falk Dµ?b bertPost by Ch. Hanischich 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)