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 --force
bandera 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 grub
comando 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.cfg
tenía un uuid incorrecto, así que necesitaba arreglarlo aquí: /etc/default/grub.d/40-force-partuuid.cfg
y luego volver a generar uno nuevo /boot/grub/grub.cfg
congrub-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.
Inicie una nueva instancia utilizando la misma AMI pero cambiando el tamaño del volumen raíz a la cantidad deseada.
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).
Inicie la instancia actual (ahora con el volumen de EBS más pequeño conectado como unidad secundaria).
Utilice lo siguiente para copiar el contenido del volumen raíz (suponiendo que esté montado en
/mnt/new-volume
:$ rsync -axv / /mnt/nuevo-volumen
Detenga la instancia actual, desconecte ambos volúmenes.
Adjunte el nuevo volumen raíz más pequeño a la instancia.
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.