Конвертировать виртуальную машину Vultr (облако) в виртуальную машину Virtual Box

Конвертировать виртуальную машину Vultr (облако) в виртуальную машину Virtual Box

Недавно я перенес образ DD моего Vultr VPS на свой домашний компьютер. Я использовал Debian VirtualBox VM для создания нового виртуального диска, смонтировал образ DD, синхронизировал все файлы из образа DD на новый виртуальный диск с помощью rsync. Я отредактировал /etc/fstabс новым UUID для корневой файловой системы и отредактировал /etc/networking/interfacesс новым интерфейсом на виртуальном диске. Затем я отсоединил его от этой VM.

Я создал совершенно новую виртуальную машину VirtualBox, подключил этот недавно созданный виртуальный диск и предположил, что он загрузится. Но он не загрузился. Все, что я получаю, это мигающий курсор на черном экране. Больше ничего не происходит. Я даже сделал rsync /bootиз работающей виртуальной машины Debian VirtualBox. Все еще только мигающий курсор.

Есть ли что-то очевидное, что я упускаю? Есть мысли? Спасибо за ваш вклад.

решение1

Есть.

Прежде чем в процессе загрузки появится концепция файловой системы, что-то должно загрузить фрагмент кода, способный понимать файловую систему. Он называется загрузчиком и обычно располагается в первых нескольких секторах диска или в специальной папке на специальном разделе UEFI.

В вашем случае это, скорее всего, GRUB, который необходимо установить на новый образ (опять же: вне корневой файловой системы!)

Загрузитесь с работающей системы Linux в режиме восстановления и (пере)установите Grub на виртуальный диск.

решение2

Благодаря ответу @Eugen Rieck у меня все заработало!

Также спасибоhttps://unix.stackexchange.com/questions/191218/how-to-install-grub-on-a-new-driveи как исправить неправильный UUID в grub.cfg?

Решение:

  • Я загрузил GParted Live и запустил терминальный сеанс.
  • 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(Я взял старый UUID из файла grub.cfg. Он указан несколько раз, отсюда и глобальная замена на sed. А новый UUID берется из blkid.)

Связанный контент