Питання:
Як я повинен використовувати нові класи AWS EC2 (r3, i2) зі своїм існуючим AMI, не відтворюючи всі налаштування системи?
Нові класи EC2 підтримують лише віртуалізацію на основі HVM, але я маю лише зображення PVM AMI.
Як я повинен використовувати нові класи AWS EC2 (r3, i2) зі своїм існуючим AMI, не відтворюючи всі налаштування системи?
Нові класи EC2 підтримують лише віртуалізацію на основі HVM, але я маю лише зображення PVM AMI.
Відповіді:
Запустіть Ubuntu HVM linux, будь-яку версію, нову
Запустіть Ubuntu / з моїм існуючим AMI / PVM linux і встановіть на них пакунки grub: apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
Зупиніть PVM linux
Від'єднайте кореневий (/ dev / sda1) розділ у PVM linux
Підключіть кореневий розділ PVM linux до запуску HVM linux десь, наприклад: / dev / sdf
На Linux HVM: mkdir -p /mnt/xvdf && mount /dev/xvdf /mnt/xvdf
rsync -avzXA /boot/ /mnt/xvdf/boot/
mount -o bind /dev /mnt/xvdf/dev && mount -o bind /dev/pts /mnt/xvdf/dev/pts && mount -o bind /proc /mnt/xvdf/proc && mount -o bind /sys /mnt/xvdf/sys
chroot /mnt/xvdf
grub-install --no-floppy --recheck --force /dev/xvdf
update-grub2
вихід chroot: CTRL + D
зупинити HVM Linux
detach / dev / sda1 оригінальний корінь І відокремити / dev / sdf корінь PVM
підключити корінь PVM до HVM linux як / dev / sda1
Запустіть HVM linux, voilà!
Створіть новий образ AMI із запущеного HVM linux, він буде віртуалізований HVM.
warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. /usr/sbin/grub-bios-setup: error: will not proceed with blocklists.
Тоді все виглядає добре, але не завантажується і не дає мені підказки, чому це не завантаження.
xvd*
цих примірниках немає, є лише nvme*
конвенції про іменування. Заміна xvd
на правильну nvme
не працює. :(
Відповідь від @divyenduz працює, але потребує деякого очищення та роз'яснення для сучасного (близько 2019 року) AWS EC2. Що важливо, сучасні класи екземплярів перекладають назву пристрою по-різному.
Ось мої змінені кроки.
Для наочності вузлами є:
ПЕРЕД ПРОЦЕСОМ: Створіть резервну копію оригінального вузла PVM01
Встановіть передумови на Вузол PVM01
встановити пакунки grub на PVM01
apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
Зупинний вузол PVM01
Приєднайте кореневий розділ PVM01 (новий том із попереднього кроку) до нового HVM01 / dev / sdf
ssh PVM01 sudo fdisk -l
На HVM01:
# For xvdf, e.g. on C3.XLARGE
DEVNAME=xvdf1
# For nvme, e.g. on C5.XLARGE
DEVNAME=nvme1n1
mkdir -p /mnt/${DEVNAME} && mount /dev/${DEVNAME} /mnt/${DEVNAME}
rsync -avzXA /boot/ /mnt/${DEVNAME}/boot/
mount -o bind /dev /mnt/${DEVNAME}/dev && mount -o bind /dev/pts /mnt/${DEVNAME}/dev/pts && mount -o bind /proc /mnt/${DEVNAME}/proc && mount -o bind /sys /mnt/${DEVNAME}/sys
chroot /mnt/${DEVNAME}
grub-install --no-floppy --recheck --force /dev/${DEVNAME}
update-grub2
Вийдіть із chroot за допомогою CTRL + D
DEVNAME
змінну після chroot
команди.