

# Solução de problemas de inicialização da instância do Linux do Amazon EC2 devido a volume errado
<a name="instance-booting-from-wrong-volume"></a>

Em algumas situações, um volume diferente do volume associado a `/dev/xvda` ou a `/dev/sda` torna-se o volume raiz de uma instância do Linux. Isso pode acontecer quando você associar o volume do dispositivo raiz de outra instância, ou um volume criado a partir do snapshot de um volume do dispositivo raiz, a uma instância com um volume do dispositivo raiz existente.

Isso ocorre por conta de como funciona o ramdisk inicial no Linux. O volume definido como `/` em `/etc/fstab` é escolhido e, em algumas distribuições, isso é determinado pelo rótulo anexado à partição do volume. Mais especificamente, você descobrirá que seu `/etc/fstab` parece com o seguinte: 

```
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
```

Se você verificar os rótulos dos dois volumes, verá que ambos contêm o rótulo `/`: 

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

Neste exemplo, existe a possibilidade de `/dev/xvdf1` se tornar o volume raiz pelo qual a instância inicializa depois que o ramdisk inicial é executado, substituindo o volume `/dev/xvda1` que você pretendia usar para inicialização. Para resolver isso, use o mesmo comando **e2label** para alterar o rótulo do volume associado do qual você não deseja inicializar.

Em alguns casos, especificar um UUID em `/etc/fstab` pode resolver isso. No entanto, se ambos os volumes vierem do mesmo snapshot ou o secundário for criado a partir de um snapshot do volume primário, eles compartilharão um 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 alterar a identificação de um volume ext4 associado**

1. Use o comando **e2label** para alterar a identificação do volume para outra coisa além de `/`.

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

1. Verifique se o volume tem a nova identificação.

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

**Para alterar a identificação de um volume xfs associado**
+ Use o comando **xfs\$1admin** para alterar a identificação do volume para outra coisa além de `/`.

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

Depois de alterar a identificação do volume como mostrado, será possível reiniciar a instância e selecionar o volume adequado pelo ramdisk inicial quando a instância for inicializada.

**Importante**  
Se você pretende desanexar o volume com o novo rótulo e devolvê-lo a outra instância para ser usado como o volume raiz, deverá executar novamente o procedimento acima e alterar o rótulo do volume de volta ao seu valor original. Caso contrário, a outra instância não é inicializada porque o disco ramdisk não consegue encontrar o volume com o rótulo `/`.