Проект

Общее

Профиль

Импорт виртуальных машин Linux » История » Версия 3

Версия 2 (Dmitry Chernyak, 08.09.2014 11:08) → Версия 3/4 (Владимир Ипатов, 08.09.2014 14:14)

h1. Импорт виртуальных машин Linux

<pre>
gnt-instance activate-disks megaplan
</pre>

Команда выведет имя диска

Залить raw-образ командой

<pre>
dd if=ОБРАЗ of=ДИСК bs=64k
</pre>

<pre>
gnt-instance deactivate-disks megaplan
</pre>

h2. Настроить виртуальную машину

При создании обычных виртуальных машин используется внутреннее ядро и загрузчик pygrub,
настройки которого находятся в /boot/grub/menu.lst /boot/menu.lst виртуальной машины.

<pre>

Можно его создать:
default 0
timeout 5
color cyan/blue white/blue

title Debian GNU/Linux, default kernel
root (hd0,0)
kernel /vmlinuz root=/dev/xvda1 ro
initrd /initrd.img

title Debian GNU/Linux, default kernel (single-user mode)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda1 ro single
initrd /initrd.img
</pre>

В данном случае в root= указан первый раздел первого диска.
Однако, в поставляемых образах возможно рутовым разделом будет другой раздел, в этом случае надо подсчитать их и записать нужный.
А в случае, если внутри образа есть LVM, нужно узнать имя vg и имя тома с рутовым разделом:
<pre>
gnt-instance activate-disks
kpartx -av /dev/mapper/то-что-вывел-activate-disks
vgscan
vgchange -ay
</pre>

После этого нужный нам vg будет доступен и
Здесь мы сможем смонтировать его волюмы.
После того, как нашли имя рутового раздела, вписываем его в root:
kernel /vmlinuz root=/dev/mapper/имя--группы-имя--тома ro

Если
рекомендуем использовать внешнее ядро, поскольку это позволит не хочется вмешиваться в полученный образ, то можно загрузить систему используя внешнее ядро.
Для этого нужно узнать путь к рутовому разделу способом, описанным выше, затем, если требуется, скопировать ядро и инитрд из виртуальной машины и положить в /boot (например, если виртуальная машина заметно новее гипервизора) (также нужно затем скопировать ядро и инитрд на все ноды кластера командой gnt-cluster copyfile).
образ.

добавление аргумента ядра console=hvc0 может потребоваться, если ход загрузки не виден на xen консоли.

Дальше нужно задать настройки для инстанса:

<pre>
gnt-instance modify -H use_bootloader=false megaplan
gnt-instance modify -H initrd_path=/boot/initrd.img-3.2.0-33-generic megaplan
gnt-instance modify -H kernel_path=/boot/vmlinuz-3.2.0-33-generic megaplan
gnt-instance modify -H kernel_args='ro console=hvc0' megaplan
gnt-instance modify -H root_path=/dev/mapper/megaplan--box-root
megaplan
</pre>

h2. Запустить виртуальную машину

<pre>
gnt-instance startup megaplan
</pre>