Introduction
Hello everyone. Recently, for Zennoposter + Zennodroid work (I’ll tell you more about them later), I got a virtual server from Hostbrr. The specs are pretty good – 6 vCore AMD EPYC 9454P, 20 GB DDR5 ECC RAM, 200 GB NVMe Gen4 Storage. And all for just 10 euros per month. Here’s the link with the sales: https://my.hostbrr.com/order/forms/. I hesitated for a long time whether to get a virtual server or an older dedicated one.
Decided to go with the virtual one after all because the peak performance of the processor is higher. Since the server specs are good and it would be wasteful to use it solely for Zennoposter, I decided to install Proxmox 8 on it. For those who don’t know, Proxmox is open-source virtualization software that allows you to run nodes with other servers simultaneously on one server. Roughly speaking, you can have multiple Linux or Windows and Linux running simultaneously. Really cool!
Chapter 1 – Proxmax8 Web GUI “This site can’t be reached”
The installation of Proxmox 8 was not a problem. With the Hostbrr hoster, you can install it directly from the panel with just one click. However, the problems started afterward. Right after the installation, I was offered to open the web interface of the platform via VNC for setup. But when trying to open it through the browser, it says “This site can’t be reached.”
Ok.
Alright. I checked that all Proxmox 8 services are running and the firewall is disabled. But why isn’t it working then? Everything became clear when I tried to install a graphical interface on Proxmox 8 (it runs on pure Debian, so all Debian capabilities are available). The problem is… there’s no network!
And then I figured out why.
cat /etc/network/interfaces
In the network interface, the gateway is incorrect. I need to get the correct gateway from the hoster (check it in the VPS control panel) and manually set it up.
Just
nano /etc/network/interfaces
#edit fix gateway
CTRL+O
Enter
Reboot server after this. And Web GUI work!
Chapter 2 – Install Windows 10 and enable nested virtualization in Proxmox 8
I quickly performed basic setup – created “Storage” and configured a virtual machine. It’s all pretty intuitive. To install Windows 10 from an ISO, I simply downloaded it via aria2c “magneturl” from a torrent on my server and added the image to Proxmox 8 via the link (Storage – ISO images – Add by URL). Not forget to add a Windows Virtio drivers, pls. Official site – https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/
So create HDD set CD to ISO
To use Nested Virtualization, you need to configure the processor correctly in the virtual machine. You should select the processor type as “host”.
And add a special flags for CPU, for this open config VM (For convenience, you can launch the console directly from the web panel in the “Node – Shell” section.)
nano /etc/pve/qemu-server/<VMID>.conf
and add string
args: -cpu 'host,+svm,-hypervisor'
Great!
Let’s start VM and install Windows.
During installation, it will likely ask for drivers for the hard disk, and for that, you’ll need Virtio drivers. So.
Chapter 3 – Network settings Proxmox 8 VM (How to set up Internet in a virtual machine)
Let’s create network NAT for our VM Proxmox! So.
Open “Node settings” – “Network” – “Add” – “Linux bridge” and just copy settings.
We creating NAT network with IP diap 192.168.100.1 – 192.168.100.255.
Important checkbox “Support virtual”. After this select this network interface in VM settings.
In Windows we need to set network manual. Open connection settings and set like this:
Steps very similar to my another post How to install Windows on VPS with Linux
Chapter 4 – Enable RDP Windows, Proxmox 8 port forwarding and .. RDP port still closed
Enable RDP
Enabling RDP in Windows is quite simple, as you know.
You open “My Computer” – “Properties” – “Remote Desktop” – “Enable.” But often (Especially in our case), that’s not enough.
Firewall rules Windows and Proxmox
So at first add RDP Port to Windows Firewall (If disable firewall, RDP port also can be close automatic, IDK why, but better to just allow RDP connections).
“Firewall – incoming connection rules – create rule – for all TCP – port 3389. Do the same for outgoing connections.”
In Proxmox 8, you need to add rule for firewall in the virtual machine settings. Just “Add rule” – in/out connections – macros “RDP”.
Port forwaring Proxmox8
And after that, configure port forwarding for RDP because our server is behind NAT.
Again, open
nano /etc/network/interfaces
And add in the end
post-up iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 192.168.100.3:3389
post-down iptables -t nat -A FORWARD -p tcp --dport 3389 -j ACCEPT
change 192.168.100.3 to your ip of VM, which you setting inside Windows.
If after this your RDP not avaibale
I mean, if RDP enabled, but RDP port is closed… So open Windows, check RDP services and check RDP port.
At first, check your RDP port in regedit “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber” and after that, check “netstat -a” in cmd, that port on Windows realy closed. If yes, that’s steps, which can help you(i tried it all):
- Uninstall KB2621440, KB2667402, Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*, uninstall this patcthes
- run sfc /scannow to confirm that theres no file level corruption
- set following regvalue to “0” manually: HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections
- Export following registry entry from working RDP machine and Import to machine having RDP issue.
HKEY_CLASSES_ROOT\CLSID{18b726bb-6fe6-4fb9-9276-ed57ce7c7cb2}, HKLM\SYSTEM\CurrentControlSet\Control\Video{DEB039CC-B704-4F53-B43E-9DD4432FA2E9}, HKLM\SYSTEM\CurrentControlSet\services\RDPDD - Try to reinstall “Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*”, “Windows 7 for x86 or x64 based Systems Service Pack 1*”, (KB2621440), “Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*”, “Windows 7 for x86 or x64 based Systems Service Pack 1*”, (KB2667402)
- try this bat
@echo off
sc config TermDD start= system
sc start TermDD
exit
7.Remove updates “KB2830477 KB2592687”
If say by true, this is not helped me. So, I just installed Windows 11 🙂 But in 99% cases it should help and fix problem.
If in “netstat -a” port RDP opened but you can’t connect from your RDP, try to disable firewall on Proxmox.
Chapter 5 – Memuplay stuck at 59%-99%
Along with Memuplay freezing on 59-99%, I noticed that the Memuhyperv Headless Frontend process consumes 50-80% of the processor. Assuming that the issue lies with virtualization, I decided to enable the Hyper-V virtualization modules within Windows itself.
Don’t do as I did!!
After reading about nested virtualization, I concluded that I needed to install Windows components to enable the virtual machine to interact with the processor virtualization through Proxmox. Through “Add or Remove Programs” – “Components” – “Virtualization / Hyper-V,” I installed all the components and rebooted the computer. Why did I think this would fix the situation? Well, I thought that Memuplay couldn’t find the Windows components, so it tried to emulate them somehow. And if I installed the latest versions of the components, the emulator would work with them directly, and everything would be resolved =))))
In general, after installing the virtualization components, my Windows on the virtual machine stopped booting. Moreover, I repeated this procedure three times – installed Windows, installed the virtualization components, and Windows stopped booting.
Don’t do as I did!!
Better, to this:
After check the Memuplay documentation; it turns out that Windows virtualization should be disabled altogether as it may conflict. I used for this powershell command
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
and
bcdedit /set hypervisorlaunchtype off
or you can do it in panel
Spoiler? Did it help to launch Memuplay? No. It’s still stuck.
I tried everything. So. How to launch Memuplay emulator (Hyper-V) on Windows inside Proxmox and FIX stuck 59%-99%?
I noticed that if you press the “Optimize” button on the virtual machine in Memuplay, Android boots successfully once. I tried many different options and it turns out that if you set 1 processor in the settings, Android will boot slowly but it will boot. The amount of RAM doesn’t affect this. So, with these settings, Android boots!
Also, VPS has not GPU, so Opengl not supported. In settings VM Android select Directx!
So, this is end? Realy?
NO!
Chapter X – Proxmox Windows BSOD “Critical structure corruption”!!
Yes, I breathed a sigh of relief that several days of my struggles came to an end and that I didn’t have to install Windows as the primary operating system on the server. However, as I was writing this article, my servers started encountering an error “Critical structure corruption”. LOL
Possible reasons: file corruption, so we try to fix it
sfc /scannow
Dism /Online /Cleanup-Image /CheckHealth
Dism /Online /Cleanup-Image /ScanHealth
and the reason can be in old/wrong drivers
so I’m updated QXL drivers https://www.spice-space.org/download.html
and Virtio Baloon, and others using virtio.iso. Did it help?)
NO!
So, I’m disabled a “Virtio Baloon device” in Manager devices. And wait 🙂