Вы не упоминаете, какой гипервизор вы используете, поэтому в своем ответе я приму QEMU / KVM.
Существует два способа shutdown
и reboot
.
Подход по умолчанию, используемый libvirt / QEMU, заключается в том, чтобы внедрить событие кнопки питания ACPI.Большинство гостевых ОС построены так, что что-то увидит событие ACPI и начнет постепенное завершение работы, но это не всегда так.Для перезагрузки libvirt сделает то же самое инъекцию кнопки питания ACPI, но когда гость завершит свою последовательность выключения, он будет сброшен, чтобы он снова загрузился.
Второй необязательный подход - установить гостевой агент QEMU вгостевая ОС.Затем вы можете указать virsh использовать гостевой агент для запуска выключения / перезагрузки.Однако гостевой агент доступен только для определенных ОС, современных Linux и Windows, если вы установили пакет драйверов virtio.
A virsh reset
совершенно другой - он просто выполняет немедленный сброс виртуальных процессоров, вызываямгновенный перезапуск гостя без постепенного завершения работы.