Назад | Перейти на главную страницу

Linux KVM при перезагрузке гостевой системы не запускается, необходимо запустить вручную

У вас есть сервер Ubuntu с KVM:

Linux hyperv 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Он запускает несколько виртуальных машин, которые являются Linux, и одну виртуальную машину Windows. После установки новой виртуальной машины сервера Windows 2016 возникает проблема. Виртуальную машину (называемую winstore) можно запустить, выполнив следующие действия:

virsh start winstore

И это нормально. Если эта конкретная виртуальная машина перезапущен изнутри виртуальной машины, она полностью отключится, но не вернись. Бег

virsh list

подтверждает, что это не началось. Чтобы запустить виртуальную машину, необходимо выполнить

virsh start winstore 

очередной раз. Это не желаемое поведение и НЕ то, как ведут себя другие виртуальные машины Windows (они имеют желаемое поведение, то есть они перезагружаются при перезапуске).

ВМ была создана немного иначе, чем обычно. Изначально при создании виртуальной машины использовались следующие шаги:

создать образ диска

qemu-img create -f qcow2 -o preallocation=metadata /mnt/vmstorage/images/winstore.qcow2 1300G

получить xml-вывод того, что мы будем делать, чтобы мы могли изменить атрибуты cdrom

virt-install --name winstore --ram 8192 --vcpus=2 --graphics=vnc --network=bridge=br731,model=virtio --disk path=/mnt/vmstorage/images/winstore.qcow2,format=qcow2,bus=virtio,cache=none --disk path=/mnt/backups/isos/virtio-win-0.1.126.iso,device=cdrom --cdrom /mnt/backups/isos/SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO --os-type=windows --noautoconsole --accelerate --noapic --print-xml > winstore.xml

измените порядок компакт-дисков в файле xml:

<disk type="file" device="cdrom">
  <driver name="qemu" type="raw"/>
  <source file="/mnt/backups/isos/virtio-win-0.1.126.iso"/>
  <target dev="hda" bus="ide"/>
  <readonly/>
</disk>
<disk type="file" device="cdrom">
  <driver name="qemu" type="raw"/>
  <source file="/mnt/backups/isos/SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO"/>
  <target dev="hdb" bus="ide"/>
  <readonly/>

затем он был установлен и запущен, выполнив следующие действия:

virsh create ./winstore.xml 
virsh start winstore

после установки xml был отредактирован, и два диска были заменены местами (hda / hdb), поэтому он будет загружаться с диска, а не cdrom. Затем виртуальная машина была определена в virsh со следующим:

virsh define ./winstore.xml

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

virsh start winstore

Очередной раз, ЕСЛИ виртуальная машина перезагружается из гостевой системы, она не перезагружается, она просто выключается. Просматривая журналы в /var/log/libvirt/qemu/winstore.log, не видно ничего необычного.

Обратите внимание, что виртуальная машина отображается в

virsh list --all

Да, я абсолютно уверен, что не нажимаю кнопку «Завершение работы» в виртуальной машине Windows. :)

Согласно комментариям Майкла Хэмптона выше, в xml было "уничтожить" для <on_reboot> узел вместо "перезапуска".