Если вы не можете остановить или перезагрузить виртуальную машину в Proxmox, мы расскажем в этой статье как это сделать и многое другое.
Чтобы остановить виртуальную машину из веб-интерфейса Proxmox, мы должны войти в веб-интерфейс.
Затем мы выбираем виртуальную машину.
После этого нажимаем на кнопку «Стоп«.
Таким образом, мы останавливаем Виртуальную машину в Proxmox.
Остановить виртуальную машину в Proxmox из CLI.
Чтобы остановить виртуальную машину из командной строки консоли, мы должны подключиться к серверу, на котором усыновлен Proxmox.
Сначала мы находим VMID виртуальный машины с помощью команды:
cat /etc/pve/.vmlist
Как только мы получим информацию о идентификаторе виртуальной машины, мы используем приведенную ниже команду, чтобы остановить виртуальную машину.
qm stop "VMID"
Виртуальная машина Proxmox заблокирована.
Одна из распространенных причин по которой не удается остановить виртуальную машину объясняет тем, что виртуальная машина заблокирована.
Блокировка может произойти, когда во время создания резервной копии или snapshot, мы пытаемся остановить виртуальную машину.
И чтобы завершить процесс резервного копирования виртуальная машина блокируется.
В этом случае мы можем дождаться, когда процесс резервного копирования завершит задачу. В противном случае мы можем разблокировать виртуальную машину Proxmox и остановить виртуальную машину.
Чтобы разблокировать виртуальную машину Proxmox необходимо подключиться к серверу Proxmox по консоли командной строки.
Узнаем VMID виртуальной машины с помощью команды:
cat /etc/pve/.vmlistc
Получив VMID, мы можем разблокировать виртуальную машину с помощью команды:
qm unlock "VMID"
Ошибка тайм-аута в Proxmox.
Ошибка тайм-аута виртуальной машины в Proxmox возникает, когда машина заблокирована или какой-то процесс еще работает в фоновом режиме.
Если виртуальная машина заблокирована, мы должны разблокировать виртуальную машину и остановим ее как в примере выше.
Остановить или прервать процесс виртуальной машины также можно через командную строку консоли управления Proxmox.
Находим PID процесса виртуальной машины с помощью команды:
ps aux | grep "/usr/bin/kvm -id VMID"
Как только мы находим PID, мы убиваем процесс с помощью команды.
kill -9 PID
Остановить виртуальную машину Proxmox из CLI.
Если вы столкнулись с проблемой, когда виртуальная машина не останавливается из веб-интерфейса, то выполнить остановку мы можем через консоль управления Proxmox.
1. сначала мы находим VMID с помощью той же команды:
cat /etc/pve/.vmlistc
2. Для остановки виртуальной машины остается ввести команду.
qm stop "VMID"
3.При обновлении веб-интерфейса мы видим, что виртуальная машина остановлена.
-
#1
I can turn-off a Windows Server VM, but shutdown simply does not work. The agent is installed, so what is happening?
The VM is Windows Server 2019.
Any ideas?
-
#3
Yes, and it does not work for Windows server 2016, 2019 and Windows 10
There are 3 items, neither of them exists. I created the first one, but it still does not shudown the VM. The issue is that if you have dozens of VMs, a user has to go one by one shutting them down manually to avoid crashing the OS or damaging an application. So this is critical. In Vmware, once you install the tools, this just works fine.
- launch «regedit.exe» and set value of HKLMSoftwareMicrosoftWindows NTCurrentVersionwinlogon and change «ShutdownWithoutLogon» to 1
- go to HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPowerPowerSettings7516b95f-f776-4464-8c53-06167f40cc998EC4B3A5-6868-48c2-BE75-4F3044BE88A7 and set «Attributes» value to 2
- then go to «Control Panel» —> «System and Security» —> «Power Options» and then —> «Change plan settings» on choosed power plan —> «Change Advanced Power Settings» —> «Display» and set ‘Console lock display off timeout’ to 0 to disable it
-
#4
It does not work under any condition. If I type
qm shutdown XXX, it hangs forever and the VM stays on. It has the Agent installed, and the VM definition has the Agent set.
Any idea what am I missing?
This is a 2016 server.
-
#5
I solved it, for the next person. On top of the qemu agent, you need to install the virtio-serial driver. It is found on the same ISO.
-
#6
I solved it, for the next person. On top of the qemu agent, you need to install the virtio-serial driver. It is found on the same ISO.
Yes, sure. Virtio-Serial is required for the QEMU agent to work properly. But glad that you figured it out.
-
#7
I solved it, for the next person. On top of the qemu agent, you need to install the virtio-serial driver. It is found on the same ISO.
Thanks ! Saved me some time
В редких случаях виртуальная машина в Proxmox циклически перезапускается и из-за этого завершить ее крайне сложно. Сложно это сделать через web-интерфейс, но через консоль проще простого.
Чтобы это сделать в консоли, нам нужно иметь доступ к консоли гипервизору Proxmox и знать id-номер виртуальной машины.
Управление запуском ВМ через консоль
Выводим состояние всех машин
sudo qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 win10 stopped 8000 32.00 0
102 cad stopped 32768 42.00 0
103 HomeAssistant running 2048 32.00 28153
Нас интересует ID 103.
Завершить работу
sudo qm shutdown 103
Перезагрузить
sudo qm reboot 103
Остановить работу
sudo qm stop 103
Запустить
sudo qm start 103
Если «trying to acquire lock…»
При остановке виртуальной машины выскакивает ошибка, что виртуальная машина заблокирована:
sudo qm stop 103
trying to acquire lock...
can't lock file '/var/lock/qemu-server/lock-103.conf' - got timeout
Необходимо вручную удалить файл блокировки, о котором говорит ошибка выше и запустить команду остановки повторно:
sudo rm -f /var/lock/qemu-server/lock-103.conf
sudo qm stop 103
Теги: proxmox
и сервер Linux
Комментарии
При использовании Proxmox в качестве сервера виртуализации можно столкнуться с ситуацией, что виртуальные машины — будь то Windows или Linux не завершают свою работу, если отправлять команду завершения работы из консоли управления, или, например при завершении работы хоста виртуализации. Всё очень долго висит, и ничего не происходит, и по истечении таймаута — вм выключается некорректно, по питанию.
Решается проблема за пару минут — необходимо просто установить агента qemu в гостевую ОС.
Например, на Ubuntu/Debian достаточно набрать:
apt install qemu-quest-agent acpid
Второй пакет — вроде не обязателен, но пусть будет, имхо.
После установки нужно включить службы, чтобы они запускались автоматически:
systemctl enable qemu-quest-agent systemctl enable acpid
И завершить работу машины. После этого нужно в настройках ВМ во вкладке options включить агента.
И запустить ВМ.
После этого, команды должны заработать.
Для виндовых машин, нужно установить агент из iso с тулзами, и также включить агента в свойствах ВМ.
Проверить, что агент доступен можно командой с хоста:
qm agent [vm_id] ping
Команда не должна выдать ошибку.
Вики Proxmox по теме.
Can’t stop the VM in Proxmox? We can help you do it.
We can stop a virtual machine in Proxmox from the web interface and CLI.
Here at Bobcares, we often receive requests regarding Proxmox as a part of our Server Management Services.
Today, let’s see how our Support Engineers stop a VM in Proxmox.
Stop VM in Proxmox from the web interface
To stop the virtual machine from the web interface, we login to the web GUI.
Then we click on the virtual machine.
After that, we click on Stop.
Thus, we stop the Virtual machine in Proxmox.
Stop VM in Proxmox from CLI
To stop the VM from CLI we log in to the host node.
We first find the VMID using the command.
cat /etc/pve/.vmlist
Once we get the ID we use the below command to stop the virtual machine.
qm stop
How we fix Proxmox cannot stop VM
Recently one of our customers contacted us saying they were not able to stop the VM. Now let’s discuss how our Support Engineers fix the error for our customers.
VM locked
One of the common reasons for ‘can’t stop a VM’ is that the virtual machine might have been locked. This usually happens when we try to stop a virtual machine when a backup is running.
So the VM locks itself to complete the backup process. Thus, we can wait for the backup process to delete the VM. Else we can unlock the virtual machine and stop the VM.
To unlock the VM we log in to the host node.
Then we find the VMID of the virtual machine using the command
cat /etc/pve/.vmlist
Once we get the VMID, we unlock the VM using the command
qm unlock
After we unlock the virtual machine we can delete the virtual machine from the web interface or using CLI.
Thus, we fix the error.
Timeout error
The timeout error occurs when the virtual machine is locked or the process is still running in the background.
If the virtual machine is locked we unlock the VM and stop the VM.
Else we log in to the Host node.
Then we find the PID of the Machine process using the command.
ps aux | grep "/usr/bin/kvm -id VMID"
Once we find the PID we kill the process using the command.
kill -9 PID
Thus, the VM will stop.
Stop from CLI
We have come across many instances that stops the VM from the web interface to do the tasks.
Thus, we stop the virtual machine from the node. To stop the VM first we find the VMID.
Thus we use the below command to stop the virtual machine
qm stop
Then on refreshing the web interface, we can see that the virtual machine is stopped.
[Need any further assistance with Proxmox? – We’ll help you]
Conclusion
In short, we have discussed how we stop the VM from the web interface and CLI. Also, we have discussed how our Support Engineers fix the error when stopping the virtual machine.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;
Не могу подтвердить. Вот проверил:
user@proxmox:~$ pveversion pve-manager/5.3-11/d4907f84 (running kernel: 4.15.18-11-pve) user@proxmox:~$ ps aux | grep "/usr/bin/kvm -id 110" root 23573 47.3 0.0 4959584 23584 ? Sl 13:24 0:25 /usr/bin/kvm -id 110 -name kubuntu -chardev socket,id=qmp,path=/var/run/qemu-server/110.qmp,server,nowait -mon chardev=qmp,mode=control -chardev socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5 -mon chardev=qmp-event,mode=control -pidfile /var/run/qemu-server/110.pid -daemonize -smbios type=1,uuid=9b985630-c628-41e6-afa5-68a536893ce2 -smp 2,sockets=1,cores=2,maxcpus=2 -nodefaults -boot menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg -vnc unix:/var/run/qemu-server/110.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 4096 -device pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e -device pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f -device vmgenid,guid=e9d1baf6-b38f-491b-b1bc-a9479ee6d42a -device piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2 -device usb-tablet,id=tablet,bus=uhci.0,port=1 -device VGA,id=vga,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -iscsi initiator-name=iqn.1993-08.org.debian:01:59b675a1154 -drive if=none,id=drive-ide2,media=cdrom,aio=threads -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2 -netdev type=tap,id=net0,ifname=tap110i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on -device virtio-net-pci,mac=32:B4:FE:2C:53:33,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=100 -netdev type=tap,id=net1,ifname=tap110i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown -device e1000,mac=76:4B:48:28:D3:A4,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=101 -machine type=pc user 24291 0.0 0.0 12784 980 pts/0 S+ 13:25 0:00 grep /usr/bin/kvm -id 110 user@proxmox:~$ sudo kill -9 23573 user@proxmox:~$ ps aux | grep "/usr/bin/kvm -id 110" user 24530 0.0 0.0 12784 932 pts/0 S+ 13:26 0:00 grep /usr/bin/kvm -id 110 user@proxmox:~$
Всё работает.