Поиск по сайту:

Как спасти виртуальные машины с помощью Virt-Rescue

В этом кратком руководстве описывается, что такое Virt-rescue и как спасать виртуальные машины с помощью утилиты командной строки Virt-rescue в операционных системах Linux.

Что такое Virt-Rescue?

Virt-rescue похож на аварийный компакт-диск, но только для виртуальных машин. Он предоставляет простую оболочку восстановления и некоторые инструменты восстановления для проверки и устранения проблем в виртуальной машине или образах дисков.

Обратите внимание, что Virt-Rescue отличается от Guestfish. Guestfish — интерактивная оболочка для редактирования и внесения изменений в виртуальные машины и образы дисков.

Напротив, Virt-rescue особенно подходит для восстановления виртуальной машины, которую не удалось запустить. Если виртуальная машина не загружается, вы можете просто запустить оболочку восстановления на виртуальной машине или образе диска с помощью virt-rescue и попытаться исправить ее с помощью стандартных команд Linux.

Вы можете использовать virt-rescue для любого файла образа диска или устройства, а не только для виртуальной машины. Например, его можно использовать на USB-накопителях, SD-картах и жестких дисках. Для этого не требуются права root, если только вам не нужен root для открытия образа диска.

Virt-rescue является частью libguestfs, которая предоставляет множество утилит командной строки для доступа и изменения образов дисков виртуальных машин.

Спасение виртуальных машин с помощью Virt-Rescue

Убедитесь, что вы установили libguestfs на свой компьютер с Linux, как описано в ссылке ниже.

  • Доступ к образам дисков виртуальных машин и их изменение с помощью Libguestfs

Теперь давайте продолжим и спасем виртуальные машины.

Прежде всего отключите виртуальные машины. Запрещается запускать оболочку восстановления на работающих виртуальных машинах или образах дисков.

Чтобы запустить оболочку восстановления на проблемной виртуальной машине, выполните:

virt-rescue -d centos8-uefi -i

Замените "centos8-uefi" именем вашей виртуальной машины. Список доступных виртуальных машин можно найти с помощью команды "virsh list --all".

Вы также можете запустить оболочку восстановления непосредственно на любом образе диска, как показано ниже:

virt-rescue -a CentOS_8_Server.img -i

Здесь флаг -i (--inspector) используется для автоматического монтирования файловых систем виртуальных машин. Если вы его не используете, вам придется вручную смонтировать файловые системы виртуальной машины в пустой каталог с именем /sysroot.

Теперь вы попадете в интерактивную оболочку bash, где сможете использовать множество обычных команд Linux для спасения виртуальных машин.

[...]
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.

Спасательная оболочка libguestfs

Из оболочки восстановления вы можете начать использовать традиционные команды Linux для исправления виртуальной машины.

Как указано выше, файловые системы гостевой машины монтируются в каталог /sysroot.

Вы можете проверить это с помощью команды "ls":

><rescue> ls /sysroot/
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

Чтобы сначала выполнить chroot в каталог /sysroot:

><rescue> chroot /sysroot

Чтобы выйти из оболочки восстановления, введите exit и нажмите Enter или нажмите Ctrl+d.

Запуск виртуальных машин в режиме только для чтения

Как говорилось ранее, вам не следует запускать оболочку восстановления на любых работающих виртуальных машинах. Но если по какой-либо причине вы все же хотите это сделать, используйте опцию --ro для безопасного использования "virt-rescue" на работающем диске. образ или виртуальная машина.

virt-rescue -d centos8-uefi -i --ro

Или,

virt-rescue -a CentOS_8_Server.img -i --ro

Параметр --ro запустит виртуальную машину или образ диска в режиме только для чтения. Он идеально подходит для экспериментов с виртуальными машинами или образами дисков. Никакие изменения фактически не сохраняются. После выхода из оболочки все изменения будут потеряны!

Включить доступ к сети для виртуальных машин

Если вы хотите загрузить файл или пакет на виртуальную машину, вы можете использовать опцию --network при запуске команды virt-rescue:

virt-rescue -d centos8-uefi -i --network

Или,

virt-rescue -a CentOS_8_Server.img -i --network

Эта опция включает доступ к сети внутри оболочки восстановления, поэтому вы можете загружать материалы из Интернета.

Вирт-спасение имеет множество вариантов. Более подробную информацию можно найти на страницах руководства:

man virt-rescue

Избранное изображение: Мигель А. Падриньян из Pexels.

Статьи по данной тематике