Reducción del tamaño del volumen raíz de Amazon EBS en Amazon Linux 1

Reducción del tamaño del volumen raíz de Amazon EBS en Amazon Linux 1

He estado intentando reducir el tamaño de mi volumen raíz AMI de Amazon Linux 1 usando el procedimiento enesta documentación(con algunas modificaciones realizadas después de no hacerlo) y continuamente encuentra errores con el paso:

$ sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/xvdf

Este es el GRUB heredado (Versión 0.97-94.32.amzn1)

Al principio recibí el siguiente error:

Unrecognized option `--force'

y como resultado quitó la --forcebandera y simplemente dijo:

$ sudo grub-install --root-directory=/mnt/new-volume/ /dev/xvdf

que desde entonces ha resultado en:

/dev/xvdf does not have any corresponding BIOS drive

Intenté crear la partición de arranque del BIOS usando parted o fdisk siguiendo las instrucciones mencionadas eneste hilopero todos los métodos han conducido al mismo fracaso. Tenga en cuenta que el tipo de instancia específico que estoy usando (r5.large) cambia el nombre de las unidades a los nombres "nvme*" correspondientes como se indica en la salida de lsblk:

nvme0n1       259:3    0  200G  0 disk
├─nvme0n1p1   259:4    0  200G  0 part /
└─nvme0n1p128 259:5    0    1M  0 part
nvme1n1       259:0    0   40G  0 disk
├─nvme1n1p2   259:2    0   40G  0 part /mnt/new-volume
└─nvme1n1p1   259:1    0    1M  0 part

Se encontró un artículo relevante al mensaje de error en estePublicación de preguntas sobre Linuxpero esto no resolvió mi problema. Intenté realizar chroot en la partición y encontré el mismo problema e intenté usar un host intermediario de Amazon Linux 1 o Amazon Linux 2, pero sigo encontrando el problema.

Observo que este mismo problema ocurre cuando se usa solo el volumen raíz en Amazon Linux 1:

grub-install /dev/sda OR grub-install /dev/sda1

Pero independientemente, no se puede iniciar el nuevo disco a menos que aparezca como unidad secundaria. Usando el grubcomando solo deel manual de GRUB heredadoLa instalación también ha fallado. ¿Estoy investigando el procedimiento incorrecto para crear un nuevo volumen raíz más pequeño o me falta algo en los pasos anteriores? Puede proporcionar más detalles según sea necesario.

Respuesta1

Seguí el mismo manual y creo que lo hizo funcionar:

En Ubuntu 20 /boot/grub/grub.cfgtenía un uuid incorrecto, así que necesitaba arreglarlo aquí: /etc/default/grub.d/40-force-partuuid.cfgy luego volver a generar uno nuevo /boot/grub/grub.cfgcongrub-mkconfig -o ...

Además, particioné el nuevo volumen de EBS, lo que parece que tú también hiciste:

Device          Start       End   Sectors  Size Type
/dev/nvme0n1p1   2048    411647    409600  200M BIOS boot
/dev/nvme0n1p2 411648 104857566 104445919 49.8G Linux filesystem

Aunque no estoy seguro de si era necesario.

Respuesta2

Debe especificar el dispositivo de bloque correcto mientras lo utilizanvmedispositivo en lugar dexvdf

sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/nvme1n1

Respuesta3

Mientras tanto, encontré una solución alternativa para Amazon Linux 1 haciendo lo siguiente, pero aún estaría abierto a una mayor inspección.

  1. Inicie una nueva instancia utilizando la misma AMI pero cambiando el tamaño del volumen raíz a la cantidad deseada.

  2. Detenga la nueva instancia, desconecte el volumen EBS más pequeño y conéctelo a la instancia actual donde está conectado el volumen raíz más grande (en el estado detenido).

  3. Inicie la instancia actual (ahora con el volumen de EBS más pequeño conectado como unidad secundaria).

  4. Utilice lo siguiente para copiar el contenido del volumen raíz (suponiendo que esté montado en /mnt/new-volume:

    $ rsync -axv / /mnt/nuevo-volumen

  5. Detenga la instancia actual, desconecte ambos volúmenes.

  6. Adjunte el nuevo volumen raíz más pequeño a la instancia.

  7. Iniciar la instancia

No es una solución alternativa tan elegante, pero fue suficiente ya que no está claro cómo se crea y arranca el volumen raíz original.

información relacionada