1

У меня есть система Linux, которую я хотел бы использовать для создания виртуальной машины.

Я установил VirtualBox.

Я смог использовать https://unix.stackexchange.com/questions/16299/using-a-lvm-partition-as-a-virtualbox-drive для создания VMDK из логического тома.

Я не уверен, какие процедуры мне следует предпринять, чтобы заполнить этот логический том и сделать его VMDK пригодным для использования образом системы, скопированным из существующей системы.

Было бы относительно просто сделать mkfs.ext3 /dev/vg1/vm_puppy , смонтировать его и скопировать все файлы по сети, но я не знаю, сделает ли это образ виртуальной машины, который можно использовать.

Как правильно заполнить этот VMDK загрузочной системой, если я уже знаю, как выполнить копирование файла?

2 ответа2

0

Решение, которое я в итоге использовал, вращалось вокруг создания двух виртуальных дисков (заимствование и идея от Алекса) для подключения к Настройкам> Хранилище> Контроллер SATA.

Я использовал VirtualBox GUI для создания 128M VMDK, содержащего MBR, и /dev/sda1 для /boot .

Другой VMDK, который я создал ранее из логического тома LVM, стал виртуальным /dev/sdb (без разделов).

Я загрузил установочный ISO-образ gentoo в виртуальный CD-ROM виртуальной машины («Настройки»> «Хранилище»> «Контроллер IDE») и загрузился с него. Когда установочная среда gentoo была запущена и работала, я смог создать раздел /dev/sda создать файловую систему /dev/sda1 /boot и скопировать ядро и другие файлы с исходного хоста. Я не разделил /dev/sdb потому что он уже содержал корневую файловую систему, которую я создал ранее.

Я смонтировал /dev/sdb и /boot соответствии с разделом «Подготовка дисков» и подключил некоторые виртуальные файловые системы в соответствии с « Монтированием необходимых файловых систем». С подготовленными файловыми системами я мог бы выполнить chroot и начать переконфигурировать ВМ, чтобы учесть различия между дисками исходного компьютера и дисками ВМ.

Мне пришлось обновить /etc/lilo.conf внутри виртуальной машины, чтобы использовать boot=/dev/sda и root=/dev/sdb .

Точно так же /etc/fstab нужно было изменить, так как исходный хост использовал много отдельных разделов (стиль, который за прошедшее десятилетие утратил популярность), и у виртуальной машины были только /dev/sdb для root и /dev/sda1 для /boot ,

У меня также было перекомпилировать ядро с поддержкой модуля ahci шата, и локальные сети e1000 Исходная машина очень старая.

Одним из недостатков этого процесса является то, что мне пришлось разделить виртуальный sda внутри работающей виртуальной машины. Я не знаю, существует ли процесс, который позволил бы мне разбить VMDK и заполнить его разделы файловыми системами и данными, не загружая виртуальную машину, которая ее использует.

Я не уверен, какие проблемы возникли бы, если бы я попытался перекомпилировать гостевое ядро, используя хост-операционную систему и chroot, а не перекомпилировать внутри виртуальной машины (что в любом случае потребовало бы установки ISO Gentoo).

Я не смог использовать Debian live ISO, потому что в какой-то момент процесса загрузки экран превратился в цветные полосы символов. Я предполагаю, что есть некоторая несовместимость с виртуальной видеокартой, и было проще просто получить gentoo, чем пролистать все связанные обсуждения этой ошибки, чтобы протестировать все предложенные решения.

0

Вы можете использовать на своей виртуальной машине два жестких диска, один из которых является физическим, образ которого вы хотите создать, а другой - виртуальный образ этого физического. Чтобы получить доступ к физическому диску, сделайте своеобразный указатель в vmdk как

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/vg1/vm_puppy

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

Когда вы закончите настройку этой "простой облегченной операционной системы" и внутри нее, просто используйте команду dd для создания полного образа физического жесткого диска.

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

PS Если у вас довольно большой жесткий диск (исходная система, которую вы хотите клонировать) и вы не потеряете место на клонированном образе, вы можете сделать это другим способом, создать полный архив оригинала с помощью команды tar и развернуть его на виртуальной машине. Таким образом, вы можете уменьшить пространство, используемое виртуальным диском. Вы можете переместить архив tar на виртуальную машину через общую папку VirtualBox. единственное, что вам нужно сделать дополнительно, это установить grub на виртуальный диск, на котором вы распаковываете архив

(Надеюсь, я правильно понимаю, что вы хотите)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .