Reduzindo o tamanho do volume raiz do Amazon EBS no Amazon Linux 1

Reduzindo o tamanho do volume raiz do Amazon EBS no Amazon Linux 1

Tenho tentado reduzir o tamanho do volume raiz da AMI do Amazon Linux 1 usando o procedimento emesta documentação(com algumas modificações feitas após não fazê-lo) e continuamente encontra erros com a etapa:

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

Este é o GRUB legado (versão 0.97-94.32.amzn1)

Eu estava recebendo o seguinte erro no início:

Unrecognized option `--force'

e como resultado removeu a --forcebandeira e justificou:

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

que desde então resultou em:

/dev/xvdf does not have any corresponding BIOS drive

Tentei criar a partição de inicialização do BIOS usando parted ou fdisk seguindo as instruções mencionadas emeste tópicomas todos os métodos levaram ao mesmo fracasso. Observe que o tipo de instância específico que estou usando (r5.large) renomeia as unidades para nomes "nvme*" correspondentes, conforme observado na saída 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

Um artigo relevante para a mensagem de erro foi encontrado nestePostagem de perguntas sobre Linuxmas isso não resolveu meu problema. Tentei fazer chroot na partição e encontrei o mesmo problema e tentei usar um host intermediário Amazon Linux 1 ou Amazon Linux 2, mas continuo enfrentando o problema.

Observo que esse mesmo problema ocorre ao usar apenas o volume raiz no Amazon Linux 1:

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

Mas, independentemente disso, o novo disco não pode ser inicializado, a menos que esteja listado como unidade secundária. Usando o grubcomando sozinho deo manual do GRUB legadoa instalação também falhou. Estou procurando o procedimento errado para criar um novo volume raiz menor ou há algo que estou faltando nas etapas acima? Pode fornecer mais detalhes conforme necessário.

Responder1

Segui o mesmo manual e foi o que eu acho que fez funcionar:

No Ubuntu 20 /boot/grub/grub.cfghavia uuid errado, então eu precisava consertar aqui: /etc/default/grub.d/40-force-partuuid.cfge então gerar novamente o novo /boot/grub/grub.cfgcomgrub-mkconfig -o ...

Além disso particionei o novo EBS, volume, o que parece que você também fez:

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

Não tenho certeza se era necessário, no entanto.

Responder2

Você deve especificar o dispositivo de bloco correto conforme está usandonvmedispositivo em vez dexvdf

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

Responder3

Enquanto isso, encontrei uma solução alternativa para o Amazon Linux 1 fazendo o seguinte, mas ainda estaria aberto para uma inspeção mais aprofundada.

  1. Inicie uma nova instância usando a mesma AMI, mas alterando o tamanho do volume raiz para a quantidade desejada.

  2. Pare a nova instância, desconecte o volume menor do EBS e anexe-o à instância atual onde o volume raiz maior está conectado (no estado parado).

  3. Inicie a instância atual (agora com o volume EBS menor anexado como unidade secundária).

  4. Use o seguinte para copiar o conteúdo do volume raiz (assumindo que ele esteja montado em /mnt/new-volume:

    $ rsync -axv //mnt/novo-volume

  5. Pare a instância atual e desconecte os dois volumes.

  6. Anexe o novo volume raiz menor à instância.

  7. Inicie a instância

Não é uma solução alternativa tão elegante, mas foi suficiente, pois não está claro como o volume raiz original é criado e inicializado.

informação relacionada