Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gaming VM - "Cannot run under Virtual Machine" error when Launching game.

Featured Replies

Hello guys. I hope you're all doing fine !
I have a quick question to make for someone who might have a solution !

 

- - - - - - - - - - - - - -

 

Some info:
I followed SpaceInvaderOne's guides (PRICELESS), and advice from other users, and posts in this forum, and I've put together my second UnRaid build with the intent to use it as a daily with Dual gaming VMs for me and my wife. 

Things are working GREAT. I've setup everything, and both VMs are running flawlessly with GPU Passthroughs. 

I even tried several games, and they seem to be working flawlessly as well. 
 


The Problem: 

I tried to launch a game called "RUST" today, (which by the way is the game me and my wife mostly play together), and when the anti-cheat software was "loading" I got the error message: "Cannot run under Virtual Machine".   
Which does make sense at first, but what drives me crazy, is that the game was launching perfectly fine up until yesterday, and I didn't notice any update to be honest.

 

My Question:

Does anyone know if we can somehow trick the software, into thinking it's running on a normal machine ? 


PS. Or is there possibly something wrong with MY VM ? Although I changed nothing since yesterday when it was working. :D 
I've also attached a photo with the error message.

rust.PNG

  • Author

Anyone?  😔

 

Update: Other EAC (EasyAntiCheat) games, work fine. 
For example Apex Legends.

after a ton of research i have figured it out my man.

under <os> put

<smbios mode='host'/>

directly below that put this under <features>

<kvm>
  <hidden state='on'/>
</kvm>

under <cpu mode ='host-passthrough'....... put

<feature policy='disable' name='hypervisor'/>

 

and i also deleted any lines pertaining to hyper-v

 

now go forth and make some plays

Edited by shakinbacon

  • Author
13 hours ago, shakinbacon said:

after a ton of research i have figured it out my man.

under <os> put

<smbios mode='host'/>

directly below that put this under <features>

<kvm>
  <hidden state='on'/>
</kvm>

under <cpu mode ='host-passthrough'....... put

<feature policy='disable' name='hypervisor'/>

 

and i also deleted any lines pertaining to hyper-v

 

now go forth and make some plays

 

Gonna Check this out right when I get home !
If this works I'm gonna buy you a beer ! ❤️

  • Author
20 hours ago, shakinbacon said:

after a ton of research i have figured it out my man.

 

So !   [updates] 

1:  I've added those 3 lines in my XML, and by ONLY adding those 3, my VM "starts" but I get a black screen. It's not a passthrough problem, because I also get a black screen on my Remote Desktop app. I use "Parsec". What's strange though, is that parsec sees the computer as "online" seconds after it boots, as if it's working normally in the background. Strange. 

2:  Under <features> if I completely remove the following lines (since you said "and i also deleted any lines pertaining to hyper-v"):

<hyperv mode='custom'>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>

the VM boots up and works normally, but I can ONLY save the VM template in "XML View". If I switch to "Form View" and save, I get the error message: 

image.png.2508fcf4b2b15032e6cb2831332fb05e.png

 

3: If though, I only add the first two you suggested:

<smbios mode='host'/>

<kvm>
  <hidden state='on'/>
</kvm>

remove the <hyperv mode...> part, but keep the  

<feature policy='disable' name='hypervisor'/>

out of the XML as well, then I can switch back to form view, I can save, It boots, and the game works.

 

 

So my question is, do you actually now by any chance what this last line does ? It disables the "hypervisor" or something ? 
And if I skip adding it, will something bad happen ? 


plus, what about the whole part we had to delete ? Why is it there in the first place ? 
 

