Esta breve guía describe qué es Virt-rescue , cómo rescatar máquinas virtuales con la utilidad de línea de comando Virt-rescue en sistemas operativos Linux.
¿Qué es Virt-rescate?
Rescate virtual es como un CD de rescate, pero solo para máquinas virtuales. Proporciona un shell de rescate simple y algunas herramientas de recuperación para inspeccionar y corregir problemas en una máquina virtual o imágenes de disco.
Tenga en cuenta que Virt-rescue es diferente de guestfish. Guestfish es un shell interactivo para editar y realizar cambios en máquinas virtuales e imágenes de disco.
Por el contrario, Virt-rescue es particularmente adecuado para rescatar una máquina virtual que no pudo iniciarse. Si una VM no arranca, simplemente puede iniciar un shell de rescate en la VM o en la imagen del disco usando virt-rescue e intentar solucionarlo usando los comandos estándar de Linux.
Puede usar virt-rescue en cualquier dispositivo o archivo de imagen de disco, no solo en una máquina virtual. Por ejemplo, se puede utilizar en unidades USB, tarjetas SD y discos duros. No requiere permiso de root a menos que necesite root para abrir la imagen del disco.
Virt-rescue es parte de libguestfs que proporciona una gran cantidad de utilidades de línea de comandos para acceder y modificar imágenes de disco de máquinas virtuales.
Rescate de máquinas virtuales con Virt-rescue
Asegúrese de que las máquinas virtuales estén apagadas. No debe ejecutar shell de rescate en ningún en vivo máquinas virtuales o imágenes de disco.
Para ejecutar un shell de rescate en la máquina virtual problemática, haga lo siguiente:
$ virt-rescue -d centos8-uefi -i
Reemplace "centos8-uefi"
con el nombre de su máquina virtual. Puede encontrar la lista de máquinas virtuales disponibles usando "virsh list --all"
comando.
También puede ejecutar un shell de rescate directamente en cualquier imagen de disco como a continuación:
$ virt-rescue -a CentOS_8_Server.img -i
Aquí, -i
(--inspector
) se utiliza para montar automáticamente los sistemas de archivos de las máquinas virtuales. Si no lo usa, deberá montar manualmente los sistemas de archivos de la máquina virtual en un directorio vacío llamado /sysroot
.
Ahora aterrizará en un shell de bash interactivo donde puede usar muchos comandos comunes de Linux para rescatar las máquinas virtuales.
[...] Welcome to virt-rescue, the libguestfs rescue shell. Note: The contents of / (root) are the rescue appliance. Use 'cd /sysroot' or 'chroot /sysroot' to see guest filesystems. groups: cannot find name for group ID 0 ><rescue> The virt-rescue escape key is ‘^]’. Type ‘^] h’ for help.

Desde el shell de rescate, puede comenzar a usar los comandos tradicionales de Linux para reparar la máquina virtual.
Como se indicó anteriormente, los sistemas de archivos de la máquina invitada se montan en /sysroot
directorio.
Puedes verificarlo con "ls"
comando:
><rescue> ls /sysroot/ bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
Para hacer chroot en /sysroot
directorio primero:
><rescue> chroot /sysroot
Para salir del shell de rescate, escriba exit
y presiona enter o presiona Ctrl+d
.
Ejecutar máquinas virtuales en modo de solo lectura
Como se indicó anteriormente, no debe ejecutar el shell de rescate en ninguna máquina virtual en vivo. Pero si aún desea hacerlo por algún motivo, use --ro
opción para usar "virt-rescue"
de forma segura en una imagen de disco en vivo o VM.
$ virt-rescue -d centos8-uefi -i --ro
O,
$ virt-rescue -a CentOS_8_Server.img -i --ro
El --ro
La opción iniciará la VM o la imagen de disco en modo de solo lectura. Es ideal para experimentar máquinas virtuales o imágenes de disco. En realidad, no se guardarán los cambios. Una vez que salga del shell, ¡todos los cambios se perderán!
Habilitar el acceso a la red para máquinas virtuales
Si desea descargar un archivo o paquete en la máquina virtual, puede usar --network
opción mientras se ejecuta el comando virt-rescue:
$ virt-rescue -d centos8-uefi -i --network
O,
$ virt-rescue -a CentOS_8_Server.img -i --network
Esta opción permite el acceso a la red dentro del shell de rescate, para que pueda descargar cosas de Internet.
Virt-rescue tiene muchas opciones. Para obtener más detalles, consulte las páginas man:
$ man virt-rescue
Imagen destacada de Miguel Á. Padriñán de Pexels .