Перетворення EC2 AMI у зображення vmdk


18

Я наблизився до того, щоб Amazon Linux завантажувався всередині VirtualBox, завдяки цій відповіді та на цих веб-сайтах . Короткий огляд кроків, які я вжив:

  1. Запустіть екземпляр EC2 за допомогою 64-розрядного AMI Amazon Linux 2011.09
  2. ddвміст тома EBS переходить sshу локальний файл зображення.
  3. Встановіть файл зображення як пристрій із зворотним зв'язком, а потім до місцевої точки монтажу.
  4. Створіть новий файл із зображенням порожнього диска, розділ із зміщенням завантажувача та створіть файлову систему ext4.
  5. Встановіть новий розділ зображення та скопіюйте все із зображення EC2.
  6. Встановіть grub (використовуючи grub-legacy-ec2пакет Ubuntu , а не grub2).
  7. Перетворіть файл зображення у vmdk за допомогою qemu-img.
  8. Створіть новий VM VirtualBox за допомогою vmdk.

Тепер VM завантажує, grub навантажує, і ядро ​​знайдено. Але це не вдається, коли він намагається змонтувати кореневий пристрій:

dracut Warning: No root device "block:/dev/xvda1" found

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.


dracut Warning: Signal caught!

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1

Я спробував змінити, /boot/grub/menu.lstщоб знайти кореневий пристрій за міткою та UUID, але нічого не працює. Я здогадуюсь, що ядро ​​xen не сумісне з VirtualBox.

Обґрунтування всіх цих зусиль полягає в тому, щоб зробити коробку Vagrant максимально наближеною до виробничої навколишньої обстановки, щоб місцеві випробовування можна було перевірити на місцевому рівні. Я знаю, що робити тестові запуски на EC2 дешево, але поганий зв’язок часто руйнує досвід. Плюс було б дуже приємно мати віртуальну машину з виробничим середовищем, щоб колегам не довелося встановлювати все під сонцем, щоб тільки встати і працювати з розробкою додатків.

Якби я спробував запустити інше ядро, яке ядро ​​могло б я стати максимально наближеним до Amazon Linux 2011.09?


Робив роботу, подібну до вас, і знайшов рішення на іншому посиланні. Випробував це, і це спрацювало на мене ... blog.zorangagic.com/2015/03/…
Pratap

Відповіді:


7

Я так багато пробував і здавався, але наприкінці мені це вдається!

Мені вдалося завантажитися з AMI Amazon Linux, портовим під vmware!

Я майже новачок, але я це зробив, після години випробувань, замінюючи оригінальне ядро ​​Amazon на vmlinuz-2.6.32-38-generic, узяте з дистрибутива ubuntu 64 10.04.

Я просто отримую багато помилок, оскільки конфігурація Amazon всередині AMI шукає щось у внутрішній адресі, що, очевидно, він не знаходить. Думаю, це / usr / bin / cloud-init.

Але я можу ввійти всередину, і здається, що все працює!

Спасибі за вашу допомогу!!

Я написав цей поштовий пост із покроковими інструкціями щодо переходу від AMI до Vmware.

Сподіваюся, це допомагає!


До речі, Рід, я приїхав саме в ту точку, яку ви заявили (малюнок, що повідомляє "жодного кореневого пристрою не знайдено" ... Ви рухалися далі ??
Emanuele Preda

Я в основному прийшов до того ж рішення, що і ви: копіювання ядра з Ubuntu. Це працює, але на той момент я не знаю, наскільки подібна система буде працювати з Amazon Linux AMI.
Рід Г. Закон

Будь ласка, дивіться тут і мою відповідь , яка містить 2 альтернативних оновлених методу експорту до VirtualBox / VMWare VMDK, а також інструкції щодо використання вашої новоствореної VMDK з Vagrant
Code Bling

2

Офіційне ядро ​​Amazon отримало їх у своєму розпорядженні 2011.09, тобто 2.6.35.14.

Ви, ймовірно, можете отримати вихідний пакет для Amazon з get_reference_source, але я б не очікував, що він буде працювати поза межами Amazon.


1

Люди в Cloudify поділилися тим, як вони створюють віртуальну коробку Vagrant, готову до VirtualBox, без доступу до машин з голим металом - вони використовують AWS.

9 кроків до неба:

  • Створіть вихідне зображення (AMI) [...] за допомогою Packer.
  • Запустіть робочий екземпляр у AWS із знімком або вихідним зображенням як одним із його дисків.
  • На зображенні працівника: Створіть необроблений об'єм зображення як файл та створіть на ньому розділ ext4.
  • Скопіюйте дані з диска вихідного зображення на раніше створений розділ ext4.
  • Встановіть завантажувач (extlinux) на розділ ext4.
  • Перетворіть необроблене зображення у VMDK.
  • Зв’яжіть VMDK за допомогою дескриптора OVF та метаданих Vagrant та створіть файл tar з розширенням вмісту та .box.
  • Завантажте в S3 [або що завгодно].
  • Прибирати.

Джерело : Публікація в блозі за адресою http://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html із зазначеними вище 9 кроками

Код : https://github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.