Pytanie:
Jak używać nowych klas AWS EC2 (r3, i2) z moim istniejącym AMI bez odtwarzania całej konfiguracji systemu?
Nowe klasy EC2 obsługują tylko wirtualizację opartą na HVM, ale mam tylko obrazy PVM AMI.
Jak używać nowych klas AWS EC2 (r3, i2) z moim istniejącym AMI bez odtwarzania całej konfiguracji systemu?
Nowe klasy EC2 obsługują tylko wirtualizację opartą na HVM, ale mam tylko obrazy PVM AMI.
Odpowiedzi:
Uruchom Linuksa Ubuntu HVM, dowolna wersja, nowa
Uruchom Ubuntu / z moim istniejącym systemem Linux AMI / PVM i zainstaluj na nich pakiety GRUB: apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
Zatrzymaj PVM Linux
Odłącz partycję root (/ dev / sda1) w systemie PVM linux
Dołącz gdzieś główną partycję PVM linux do uruchomionego HVM linux, np .: / dev / sdf
W systemie HVM Linux: 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
wyjdź z chroot: CTRL + D
zatrzymać HVM Linux
odłącz / dev / sda1 oryginalny root ORAZ odłącz / dev / sdf PVM root
dołącz katalog główny PVM do HVM linux jako / dev / sda1
Uruchom HVM linux, voilà!
Utwórz nowy obraz AMI z działającego systemu HVM linux, będzie on zwirtualizowany 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.
Wszystko wygląda dobrze, ale nie uruchamia się ani nie daje mi wskazówki, dlaczego się nie uruchamia.
xvd*
tych przypadkach nie ma, są tylko nvme*
konwencje nazewnictwa. Wymiana xvd
na właściwą nvme
nie działa. :(
Odpowiedź od @divyenduz działa, ale wymaga uporządkowania i wyjaśnienia dla nowoczesnego (około 2019) AWS EC2. Co ważne, nowoczesne klasy instancji tłumaczą nazwę urządzenia inaczej.
Oto moje zmodyfikowane kroki.
Dla jasności węzły to:
PRZED ROZPOCZĘCIEM: Utwórz kopię zapasową oryginalnego węzła PVM01
Zainstaluj wymagania wstępne na Node PVM01
zainstaluj pakiety GRUB na PVM01
apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
Zatrzymaj węzeł PVM01
Dołącz partycję główną PVM01 (nowy wolumin z poprzedniego kroku) do nowego HVM01 / dev / sdf
ssh PVM01 sudo fdisk -l
Na 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
Wyjdź z chroot za pomocą CTRL + D
DEVNAME
zmienną po chroot
poleceniu.