В этом кратком руководстве описывается, как реанимировать виртуальные машины с помощью утилиты командной строки Virt-rescue на Linux.
Virt-rescue похож на rescue CD, но только для виртуальных машин.
Он предоставляет простую оболочку восстановления и некоторые инструменты восстановления для проверки и устранения проблем в виртуальной машине или образах дисков.
Обратите внимание, что Virt-rescue отличается от guestfish.
Guestfish – интерактивная оболочка для редактирования и внесения изменений в виртуальные машины и образы дисков.
Напротив, Virt-rescue подходит для спасения виртуальной машины, которая не запустилась.
Если виртуальная машина не загружается, вы можете просто запустить rescue оболочку (восстановления) на виртуальной машине или образе диска с помощью virt-rescue и попытаться исправить ее с помощью стандартных команд Linux.
Вы можете использовать virt-rescue на любом файле образа диска или устройстве, а не только на виртуальной машине.
Например, его можно использовать на USB-накопителях, SD-картах и жестких дисках.
Он не требует прав root, если вам не нужен root, чтобы открыть образ диска.
Virt-rescue является частью libguestfs, который предоставляет множество утилит командной строки для доступа и изменения образов дисков виртуальных машин.
Восстановление виртуальных машин с помощью Virt-rescue
Убедитесь, что виртуальные машины выключены.
Вы не должны запускать оболочку восстановления на каких-либо действующих виртуальных машинах или образах дисков.
Чтобы запустить эту оболочку на проблемной виртуальной машине, выполните:
$ 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.
В оболочке аварийного восстановления вы можете начать использовать обычные команды 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
><rescue> chroot /sysroot
Запуск виртуальных машин в режиме только на чтение
Вы не должны запускать эту оболочку на любых лайв виртуальных машинах.
Но если вы по-прежнему хотели это сделать по какой-либо причине, используйте параметр –ro, чтобы безопасно использовать «virt-rescue» на лайв образе диска или виртуальной машине.
$ virt-rescue -d centos8-uefi -i --ro
или
$ virt-rescue -a CentOS_8_Server.img -i --ro
После выхода из оболочки все изменения будут потеряны!
Как включить сетевой доступ для виртуальных машин
Если вы хотите загрузить файл или пакет на виртуальную машину, вы можете использовать параметр –network при запуске команды virt-rescue:
$ virt-rescue -d centos8-uefi -i --network
или
$ virt-rescue -a CentOS_8_Server.img -i --network
Эта опция обеспечивает доступ к сети внутри оболочки аварийного восстановления, поэтому вы можете загружать файлы из Интернета.
У Virt-rescue есть много возможностей.
Для получения дополнительных сведений см. Справочные страницы:
$ man virt-rescue