La respuesta de @divyenduz funciona, pero necesita un poco de limpieza y aclaración para la AWS EC2 moderna (alrededor de 2019). Es importante destacar que las clases de instancias modernas traducen el nombre del dispositivo de manera diferente.
Aquí están mis pasos modificados.
Para mayor claridad, los nodos son:
- El nodo PVM original que desea actualizar a HVM es "PVM01"
- El nuevo nodo HVM al que migrará el disco raíz de PVM01 es "HVM01"
ANTES DE CONTINUAR: Realice una copia de seguridad del nodo original PVM01
Instalar los requisitos previos en el nodo PVM01
Detener nodo PVM01
- Crear instantánea de / dev / sda1
- O crea AMI de todo el nodo
- Cree una instantánea del volumen raíz original en PVM01 y cree un nuevo volumen a partir de esta instantánea
- Crear complemento de / dev / sda1 en PVM01
- Crea vol de este snap
- Etiqueta cada recurso en consecuencia
- Etiqueta: Nombre; Valor: pvm01: / dev / sda1: instantánea-para-conversión-a-hvm: 2019-07-01
- Etc.
- create-instance: Nueva instancia de Ubuntu HVM "HVM01". Cualquier clase de instancia debería funcionar; sin embargo, el nombre del dispositivo puede ser diferente, consulte las notas a continuación
- Usé Bionic Ubuntu 18.04 HVM AMI ID ami-0a313d6098716f372 y la clase de instancia C5.XLARGE
Adjunte la partición raíz PVM01 (nuevo volumen del paso anterior) al nuevo HVM01 / dev / sdf
- NOTA : Las clases de instancia más antiguas, como C3, traducirán el nombre del volumen a / dev / xvdf
- NOTA : las clases de instancia más nuevas, como C5, traducirán el nombre del volumen a / dev / nvme1
- En las clases de instancia más nuevas, el volumen raíz será / dev / nvme0 - CERO
- En las clases de instancia más nuevas, el volumen secundario adjunto será / dev / nvme1 - ONE
- Tome nota del nombre del dispositivo de volumen adjunto
ssh PVM01 sudo fdisk -l
En 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
Salga de chroot con CTRL + D
- Detener HVM01
- Separar ambos volúmenes
- separar / dev / nvme0 PVM01 root
- NOTA: Este sería / dev / sda1 en una clase de instancia C3
- detach / dev / $ {DEVNAME} (DEVNAME del script anterior)
- adjuntar el volumen raíz PVM01 a HVM01 como / dev / sda1
- Una vez más, el nombre / dev / sda1 está en la consola; este nombre se traducirá a / dev / nvme0 o / dev / xvda1 dependiendo de qué tan moderna sea la clase de instancia
- Iniciar HVM01
- OPCIONAL: Cree una nueva imagen AMI a partir del HVM01 que se está ejecutando ahora, será HVM virtualizado.