Highlighter

вторник, 1 мая 2012 г.

Делаем из AMI vmdk

Есть амазоновский образ диска ami, нужно запустить его в виртуалке. Используется virtualbox. Попутно создадим образ диска другого формата (любой, поддерживаемый VB)

Это делается, в принципе, несложно.
Сначала нужно скачать Amazon EC2 AMI Tools.
Дальше поставить ruby и расшифровать образ.
Утилиты от амазона лежат в /media/sf_Common/ec2-ami-tools, образ лежит в папке /media/sf_Common/jira.

Для того, чтобы утилиты работали, нужно указать папку, где они находятся.
 export EC2_HOME=/media/sf_Common/ec2-ami-tools
Дальше распаковываем
/media/sf_Common/ec2-ami-tools/bin/ec2-unbundle -k our_private_key.pem -d /media/sf_Common -s /media/sf_Common/jira -m /media/sf_Common/jira/image.manifest.xml

После этого у нас появился файл image в папке /media/sf_Common/, это образ раздела.
Теперь у нас есть два варианта: создать виртуальный диск, с такими же характеристиками, как и у образа, либо просто примонтировать и скопировать всё с сохранением прав. Я выбрал второй вариант.

Создаём раздел на sdb и на sdb1 создаём файловую систему ext3.
Затем монтируем образ в /tmp/a, а наш диск в /tmp/b
mount -o loop /media/sf_Common/image /tmp/a
mount /dev/sdb1 /tmp/b

Копируем всё с сохранением прав
cp -ra /tmp/a/* /tmp/b

После этого чрутимся в новую систему
mount -t proc proc /tmp/b/proc
mount -o rbind /dev /tmp/b/dev
chroot /tmp/b/

ставим grub
grub
root (hd1,0)
setup (hd1)
quit

Проверяем, что у нас прописан правильный раздел в /boot/grub/menu.lst, выключаемся, удаляем все диски, которые не нужны и пробуем загрузиться. Мне пришлось дополнительно отредактировать /etc/inittab и раскомментировать строчку
1:2345:respawn:/sbin/mingetty tty1

В результате система стала предлагать залогиниться локально.
Ещё проблема может быть с тем, что в virtualbox нереально загрузиться с xen, но тут было обычное ядро.

Комментариев нет:

Отправить комментарий