Ir para o conteúdo
TURNKEYGNU / LINUX
AplicativosDocumentaçãoBlogCapturas de telaGitHubTurnKey Hub
文Português
EnglishEspañol中文日本語PortuguêsDeutsch
Principal/Amazon EC2 / TurnKey Hub - Corrigir problemas de inicialização de grub / recuperar senha de raiz

Documentação

Amazon EC2 / TurnKey Hub - Corrigir problemas de inicialização de grub / recuperar senha de raiz

Em uma VM (ou instalação de metal nu), você pode usar um ISO ao vivo para corrigir muitos problemas relacionados com o grub, kernel e outros (por exemplo, acesso perdido). Mas no AWS isso não é uma opção. No entanto, é possível anexar o volume raiz de um servidor, para outro servidor, dando-lhe um ambiente um pouco semelhante para corrigir muitos problemas de grub, boot e relacionados. Esta página dá uma visão geral de como fazer isso através do Hub, console AWS e uma sessão SSH.

Passos específicos - incluindo comandos

Eu uso as etiquetas do servidor OLD e NEW para denotar o servidor original (quebrado) e o novo servidor temporário, respectivamente.

Estes passos devem ser feitos dentro do 'Hub' ou 'AWS console' como observado. Os comandos são todos a serem executados dentro de uma shell em seu servidor NEW (através de uma sessão SSH).

  1. Hub: Iniciar um servidor NEW dentro do mesma zona de disponibilidade do servidor quebrado. Pode ser qualquer appliance ou tamanho, por exemplo, um T2.micro Core seria bom - mas deve estar na mesma zona de disponibilidade!
  2. Hub: Parar servidor OLD.
  3. Consola AWS: Uma vez que OLD parou, desamarre o volume da raiz.
  4. Consola AWS: Anexar o volume da raiz (OLD) ao NEW (como um volume secundário). Quando solicitado para o ponto de montagem, use /dev/sdf.
  5. Entrar em NEW via SSH: Use os seguintes comandos para configurar um chroot e digite-o:
# check that the OLD server volume is attached as /dev/xvdf:
gdisk -l /dev/xvdf

# Assuming OLD server volume is /dev/xvdf, mount it and chroot in:
mkdir /mnt2
mount /dev/xvdf2 /mnt2
mount --bind /dev /mnt2/dev
mount --bind /proc /mnt2/proc
mount --bind /sys /mnt2/sys
chroot /mnt2
  1. SSH - Realizar correção( es) em chroot: Assumindo que não tenha sucesso sem erros, você está agora dentro do chroot do seu volume de servidor OLD. O que você fizer a seguir dependerá do problema que você está procurando resolver. Eu noto algumas correções potenciais que são relevantes para problemas de inicialização, bem como redefinir a senha de root:
# optional: update kernel
apt-get update
apt-get install linux-image-$(dpkg --print-architecture)
apt-get install linux-image-$(uname -r)

# optional: regenerate initramfs (will be run automatically if the kernel is updated)
update-initramfs -u

# Note: as part of the initramfs regeneration process (whether via updating the
# kernel, or manually regenerating) it is expected and normal to see the
# following errors/warnings:
#
# /usr/share/initramfs-tools/scripts/casper-bottom/25autologin: 13: .: Can't open /scripts/casper-functions
# /usr/share/initramfs-tools/scripts/casper-bottom/25singleuser_shell: 6: .: Can't open /scripts/casper-functions
# /usr/share/initramfs-tools/scripts/casper-bottom/25ssh_emptypw: 6: .: Can't open /scripts/casper-functions

# To avoid adding grub boot entries for the host machine (i.e. the NEW server), disable the OS prober
# (note os-prober has no value other than on dual boot machines)
chmod a-x /etc/grub.d/30_os-prober

# reinstall grub2
grub-install --boot-directory=/boot /dev/xvdf
update-grub

# reset root password
passwd root

# add a public SSH key
echo "_keytype_ _public_key_data_ _email_" >> /root/.ssh/authorized_keys
# IMPORTANT: replace "_keytype_ _public_key_data_ _email_" with the contents of your public key.
# email is optional but highly recommended
# Você também pode fazer outras coisas, como check logs ou instalar pacotes adicionais como desejado.
  1. SSH - Desmontar o volume OLD: Espero que tudo tenha funcionado bem e que não tenha havido erros.
# exit and tidy up
exit
umount /mnt2/dev
umount /mnt2/proc
umount /mnt2/sys
umount /mnt2
  1. Consola AWS: Desanexar o volume raiz OLD do NEW, e voltar a ligar ao servidor original (OLD). Indique o ponto de anexo como /dev/xvda.
  2. Hub: Boot OLD - dedos cruzados agora vai arrancar! Se assim grande! Se não, repita os passos 2-8 tentando alguns passos diferentes dentro do chroot (passo 6).
TURNKEYGNU / LINUX

Controle sua infraestrutura sem começar do zero.

Explorar o TurnKey
SobreDocumentaçãoPerguntas frequentesBlogGitHub
Livre e de código abertoSeguro por padrãoPronto para implantar