Как спасти виртуальные машины с помощью 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.