Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Máquinas virtuales Linux
Importante
Nuevo Pruebe la asistencia de máquina virtual para resolver los principales problemas. Se recomienda ejecutar la asistencia de máquina virtual para Windows o la asistencia de máquina virtual para Linux. Estas herramientas de diagnóstico basadas en scripts le ayudan a identificar problemas comunes que afectan al agente invitado de máquina virtual de Azure y al estado general de la máquina virtual.
Si tiene problemas de rendimiento en las máquinas virtuales, ejecute primero estas herramientas antes de ponerse en contacto con el soporte técnico de Microsoft.
Tener acceso a la Consola Serie y GRUB mejorará los tiempos de recuperación de su Máquina Virtual Linux IaaS en la mayoría de los casos. GRUB ofrece opciones de recuperación que, de otro modo, tardarían más tiempo en recuperar su máquina virtual.
Las razones para realizar una recuperación de VM son muchas y pueden atribuirse a escenarios como:
- Sistemas de archivos/kernel/MBR (Registro de arranque maestro) dañados
- Actualizaciones del kernel fallidas
- Parámetros del kernel GRUB incorrectos
- Configuraciones fstab incorrectas
- Configuraciones de firewall
- Contraseña perdida
- Archivos de configuración de sshd alterados
- Configuraciones de redes
Muchos otros escenarios como se detalla aquí.
Verifique que puede acceder a GRUB y a la consola Serial en sus máquinas virtuales desplegadas en Azure.
Si es la primera vez que utiliza la consola serie, consulte este enlace.
Sugerencia
Asegúrese de hacer copias de seguridad de los archivos antes de realizar cambios.
Vea este vídeo a continuación para saber cómo puede recuperar rápidamente su máquina virtual Linux una vez que tenga acceso a GRUB
Vídeo para recuperar máquinas virtuales Linux
Existen varios métodos para ayudar a la recuperación de máquinas virtuales Linux. En un entorno de la nube, este proceso ha sido todo un reto. Se está avanzando continuamente en las herramientas y funciones para garantizar la rápida recuperación de los servicios.
Con la consola serie de Azure, puede interactuar con su máquina virtual Linux como si estuviera en la consola de un sistema.
Puedes manipular muchos archivos de configuración, incluyendo Cómo arrancará el kernel.
Los administradores de sistemas Linux/Unix más experimentados apreciarán los modos de usuario único y emergencia a los que se puede acceder a través de la consola serie de Azure, lo que hace que el intercambio de discos y la eliminación de máquinas virtuales para muchos escenarios de recuperación sean redundantes.
El método de recuperación depende del problema que se esté experimentando, por ejemplo, una contraseña perdida o extraviada puede restablecerse a través de las opciones del portal de Azure ->Restablecer contraseña. La función Restablecer contraseña se conoce como Extensión y se comunica con el agente Invitado de Linux.
Otras extensiones, como Custom Script, están disponibles. Sin embargo, estas opciones requieren que el waagent de Linux esté activo y en buen estado, lo cual no siempre ocurre.
Garantizar el acceso a la consola serie de Azure y a GRUB significa que un cambio de contraseña o una configuración incorrecta pueden rectificarse en cuestión de minutos en lugar de horas. Incluso puede forzar a la máquina virtual a arrancar desde un núcleo alternativo si tiene varios núcleos en el disco en caso de que el núcleo principal se dañe.
Orden sugerido de los métodos de recuperación
Consola serie de Azure
Método del legado
Vídeo sobre el intercambio de discos
Si no tiene acceso a GRUB, vea este vídeo y vea cómo puede automatizar fácilmente el procedimiento de intercambio de disco para recuperar la máquina virtual.
Desafíos
No todas las máquinas virtuales Azure Linux están configuradas por defecto para el acceso a GRUB y tampoco están todas configuradas para ser interrumpidas con los comandos Pet Sis. Algunas distribuciones anteriores, como SLES 11, no están configuradas para mostrar el mensaje de inicio de sesión en la consola serie de Azure
En este artículo, revisaremos varias distribuciones Linux y documentaremos configuraciones sobre cómo hacer que GRUB esté disponible.
Cómo configurar una máquina virtual Linux para que acepte claves Pet Sis
La clave Pet Sis está habilitada por defecto en algunas distribuciones Linux más recientes, aunque en otras puede estar configurada para aceptar valores sólo para determinadas funciones Pet Sis. En distribuciones más antiguas, puede estar completamente desactivado.
La función Pet Sis es útil para reiniciar una máquina virtual bloqueada o que no responde directamente desde la consola serie de Azure, también es útil para obtener acceso al menú de GRUB, alternativamente, reiniciar una máquina virtual desde otra ventana del portal o sesión SSH puede interrumpir la conexión de la consola actual y, por lo tanto, expirar los tiempos de espera de GRUB que se utilizan para mostrar el menú de GRUB. La máquina virtual debe estar configurada para aceptar un valor de 1 para el parámetro kernel, que habilita todas las funciones de Pet Sis o 128, que permite el reinicio/apagado.
Para configurar la máquina virtual para que acepte un reinicio mediante comandos Pet Sis en el portal de Azure, deberá establecer un valor de 1 para el parámetro del núcleo kernel.sysrq
Para que esta configuración persista ante un reinicio, añada una entrada al archivo sysctl.conf
sudo echo kernel.sysrq = 1 >> /etc/sysctl.conf
Para configurar el parámetro del núcleo de forma dinámica
sudo sysctl -w kernel.sysrq=1
Si no tiene acceso root o sudo no funciona, no será posible configurar sysrq desde una línea de comando.
Puede activar Pet Sis en este escenario utilizando el portal de Azure. Este método puede ser beneficioso si el archivo sudoers.d/waagent se ha roto o ha sido eliminado.
Usar el portal de Azure Operaciones -> Ejecutar Comando -> característica RunShellScript, requiere que el proceso waagent sea correcto para que pueda inyectar este comando para habilitar Pet Sis
sudo sysctl -w kernel.sysrq=1 ; sudo echo kernel.sysrq = 1 >> /etc/sysctl.conf
Como se muestra aquí:
Una vez completado, puede intentar acceder a Pet Sis y debería ver que es posible reiniciar.
Seleccione el comando Reiniciar y Enviar Pet Sis.
El sistema debería registrar un mensaje de reinicio como el siguiente
Configuración de Ubuntu GRUB
De forma predeterminada, debe poder acceder a GRUB manteniendo presionada la tecla Esc durante el arranque de la máquina virtual, si no se presenta el menú GRUB, puede forzar y mantener el menú GRUB en pantalla en la consola serie de Azure mediante una de estas opciones.
Opción 1 - Hace que GRUB se muestre en pantalla
Actualice el archivo /etc/default/grub.d/50-cloudimg-settings.cfg para mantener el menú de GRUB en pantalla durante el TIEMPO DE ESPERA especificado. No es necesario que presione Esc , ya que GRUB se mostrará inmediatamente.
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu
Opción 2 - Permite pulsar Esc antes de arrancar.
Se puede experimentar un comportamiento similar realizando cambios en el archivo /etc/default/grub y observar un tiempo de espera de 3 segundos para pulsar Esc.
Comente estas dos líneas:
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
y añade esta línea:
GRUB_TIMEOUT_STYLE=countdown
Asegúrese de que serial-getty@ttyS0.service está habilitado para que systemd proporcione un mensaje de inicio de sesión en esa consola:
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
Modo de recuperación de Ubuntu
Hay opciones adicionales de recuperación y limpieza disponibles para Ubuntu a través de GRUB, sin embargo, estos ajustes sólo son accesibles si se configuran los parámetros del kernel en consecuencia. Si no se configura este parámetro de arranque del kernel, el menú de recuperación se enviará a Azure Diagnostics y no a Azure Serial Console. Puede obtener acceso al menú de recuperación de Ubuntu siguiendo estos pasos:
Interrumpir el proceso de arranque y acceder al menú GRUB
Seleccione Opciones avanzadas para Ubuntu y pulse Intro
Seleccione la línea que muestra (modo de recuperación) no presione Entrar, pero presione "e"
Localice la línea que cargará el kernel y sustituya el último parámetro nomodeset por un destino como console=ttyS0
linux /boot/vmlinuz-4.15.0-1023-azure root=UUID=21b294f1-25bd-4265-9c4e-d6e4aeb57e97 ro recovery nomodeset
change to
linux /boot/vmlinuz-4.15.0-1023-azure root=UUID=21b294f1-25bd-4265-9c4e-d6e4aeb57e97 ro recovery console=ttyS0
Pulse Ctrl-x para iniciar y cargar el kernel. Si todo va bien verá estas Opciones adicionales, que pueden ayudar a realizar otras opciones de recuperación
Configuración de Red Hat GRUB
Configuración de Red Hat 8.6+ GRUB
La configuración predeterminada /etc/default/grub en estas versiones está configurada adecuadamente.
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_TIMEOUT_STYLE=countdown
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Asegúrese de que serial-getty@ttyS0.service está habilitado para que systemd proporcione un mensaje de inicio de sesión en esa consola:
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
SUSE
SLES 15 sp5
La configuración predeterminada /etc/default/grub en estas versiones está configurada adecuadamente.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 net.ifnames=0 dis_ucode_ldr earlyprintk=ttyS0 multipath=off nvme_core.io_timeout=240 rootdelay=300 scsi_mod.use_blk_mq=1 USE_BY_UUID_DEVICE_NAMES=1 systemd.unified_cgroup_hierarchy=1"
GRUB_CMDLINE_LINUX=""
GRUB_DISTRIBUTOR="SLES15-SP5"
GRUB_GFXMODE=auto
GRUB_TERMINAL_INPUT="serial"
GRUB_TERMINAL_OUTPUT="serial"
GRUB_TIMEOUT_STYLE=countdow
Asegúrese de que serial-getty@ttyS0.service está habilitado para que systemd proporcione un mensaje de inicio de sesión en esa consola:
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
SLES 12 SP1
O bien utilizar el cargador de arranque YaST según los documentos oficiales.
O añadir/cambiar a /etc/default/grub los siguientes parámetros:
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 net.ifnames=0 dis_ucode_ldr earlyprintk=ttyS0 multipath=off nvme_core.io_timeout=240 rootdelay=300 scsi_mod.use_blk_mq=1 USE_BY_UUID_DEVICE_NAMES=1 systemd.unified_cgroup_hierarchy=1"
GRUB_TERMINAL_INPUT="serial"
GRUB_TERMINAL_OUTPUT="serial"
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=countdown
Vuelva a crear el grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
Asegúrese de que serial-getty@ttyS0.service está habilitado para que systemd proporcione un mensaje de inicio de sesión en esa consola:
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
Esta configuración permitirá que durante 5 segundos aparezca en la consola el mensaje Pulse cualquier tecla para continuar.
A continuación, mostrará el menú GRUB durante 5 segundos adicionales - pulsando la flecha hacia abajo interrumpirá el contador y seleccionará un kernel que desee arrancar o bien añada la palabra clave single para el modo de usuario único que requiere que se establezca la contraseña de raíz.
Añadiendo el comando init=/bin/bash cargará el kernel pero se asegurará de que el programa TINIC se reemplaza por un shell bash.
Accederás a un intérprete de comandos sin tener que introducir una contraseña. A continuación, puede proceder a actualizar la contraseña de las cuentas Linux o realizar otros cambios de configuración.
Forzar el kernel a una ventana bash
Tener acceso a GRUB le permite interrumpir el proceso de inicialización esta interacción es útil para muchos procedimientos de recuperación. Si no tiene contraseña raíz y un solo usuario requiere que tenga una contraseña raíz, puede arrancar el kernel reemplazando el programa de inicialización por un símbolo del sistema bash: esta interrupción se puede lograr anexando init=/bin/bash a la línea de arranque del kernel.
Vuelva a montar su / (raíz) sistema de archivos RW utilizando el comando
mount -o remount,rw /
Ahora puede realizar el cambio de contraseña de raíz o muchos otros cambios de configuración de Linux
Reinicie la MV con
/sbin/reboot -f
Modo de usuario único
Otra posibilidad es que necesites acceder a la máquina virtual en modo de usuario único o de emergencia. Seleccione el núcleo que desea arrancar o interrumpir utilizando las teclas de flecha. Introduzca el modo deseado añadiendo la palabra clave single o 1 a la línea de arranque del kernel. En los sistemas RHEL, también puede añadir rd.break.
Para obtener más información sobre cómo acceder al modo de usuario único, consulte este doc.
Pasos siguientes
Más información sobre Azure Serial Console
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas, puede hacer soporte técnico a la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.