Я наблизився до того, щоб Amazon Linux завантажувався всередині VirtualBox, завдяки цій відповіді та на цих веб-сайтах . Короткий огляд кроків, які я вжив:
- Запустіть екземпляр EC2 за допомогою 64-розрядного AMI Amazon Linux 2011.09
dd
вміст тома EBS переходитьssh
у локальний файл зображення.- Встановіть файл зображення як пристрій із зворотним зв'язком, а потім до місцевої точки монтажу.
- Створіть новий файл із зображенням порожнього диска, розділ із зміщенням завантажувача та створіть файлову систему ext4.
- Встановіть новий розділ зображення та скопіюйте все із зображення EC2.
- Встановіть grub (використовуючи
grub-legacy-ec2
пакет Ubuntu , а не grub2). - Перетворіть файл зображення у vmdk за допомогою
qemu-img
. - Створіть новий 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?