So many questions, so little knowledge I possess. :( 

2 hours ago, bonamin said:

I can ONLY save the VM template in "XML View". If I switch to "Form View" and save, I get the error message: 

Form view is sort of broken, it tries to ensure the XML code is valid, but it doesn't know all the acceptable entries, so if you make a change in XML that it doesn't understand, it wipes it out or errors. Stay in XML view once you customize a VM using XML.

 

Take a look at all the options and combinations available, and you'll have a sense of why things are as they are. Form view is there to give a good base, hopefully 90% of VM's can be run from there, but the customizations available in the raw XML are almost endless.

https://libvirt.org/formatdomain.html

  • Author
5 hours ago, JonathanM said:

Form view is sort of broken, it tries to ensure the XML code is valid, but it doesn't know all the acceptable entries, so if you make a change in XML that it doesn't understand, it wipes it out or errors. Stay in XML view once you customize a VM using XML.

 

Oh I didn't know that. Thanks !

 

The only thing that made me "want" the Form View, is the fact that I can super easily change how many cores and RAM I have assigned to my machine. 

[ Quick Talk - Not important :D

I've built this box, only with Dual Gaming VMs in mind, for me and my wife, since it didn't make sense buying a whole separate PC for her. When my wife isn't gaming with me (on RUST 90%) she most likely listens to music, browses the web, watches a movie on Emby or Netflix or spends our money on eBay and clothes. :D
So the idea was, once we decide to game, Split the CPU and RAM in half, (or 60-40
:D) and play.
Once we are done, give her a couple of cores, and about 8-10Gigs of RAM, and give my VM the full power of that beefy CPU. 


Anyway, many many thanks for your advice guys. 
I REALLY hope that EAC doesn't figure out we are trying to hide the VM from it and bans us. :( 

Good Day everyone. ❤️
 Cheers. 

  • 2 weeks later...

Lovely, this works like a charm. thank you so much guys

  • 5 months later...

Hello all, I'm on the same situation.

I didn't understood What are the parameters to change and which ones are useless?

I saw elsewhere that certain modifications changed performance into games, is this your case?

Many thanks 😃

  • 3 months later...

Guys, an update for the anti-cheat battleye was released some time ago, this solution no longer works for it. battleye affects a decent number of games. You can select: DayZ, PlayerUnknown’s Battlegrounds, Escape from Tarkov, Fortnite Battle Royale, Mount & Blade II: Bannerlord, and also Tibia, Arma 2, PlanetSide 2, Arma 3, Rainbow Six Siege, Heroes & Generals, Ark: Survival Evolved, Unturned, Destiny 2, Z1 Battle Royale, PlanetSide Arena, Watch Dogs: Legion.

 

It would be nice to find some solution to hide the virtual machine from the anti-cheat.

5 minutes ago, Pavelapoliakov said:

Guys, an update for the anti-cheat battleye was released some time ago, this solution no longer works for it. battleye affects a decent number of games.

On my side, Fortnite is still working.

  • 1 month later...

Neither BattlEye nor EasyAntiCheat working for me in Forntnite anymore. Anyone else?

  • 1 month later...
On 8/28/2022 at 7:37 AM, shakinbacon said:

after a ton of research i have figured it out my man.

under <os> put

<smbios mode='host'/>

directly below that put this under <features>

<kvm>
  <hidden state='on'/>
</kvm>

under <cpu mode ='host-passthrough'....... put

<feature policy='disable' name='hypervisor'/>

 

and i also deleted any lines pertaining to hyper-v

 

now go forth and make some plays

This worked for me!

  • 2 months later...
On 9/3/2023 at 12:51 PM, guyverjab said:

This worked for me!

 

Hey there,

 

Confirming this also worked for me recently. Windowss 11 VM, GTX3070 Passthrough and can now play Fortnite successfully. Performance of the VM in general seems unaffected, so will incorporate this into my templates going forward.

 

Thank you for the tips here!

 

Regards,

 

Xav.

This no longer works as of today. EAC clears but you get kicked from the match with battleye

On 11/7/2023 at 8:46 PM, threatening-journeyman6134 said:

This no longer works as of today. EAC clears but you get kicked from the match with battleye

 

Yes! I know :( Loaded up the game to play with my son and was booted from the match about 45 seconds in - seems like the detection has been updated and the settings no longer work. Haven't been an avid gamer for years, and not kept up with it - why would running in a VM be an issue? Is this the way certain hacks/cheats are made? I'm just playing on a different setup and want to use the same hardware for different things!

 

The performance was great, the gametime was fun.

 

Guess I'm searching to beat BattleEye, or find another combination of setting that hides the VM status.

 

Regards,

 

Xav.

7 hours ago, xavierda said:

Is this the way certain hacks/cheats are made?

Yes

7 hours ago, xavierda said:

I'm just playing on a different setup and want to use the same hardware for different things!

I agree 100%, but stupid software houses don't understand this; instead of programming some serious anticheating software they only check if you're running the game in a vm.

  • 1 month later...

Hello guys,

It's no longer working for me

 

Is it still working for you ?

 

Thanks all 🙂

  • 6 months later...

Thank you for this, it got me sorted earlier today. 

  • 7 months later...

Steam's EA SPORTS WRC 2024 latest update 2.2.0 with EAAntiCheat stops allowing running the game on my VM. Game worked flawlessly before. I did try every trick mentioned in this post, but still get the error:

Quote

Unable to run in a Virtual Machine. Please exit the VM and try again. (142)

Is there any solution to this problem or is it the end of VM gaming as we know it? It seems to me, that right now, the only sloution to this, is to buy another PC for gaming.

Edited by Lepo Arro

EDIT: Oops, this was the same info mentioned earlier in the thread: 

BUT! I rebooted into native windows, THEN made it virtual again - will see how long that lasts for!!

 

-----

 

Hi there,

 

So, I returned to this after giving up for a while. Now, when originally configuring my VM, I passed through an NVME drive. I figured I don't need my Unraid shares while gaming, so rebooted - boot menu'd to Windows and BOOM! Back in action.

 

I then followed this guide: 

 

Mainly for the tip about copying the UUID so as not to confuse Windows. I'm not running it activated anyway, but allows for switching between the two.

 

Then I looked into the doco behind the XML config underpinning the KVM: https://libvirt.org/formatdomain.html

 

I noticed the "smbios tag".

 

By default, if not specified, the emulator populates it with things like "QEMU" (If you bring up System Info in Windows, you may see this in one of the BIOS strings).

I added this instead under the <os> tag:

 

<smbios mode='host'/>

 

Which according to the doco instead copies those values from the host. So for example, sysinfo within my VM now looks like:

 

System Manufacturer    		Micro-Star International Co., Ltd.
System Model    			MS-7B09
System Type    				x64-based PC
System SKU    				To be filled by O.E.M.
Processor    				AMD Ryzen Threadripper 2950X 16-Core Processor, 3500 Mhz, 14 Core(s), 28 Logical Processor(s)
BIOS Version/Date    		American Megatrends Inc. A.89, 11/08/2022
SMBIOS Version    			2.8
Embedded Controller Version 255.255
BIOS Mode    				UEFI
BaseBoard Manufacturer    	Micro-Star International Co., Ltd.
BaseBoard Product    		X399 SLI PLUS (MS-7B09)
BaseBoard Version    		2.0

 

Now, my previous boot into this VM, Fortnite exited due to detecting a VM. There may have been a few other things contributing to "resetting" the detection:

  1. I updated the BIOS (as per above) as in my case it supported Win11 (which I didn't need before when running just as a VM, as it was using the emulated one)
  2. I rebooted into native windows, THEN ran the game - all good!
  3. I booted back into Unraid, copying the UUID into the XML config.
  4. Added the smbios = host tag under the <os> section.
  5. For good measure, also threw the <kvm> <hidden state='on'/> back in there.
  6. Played Fornite in the VM again! (Yay!!!)

Might be a different outcome with your WRC game, but - if you can - try the above?

 

Happing gaming - virtually!

Edited by xavierda
Added ref to previous post with same info.

Hi there,

 

Few more tweaks today. Added back in the:

<feature policy='disable' name='hypervisor'/>

 

option. I am a bit baffled reviewing this thread actually - I swear I had this option enabled? Anyway, also added the following:

</kvm>
<vmport state='off'/>

(just including the 'kvm' entry so you know where to pop this setting). According to the doco (https://libvirt.org/formatdomain.html#hypervisor-features) this disables emulation of a VMWare IO port.

 

In Task Manager, Performance Tab, CPU (after shutting down and restarting the VM) you'll now see: Virtualisation: Enabled. Whereas previously, this was Virtual Machine: Yes.

 

Before adding those settings into the XML config, Fornight was fine, but Marvel Rivals was not. Now, Rivals starts fine. Pretty impressed really, this is a ThreadRipper system I built specifically for Unraid back in 2018. Passing through a GTX3070. Again, not an avid gamer but feels good to give this older system a bit of a stretch!

 

Happy to try other games and report back, compare configs etc. So far, stable and works...

 

On 8/28/2022 at 10:37 AM, shakinbacon said:

after a ton of research i have figured it out my man.

under <os> put

<smbios mode='host'/>

directly below that put this under <features>

<kvm>
  <hidden state='on'/>
</kvm>

under <cpu mode ='host-passthrough'....... put

<feature policy='disable' name='hypervisor'/>

 

and i also deleted any lines pertaining to hyper-v

 

now go forth and make some plays



I'm from the future. As of 7.0.1 this still works w/ EAC Fortnite. My woes are gone for now. Many thanks!

On 2/26/2025 at 12:08 PM, darthkielbasa said:



I'm from the future. As of 7.0.1 this still works w/ EAC Fortnite. My woes are gone for now. Many thanks!

I am curious, do you get good performance in Fortnite with the hypervisor feature policy disabled? For me, the game lagged terribly and was unplayable. Removed that (keeping the SMBIOS setting) and despite Windows now reporting again it is running in a VM, Fortnite worked beautifully!

On 2/27/2025 at 12:55 PM, xavierda said:

I am curious, do you get good performance in Fortnite with the hypervisor feature policy disabled? For me, the game lagged terribly and was unplayable. Removed that (keeping the SMBIOS setting) and despite Windows now reporting again it is running in a VM, Fortnite worked beautifully!

I didn't get a pre/post of Fortnite but other games (Jedi Survivor, Outlaws) performed about the same. Benchmarks always come to mind after i make changes. 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.