Eu tenho tentado reduzir o tamanho do meu volume raiz do Amazon Linux 1 AMI usando o procedimento nesta documentação (com algumas modificações feitas após falhar) e continuamente me deparo com 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 --force
bandeira e apenas usou:
$ 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
Eu tentei criar a partição de inicialização do BIOS usando parted ou fdisk seguindo as instruções mencionadas neste tópico , mas todos os métodos levaram à mesma falha. Observe que o tipo de instância específico que estou usando (r5.large) renomeia as unidades para os 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 nesta postagem de perguntas do Linux, mas isso não provou resolver meu problema. Eu tentei fazer chroot na partição e encontrei o mesmo problema e tentei usar um host intermediário do Amazon Linux 1 ou Amazon Linux 2, mas continuo enfrentando o problema.
Observo que esse mesmo problema ocorre ao usar o volume raiz sozinho no Amazon Linux 1:
grub-install /dev/sda OR grub-install /dev/sda1
Mas, independentemente, o novo disco não pode ser inicializado, a menos que esteja listado como a unidade secundária. Usar o grub
comando sozinho do manual do Legacy GRUB para instalar também falhou. Estou procurando o procedimento errado para criar um novo volume raiz menor ou há algo que estou perdendo nas etapas acima? Pode fornecer mais detalhes conforme necessário.
Segui o mesmo manual e o que eu acho que deu certo:
No Ubuntu 20
/boot/grub/grub.cfg
tinha uuid errado, então eu precisava corrigir aqui:/etc/default/grub.d/40-force-partuuid.cfg
e depois gerar novamente/boot/grub/grub.cfg
comgrub-mkconfig -o ...
Além disso, particionei novo EBS, volume, o que parece que você também fez:
Não tenho certeza se era necessário, no entanto.
Você precisa especificar o dispositivo de bloco correto, pois está usando o dispositivo nvme em vez de xvdf
Encontrei uma solução alternativa para o Amazon Linux 1 fazendo o seguinte enquanto isso, mas ainda estaria aberto a uma inspeção adicional.
Execute uma nova instância usando a mesma AMI, mas alterando o tamanho do volume raiz para a quantidade desejada.
Pare a nova instância, desconecte o volume menor do EBS e anexe-o à instância atual onde o volume raiz maior está anexado (no estado parado).
Inicie a instância atual (agora com o volume menor do EBS anexado como unidade secundária).
Use o seguinte para copiar o conteúdo do volume raiz (supondo que ele esteja montado em
/mnt/new-volume
:$ rsync -axv / /mnt/novo-volume
Pare a instância atual, desconecte os dois volumes.
Anexe o novo volume raiz menor à instância.
Iniciar a instância
Não é uma solução tão elegante, mas foi suficiente, pois não está claro como o volume raiz original é criado e inicializado.