Anyone know what the best way to install games for a windows virtual machine on an HDD that belongs to a Ubuntu host

In essence I have a windows virtual machine that I want to use for gaming, I have a GPU passed through, I interact with it through looking glass and everything but I cant quite nail down the best method for game installation.

I have been to this website (9p virtio - KVM) but this all goes over my head

I set up a samba share but Oculus refuses to accept a network drive as a download location and steam outright doesn’t even see it, Origin sees it but as usual there are permission issues. Some how EPic games of all things has no problem installing to a network share

I have run out of ideas so any insight as to how I can just install a game on a file path that belongs to the host would be greatly appreciated.

Thanks

What about about trying iSCSI?

I was about to suggest ISCSI. It’s surprisingly easy to setup in Windows, but the Ubuntu side may be a bit more complex.

The problem with a SAMBA share is that many Windows programs don’t like using network shares when mounted as folders (as you’ve already discovered). This is mostly because, in Windows, a network share isn’t just a mount point like it is in Linux where the OS is hiding the fact that it’s external to this OS. This can really suck and the only (consistent) thing I’ve ever found to work was ISCSI. The biggest problem I see is the volume setup outside of Windows. The only place I’ve tried setting up the ISCSI volume was within a FreeNAS installation that does everything for you on the “host” side.

I suspect googling for ISCSI host installation for Ubuntu will give reasonable results. A quick check gives the Ubuntu page for host setup… but it’s a bit complicated: Service - iSCSI | Ubuntu ( this one may be easier: Configure iSCSI Storage Server on Ubuntu 18.04 LTS but still only shows the server side, you’ll need a different article for Windows)

FYI: The Windows side is borderline trivial to setup (last time I did it, it was: Install ISCSI, Point to the server, Click on the volume desired, Assign a drive letter or mount it over a folder, Boom!). Here’s an article that shows the basics after you have a volume to mount: Help Center or another one that’s a bit old but has the basic screens I was talking about Configure iSCSI Initiator on Window 10 System PART- 2 - IT Troubleshooter

Maybe someone else knows of a simpler article that’s still recent?

Good luck, once you get it working, it’s a wonderful thing. If you attach it to a volume group, you can also easily expand it when it starts getting full without monkeying around much in Windows.

1 Like

Iscsi is pretty straight forward to set up (my old post is pretty out of date) but I would just make a virtual disk and give it to the VM, you’d only use iscsi if the VM was running on a different machine to the storage.

1 Like

True, but I was thinking about ease of disk space management. Thinking about it further, it’s easier to use a virtual disk (sparse allocation) and set it to a huge size (50TB) and allow it to grow as needed. It can then me managed on the Linux side using any number of methods to actually provide the space needed. This would be significantly easier to setup than ISCSI, but if there is a need to have the storage moved to a NAS in future, it would probably be easier to setup ISCSI now. If no NAS in the near future, then using a huge dynamically growing virtual disk is MUCH easier.

If you move the virtual disk to a NAS later you can set up iscsi then, either to the hypervisor so the disk configuration in the VM doesn’t change or to windows running in the VM, either way it’s not really a hassle and the performance of a local disk image is going to be better than going over the network.

As for the space requirements as long as you have compression enabled on the file system that the virtual disk is stored on then that empty space on the virtual disk won’t take up any actual space. Although for best performance you may want to preallocate it to avoid fragmentation.