Solución de los problemas de arranque de una instancia de Linux desde un volumen incorrecto - Amazon Elastic Compute Cloud

Solución de los problemas de arranque de una instancia de Linux desde un volumen incorrecto

nota

Este tema de solución de problemas se aplica únicamente a las instancias de Linux.

En algunas situaciones, puede suceder que un volumen que no es el volumen adjunto a /dev/xvda o /dev/sda se ha convertido en el volumen raíz de la instancia. Esto puede suceder cuando se ha adjuntado el volumen raíz de otra instancia o un volumen creado a partir de una instantánea de un volumen raíz, a una instancia que ya tiene un volumen raíz.

Esto sucede por el funcionamiento de ramdisk inicial en Linux. Elige el volumen definido como / en /etc/fstab y, en algunas distribuciones, esto lo determina la etiqueta adjuntada a la partición del volumen. En concreto, /etc/fstab tiene un aspecto como el siguiente:

LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0

Si comprobara las etiquetas de ambos volúmenes, vería que ambos contienen la etiqueta /:

[ec2-user ~]$ sudo e2label /dev/xvda1 / [ec2-user ~]$ sudo e2label /dev/xvdf1 /

En este ejemplo, acabaría con /dev/xvdf1 convirtiéndose en el dispositivo raíz en que la instancia se inicia después de ejecutar ramdisk inicial, en lugar del volumen /dev/xvda1 desde el que pretendía iniciarla. Para resolverlo, utilice el mismo comando e2label para cambiar la etiqueta del volumen adjunto desde el que no quiere arrancar.

En algunos casos, se resuelve si especifica un UUID en /etc/fstab. Sin embargo, si ambos volúmenes proceden de la misma instantánea o si el secundario se crea a partir de una instantánea del volumen principal, ambos comparten el UUID.

[ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334 /dev/xvdf1: LABEL="old/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334
Para cambiar la etiqueta de un volumen ext4 adjunto
  1. Utilice el comando e2label para cambiar la etiqueta del volumen por algo distinto de /.

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
  2. Verifique que el volumen tiene la nueva etiqueta

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
Para cambiar la etiqueta de un volumen xfs adjunto
  • Utilice el comando xfs_admin para cambiar la etiqueta del volumen por algo distinto de /.

    [ec2-user ~]$ sudo xfs_admin -L old/ /dev/xvdf1 writing all SBs new label = "old/"

Después de cambiar la etiqueta del volumen de la forma indicada, debería poder reiniciar la instancia y conseguir que el ramdisk inicial seleccione el volumen correcto cuando la instancia se inicia.

importante

Si pretende separar el volumen con la nueva etiqueta y devolverlo a otra instancia para que se use como volumen raíz, debe repetir el procedimiento anterior y cambiar la etiqueta del volumen a su valor original. Si no, la otra instancia no arranca porque ramdisk no encuentra el volumen con la etiqueta /.