

# Solución de los problemas de arranque de una instancia de Amazon EC2 para Linux desde un volumen incorrecto
<a name="instance-booting-from-wrong-volume"></a>

En algunas situaciones, un volumen que no es el volumen adjunto a `/dev/xvda` o `/dev/sda` se convierte en el volumen raíz de la instancia de Linux. 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 volumen 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/ 
   ```

1. 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\$1admin** 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 `/`.