Konvertieren Sie Vultr (Cloud) VM in Virtual Box VM

Konvertieren Sie Vultr (Cloud) VM in Virtual Box VM

Ich habe vor Kurzem ein DD-Image meines Vultr VPS auf meinen Heimcomputer übertragen. Ich habe eine Debian VirtualBox VM verwendet, um eine neue virtuelle Festplatte zu erstellen, das DD-Image zu mounten und alle Dateien vom DD-Image per Rsync auf die neue virtuelle Festplatte zu übertragen. Ich habe /etc/fstabdie neue UUID für das Root-Dateisystem bearbeitet und /etc/networking/interfacesdie neue Schnittstelle auf der virtuellen Festplatte bearbeitet. Dann habe ich es von dieser VM getrennt.

Ich habe eine brandneue VirtualBox-VM erstellt und diese neu erstellte virtuelle Festplatte angeschlossen und angenommen, sie würde booten. Das tut sie nicht. Ich bekomme nur einen blinkenden Cursor auf einem schwarzen Bildschirm. Sonst passiert nichts. Ich habe sogar /bootvon der funktionierenden Debian-VirtualBox-VM aus rsync ausgeführt. Immer noch nur ein blinkender Cursor.

Gibt es etwas Offensichtliches, das ich übersehe? Irgendwelche Ideen? Danke für Ihren Beitrag.

Antwort1

Es gibt.

Bevor das Konzept eines Dateisystems im Startvorgang existiert, muss etwas ein Stück Code laden, das ein Dateisystem verstehen kann – das nennt man den Bootloader und befindet sich normalerweise in den ersten paar Sektoren der Festplatte oder in einem speziellen Ordner auf einer speziellen UEFI-Partition.

In Ihrem Fall ist es höchstwahrscheinlich GRUB, das auf dem neuen Image installiert werden muss (wiederum: außerhalb des Root-Dateisystems!)

Booten Sie von einem Live-Linux-System im Wiederherstellungsmodus und installieren Sie Grub (neu) auf Ihrer virtuellen Festplatte.

Antwort2

Dank der Antwort von @Eugen Rieck hat es funktioniert!

Auch dankhttps://unix.stackexchange.com/questions/191218/how-to-install-grub-on-a-new-driveUnd wie behebe ich eine falsche UUID in grub.cfg?

Die Lösung:

  • Ich habe GParted Live gebootet und eine Terminalsitzung ausgeführt.
  • sudo mount /dev/sda1 /mnt
  • sudo /mnt/usr/sbin/grub-install /dev/sda --skip-fs-probe --boot-directory=/mnt/boot
  • sudo sed -i 's/OLD-UUID/NEW-UUID/g' /mnt/boot/grub/grub.cfg(Die alte UUID habe ich aus der Datei grub.cfg. Sie ist mehrfach aufgeführt, daher die globale Ersetzung durch sed. Und die neue UUID stammt von blkid.)

verwandte Informationen