Convierta la máquina virtual Vultr (nube) en la máquina virtual Virtual Box

Convierta la máquina virtual Vultr (nube) en la máquina virtual Virtual Box

Recientemente transfirí una imagen DD de mi VPS Vultr a la computadora de mi casa. Utilicé una máquina virtual Debian VirtualBox para crear un nuevo disco virtual, montar la imagen DD, sincronizar todos los archivos de la imagen DD al nuevo disco virtual. Edité /etc/fstabcon el nuevo UUID para el sistema de archivos raíz y edité /etc/networking/interfacescon la nueva interfaz en el disco virtual. Luego lo separé de esta VM.

Creé una nueva máquina virtual VirtualBox, adjunté este disco virtual recién creado y supuse que arrancaría. No es así. Todo lo que veo es un cursor parpadeante en una pantalla negra. No pasa nada más. Incluso hice rsync /bootdesde la máquina virtual Debian VirtualBox en funcionamiento. Sigue siendo sólo un cursor parpadeante.

¿Hay algo obvio que me estoy perdiendo? ¿Alguna idea? Gracias por tu contribución.

Respuesta1

Hay.

Antes de que exista el concepto de un sistema de archivos en el proceso de arranque, es necesario cargar algo de código que sea capaz de comprender un sistema de archivos; esto se llama cargador de arranque y normalmente se encuentra en los primeros sectores del disco o en un carpeta especial en una partición UEFI especial.

En su caso, lo más probable es que sea GRUB, que debe instalarse en la nueva imagen (nuevamente: ¡fuera del sistema de archivos raíz!)

Inicie desde un sistema Linux en vivo con modo de recuperación y (re)instale Grub en su disco virtual.

Respuesta2

Gracias a la respuesta de @Eugen Rieck, ¡lo hice funcionar!

También gracias ahttps://unix.stackexchange.com/questions/191218/how-to-install-grub-on-a-new-drivey ¿Cómo soluciono un UUID incorrecto en grub.cfg?

La solución:

  • Arranqué GParted Live y ejecuté una sesión de terminal.
  • 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(Obtuve el UUID anterior del archivo grub.cfg. Aparece varias veces, de ahí el reemplazo global por sed. Y el nuevo UUID proviene de blkid).

información relacionada