Клонировать диск работающей виртуальной машины и запустить его на VirtualBox

У меня следующая ситуация:

Мне нужно «клонировать» диски (sda, sdb) работающей виртуальной машины CentOS через SSH (я сделал этот шаг, выполнив это руководство ) и разверните их на чем-то вроде VirtualBox.

Я пробовал, но, к сожалению, после получения необработанных образов sda и sdb и преобразования их в VHD с помощью VBoxManage я добавил их в новую виртуальную машину и при запуске получаю сообщение «Нет загрузочного носителя».

Есть ли у вас какие-нибудь предложения?

Я попробовал выполнить автоматическое восстановление с компакт-диска CentOS live, но не нашел ни одного восстанавливаемого диска; Я также пытался получить любую информацию с помощью fdisk, но, к сожалению, похоже, что он не может прочитать ни один раздел ...

Большое спасибо за вашу помощь!

0
13.04.2017, 15:36
1 ответ

Если у вас есть доступ к сети с загрузочного Live CD, вы сможете сделать что-то вроде этого:

  1. получить корневую оболочку на Live CD на разделе VirtualBox VM

  2. и отформатируйте виртуальные диски по своему усмотрению. Если инструменты LVM находятся на Live CD, вы даже можете использовать LVM.

  3. запустите mkdir -p / target

  4. смонтируйте предполагаемые rootfs на / target, создайте каталоги для любых точек монтирования (например,/ target / home, / target / var и т. д.) и смонтировать соответствующие разделы.

  5. cd / target

  6. rsync -a --exclude proc / ** --exclude sys / ** --exclude dev / ** root @ remoteVM: / ./

(эта команда rsync может потребовать запустите с параметром - dry-run , пока он не станет подходящим)

  1. для i в dev dev / pts proc sys; сделать mount -o bind / $ i / target / $ i; done

  2. chroot / target .

  3. отредактируйте / etc / fstab и / etc / default / grub по мере необходимости, чтобы они соответствовали новой системе.

  4. update-grub

  5. exit

  6. unmount / target и все, что находится под ним (включая привязки выше)

  7. перезагружается.

В качестве альтернативы, вместо rsync , вы можете использовать tar для резервного копирования файловых систем удаленной виртуальной машины и поместить файлы tar.gz куда-нибудь с Live CD. исключить из резервной копии каталоги / proc, / dev и / sys.

Примечание: если вы запускаете mysql или postgres или что-нибудь, что записывает в файлы db или другие файлы, отличные от обычного текста, вы захотите закрыть эти службы до rsync . создание резервной копии базы данных для выгрузки всех баз данных в текст также является хорошей идеей.

запись в простые текстовые файлы (например, файлы журналов) во время rsync не так опасна, если вы не против потерять какие-либо записи журнала, которые произошли после запуска rsync .... по крайней мере, их не будет возможно любое повреждение файла.

Журнал systemd является двоичным. поэтому, если вы используете systemd, вам нужно выключить journald, чтобы избежать повреждения. Понятия не имею, возможно ли это без выключения системы.

0
28.01.2020, 04:50

Теги

Похожие вопросы