Проект

Общее

Профиль

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

Dmitry Chernyak, 07.07.2016 01:10

1 1 Dmitry Chernyak
h1. Импорт виртуальных машин Linux
2 1 Dmitry Chernyak
3 4 Dmitry Chernyak
[[OVERVIEW]] | [[INSTALL]] | [[SETUP]] | [[OPERATIONS]] | [[LICENSE]]
4 4 Dmitry Chernyak
[[ОБЗОР]] | [[УСТАНОВКА]] | [[НАСТРОЙКА]] | [[ОПЕРАЦИИ]] | [[ЛИЦЕНЗИЯ]]
5 4 Dmitry Chernyak
6 1 Dmitry Chernyak
<pre>
7 1 Dmitry Chernyak
gnt-instance activate-disks megaplan
8 1 Dmitry Chernyak
</pre>
9 2 Dmitry Chernyak
10 1 Dmitry Chernyak
Команда выведет имя диска
11 1 Dmitry Chernyak
12 1 Dmitry Chernyak
Залить raw-образ командой
13 1 Dmitry Chernyak
14 1 Dmitry Chernyak
<pre>
15 1 Dmitry Chernyak
dd if=ОБРАЗ of=ДИСК bs=64k
16 1 Dmitry Chernyak
</pre>
17 1 Dmitry Chernyak
18 1 Dmitry Chernyak
<pre>
19 1 Dmitry Chernyak
gnt-instance deactivate-disks megaplan
20 1 Dmitry Chernyak
</pre>
21 1 Dmitry Chernyak
22 1 Dmitry Chernyak
h2. Настроить виртуальную машину
23 1 Dmitry Chernyak
24 1 Dmitry Chernyak
При создании обычных виртуальных машин используется внутреннее ядро и загрузчик pygrub,
25 3 Владимир Ипатов
настройки которого находятся в /boot/grub/menu.lst виртуальной машины.
26 1 Dmitry Chernyak
27 1 Dmitry Chernyak
<pre>
28 3 Владимир Ипатов
Можно его создать:
29 3 Владимир Ипатов
default         0
30 3 Владимир Ипатов
timeout         5
31 3 Владимир Ипатов
color cyan/blue white/blue
32 3 Владимир Ипатов
33 3 Владимир Ипатов
title           Debian GNU/Linux, default kernel
34 3 Владимир Ипатов
root            (hd0,0)
35 3 Владимир Ипатов
kernel          /vmlinuz root=/dev/xvda1 ro
36 3 Владимир Ипатов
initrd          /initrd.img
37 3 Владимир Ипатов
38 3 Владимир Ипатов
title           Debian GNU/Linux, default kernel (single-user mode)
39 3 Владимир Ипатов
root            (hd0,0)
40 3 Владимир Ипатов
kernel          /vmlinuz root=/dev/xvda1 ro single
41 3 Владимир Ипатов
initrd          /initrd.img
42 3 Владимир Ипатов
</pre>
43 3 Владимир Ипатов
44 3 Владимир Ипатов
В данном случае в root= указан первый раздел первого диска.
45 3 Владимир Ипатов
Однако, в поставляемых образах возможно рутовым разделом будет другой раздел, в этом случае надо подсчитать их и записать нужный.
46 3 Владимир Ипатов
А в случае, если внутри образа есть LVM, нужно узнать имя vg и имя тома с рутовым разделом:
47 3 Владимир Ипатов
<pre>
48 3 Владимир Ипатов
gnt-instance activate-disks
49 3 Владимир Ипатов
kpartx -av /dev/mapper/то-что-вывел-activate-disks
50 3 Владимир Ипатов
vgscan
51 3 Владимир Ипатов
vgchange -ay
52 3 Владимир Ипатов
</pre>
53 3 Владимир Ипатов
54 3 Владимир Ипатов
После этого нужный нам vg будет доступен и мы сможем смонтировать его волюмы.
55 3 Владимир Ипатов
После того, как нашли имя рутового раздела, вписываем его в root:
56 3 Владимир Ипатов
kernel          /vmlinuz root=/dev/mapper/имя--группы-имя--тома ro
57 3 Владимир Ипатов
58 3 Владимир Ипатов
59 3 Владимир Ипатов
Если не хочется вмешиваться в полученный образ, то можно загрузить систему используя внешнее ядро.
60 3 Владимир Ипатов
Для этого нужно узнать путь к рутовому разделу способом, описанным выше, затем, если требуется, скопировать ядро и инитрд из виртуальной машины и положить в /boot (например, если виртуальная машина заметно новее гипервизора) (также нужно затем скопировать ядро и инитрд на все ноды кластера командой gnt-cluster copyfile).
61 3 Владимир Ипатов
62 3 Владимир Ипатов
добавление аргумента ядра console=hvc0 может потребоваться, если ход загрузки не виден на xen консоли.
63 3 Владимир Ипатов
64 3 Владимир Ипатов
Дальше нужно задать настройки для инстанса:
65 3 Владимир Ипатов
66 3 Владимир Ипатов
<pre>
67 1 Dmitry Chernyak
gnt-instance modify -H use_bootloader=false megaplan
68 1 Dmitry Chernyak
gnt-instance modify -H initrd_path=/boot/initrd.img-3.2.0-33-generic megaplan
69 1 Dmitry Chernyak
gnt-instance modify -H kernel_path=/boot/vmlinuz-3.2.0-33-generic megaplan
70 1 Dmitry Chernyak
gnt-instance modify -H kernel_args='ro console=hvc0' megaplan
71 3 Владимир Ипатов
gnt-instance modify -H root_path=/dev/mapper/megaplan--box-root megaplan
72 1 Dmitry Chernyak
</pre>
73 1 Dmitry Chernyak
74 1 Dmitry Chernyak
h2. Запустить виртуальную машину
75 1 Dmitry Chernyak
76 1 Dmitry Chernyak
<pre>
77 1 Dmitry Chernyak
gnt-instance startup megaplan
78 1 Dmitry Chernyak
</pre>