VM box with Linux and Windows

By PaulMartz, 14 April, 2025

Forum
Windows

I'm looking for a new computer. I'd like to set it up as a virtual machine running both Windows 11 and Debian Linux 13. The two systems I've been considering (Dell Optiplex 7020 and Asus ExpertCenter D5 SFF) both come with Windows 11 preinstalled, and I presume they have a hardware license.

My questions, in general, are: what VM software do I need, how hard is it to set up, do I have to fool around with the EFI, what kind of accessibility issues am I likely to run into, and any other gotchas. I'm totally new to setting up a VM, so explain it to me like I'm a newb. Thanks.

Options

Comments

By TheBlindGuy07 on Monday, April 14, 2025 - 22:42

Generally, my experience (feel free to share yours) is that most modern laptops come with virtualization enabled out of the box so no need to play in the EUFI settings. As for the software, I happily use vmware workstation player and it's quite accessible for 99% of its interface and support all linux things exceptionally well as long as the architecture is the same, and on windows my experience is only with x86. It's in my opinion slightly better than mac with vmware player on windows because you press ctrl+g to get into the vm, and left control + left alt from the vm once (hold and release) to return back to the host os.
There is also oracle vm virtualbox that's made with qt although quite accessible as well which seems to have more option than the free teer of vmware in terms of virtual machines supported that you can try. For that one I remember that to either go in or out you have to press twice left control, and I don't think that we have a keyboard shortcut for the other thing, whether it's entering or getting out of the vm, we have to use the mouse for that I think.
I have tried both occasionally, I stick with vmware player because I don't need the extra features of virtualbox.
Note that if you want you can download the ovf tools from the vmware website through a complicated process which allows to convert the virtual disk from vmdk to that supported by virtualbox, and I am sure going the other way around is also that simple.
As for getting the VM... For linux especially it's as simple as getting the ..iso like on the mac and booting the vm from it.
For linux, when we use mainstream distros like ubuntu, vmware by default will use an easyInstall thing where it will set most things up for you and ask extra infos like user account credentials in the vm creation assistant. It is likely to screw accessibility of the vm at first boot from my experience, and I have never felt the need to try it more than that anyway. The very easy workaround for this in vmware is to set everything in the creation assistant but not provide it with the os image in the first setup screen, but rather set it empty and then go into the virtual machine settings with alt d after pressing finish button, add cd/dvd drive and then give it the .iso path so the normal setup of whatever os you're installing can launch with its accessibility, or inaccessibility :) .
A very helpful tip, with NVDA, go in the settings, windows ocr, and check Periodically refresh recognized content. That way when you launch the VM, you can just press nvda+r and it will read everything on the screen within the vm so you can read everything from the boot process until the setup screen or cli is there, and then you can just press escape and ctrl g to enter the VM and do whatever you need to do.
I hope this mess of an explanation helps!

By Tyler on Monday, April 14, 2025 - 22:42

Member of the AppleVis Editorial Team

I'd imagine how you'd set up a Linux VM would depend largely on how you plan to use it, and how much ram, storage, and other resources you expect to need. For me, as a relative noob exploring Linux with Ubuntu-Mate, the most accessible and user-friendly distribution I've come across so far, I installed VirtualBox on my Windows 11 PC, and created a VM for Ubuntu-Mate with 4 GB of ram and 50 GB of storage. Machine creation was straight forward, with no need for me to interact with the EFI or other pre-boot environment.

Once the VM was created and booted, I was able to press Alt-Windows-S (Alt-Super-S in Linux vernacular) to start Orca, configure basic settings, and proceed with the installation. For my purposes of exploring various Linux features and commands, and installing and uninstalling apps, this setup seems to work smoothly for me, however, I'd imagine you'd need to allocate more resources if you plan to use it for any kind of serious work.

By PaulMartz on Tuesday, April 15, 2025 - 00:42

So the computer comes with Windows, and I just leave that installation exactly the way it comes. Then I install the VM software,, set up the virtual machine, and install Linux. Okay, makes sense.

What happens after a reboot? I would want the VM and Linux to start automatically. I assume that's easy to set up, or maybe even the default behavior.

And then it sounds like I switch between either (native) Windows or (virtual) Linux with a hot key. But both operating systems are always running. So when I'm in Windows with MS Word open, typing away, my Linux system is still running, serving filesystems, handling ssh connections, serving websites through Apache - whatever I've set it up to do.

What do you do for a shared filesystem between multiple machines? I assume I can simply partition a small NTFS volume that both operating systems mount? Or is there something even easier.

I'm new to this, so I apologize if I'm a bit slow. I am trainable though. Housebroken, too.

By Sebby on Tuesday, April 15, 2025 - 08:42

You've got the general idea down. To answer your questions:

Assuming VMWare Workstation Pro (see below), you configure the VM to start at boot, either using a system service (which limits access to the GUI of the guest, so perhaps not quite what you want, but a very good option for purely networked access) or by running a program that launches Workstation and the guest window. It's not straightforward or default, but it's well-supported for precisely this sort of use case.

You don't need a separate file system on a physical disk for shared access to files twixt guest and host, no. Instead, use the provided virtualisation tools in the guest (for instance, VMWare Tools) to communicate with the host and expose what essentially amounts to a network file system to the guest that maps onto directories in the host. Or you can just use native support for network file systems in the guest to expose those directories published by the host (some people report that doing SMB direct is actually faster!).

Just FYI, VMWare Workstation Pro is a free download for non-commercial use. You probably want this, because it has advanced functionality not included in Player, probably including autostart. Try this blog post from VMWare. Be aware that you must sign up for a free Qualcomm account, which is stupidly painful, to access the free downloads (for which no licence key is required, if you simply indicate non-commercial use). (I don't think it would be illegal for one of us to help you with getting the files, although you really should read Qualcomm's licence terms ...)

Good luck, and have fun on your journey!

By Icosa on Tuesday, April 15, 2025 - 11:42

Since you said explain from first principles.
You will have a primary operating system, the host, then a piece of software that runs the virtual machine. This software looks like a computer to the guest operating system inside it but actually is a container which passes necessary requests to the host system and/or physical hardware, processor tasks and memory are typically self-contained in the virtual machine so unless you share file storage between the two they're pretty much closed off to each other. If you have hardware powerful enough you can run multiple virtual machines, and in all cases you can start or stop them at will. The VM's storage is typically within a single file that represents the virtual machine as well as its configuration.

TLDR, the virtual machine is a box that runs inside another operating system a little like an emulator. You install what you want on this box like a blank PC and you can have multiple VMs for different needs.
Alternately there's the dual boot option where both operating systems are installed on the same PC, a mini operating system loads first and can provide a menu to ask which OS you want to use, there can be a timer before it defaults to one of the options, or it can work without a menu but you hold down a key at startup to indicate you want the other OS. The downside here is you can't switch between the two OS without a reboot, the upside is you get full performance from whichever one you're in. Some VM software will also allow you to run a virtual machine from a dual boot partition but this could cause issues with Windows activation so it might take some additional research.

By Joshua on Tuesday, April 15, 2025 - 22:42

is that menu that comes up asking what os to choose accessible? i think it has other options there too

By Sebby on Wednesday, April 16, 2025 - 03:42

It will usually be GRUB or the firmware interface, which won't talk but might have reliable keyboard focus. So it's a question of knowing which is default and which direction you have to go in to select your other options. You might have to disable rescue options to declutter the menu a bit, but in general you have a default with a timeout, and you press a key to stop the timeout and make the selection. If you had a PC speaker then you could configure GRUB to beep that speaker so you knew when to do this.

By TheBlindGuy07 on Wednesday, April 16, 2025 - 04:42

But why somebody would want to use the eufi/bios thing from within a vm assuming this is even possible? Yeah I have never dualbooted linux with windows for whatever reason, maybe I don't use them seriously enough to consider a more permenant install and workflow with it? But I have 2 versions of macos in dual boot for beta testing.

By Sebby on Wednesday, April 16, 2025 - 04:42

Yes, there is a UEFI implementation and therefore a UI, but it's not important because the VM settings themselves can be used to tweak the boot device. So though you can use OCR to read it, it's really pointless. And of course the whole point of having the VM is to isolate operating systems, so that's basically never a problem. It is only ever an issue if you do bare-metal boot, which especially for GUI Linux I just don't recommend yet.

By Brian on Wednesday, April 16, 2025 - 08:42

I keep seeing replies in this thread talking about dual booting. Is this being done from the Windows side, or the virtual machine software? And if so, has anyone figured out how to dual boot on a Mac? Yah know, since BootCamp went the way of the dodo?

By Sebby on Wednesday, April 16, 2025 - 11:42

Per the OP's question, there is no dual-boot (once past the initial confusion about how virtual machines work). One would normally expect either to use a VM, or to dual-boot, but not both (though Fusion does support booting a BootCamp partition as though a VM on Intel-based Macs). Since dual-booting means giving control of the hardware over to the OS being booted, and since Apple haven't documented how their hardware works with Apple Silicon, that means only macOS can be dual-booted, and this is fully supported. The boot process is very, very different with Apple Silicon, such that a substrate of the boot process is actually a shared internal partition that provides the recovery system and support for encryption of the volumes. Only Asahi Linux, when it was afoot, reverse-engineered this process sufficiently to be able to fully boot Linux bare-metal. There has not (yet) been similar success for Windows. Therefore it would seem clear that virtualization is not only the only method, but also the best. Especially when using Apple's hypervisor, it's really difficult to see how you could improve on it, it's really very good.

By Icosa on Wednesday, April 16, 2025 - 11:42

Neither. Dual booting is the way boot camp used to work where you're either in one operating system or the other, and it sounds like that's no longer an option on apple silicon sadly.
Short version. Dual boot lets you run windows or linux, virtual machine lets you run windows and linux with one inside the other.

By PaulMartz on Wednesday, April 16, 2025 - 14:42

The Linux install will be a web server. I need the Linux OS running all the time. My need for the Windows OS will be much less frequent. Maybe a better setup would be to have Linux as the primary OS and Windows running virtually.

But regardless of which OS is primary, dual boot is not an option. There will never be a situation where I want Windows running but not Linux.

By Brian on Wednesday, April 16, 2025 - 17:42

I'm familiar with BootCamp, as I used to have Windows 10 BootCamped on my Intel MacBook Pro. However, I kept reading posts here about dual booting, so just wanted clarification. So, thanks for that. :-)

By Brian on Wednesday, April 16, 2025 - 23:42

Just wanted to add that if you go the virtual box route, and are using NVDA, there is an add-on for virtual box, that improves accessibility for that particular screen reader. Just thought I would pass this along. ☺️

By João Santos on Thursday, April 17, 2025 - 00:42

I've never used this myself, mostly because I don't use Windows, however everyone in the tech field who has experienced the Windows Subsystem for Linux praises the seamless integration between both systems, so maybe you should check that out first. As I understand it, WSL transparently runs a customized Linux kernel in a very lightweight virtual machine, making it possible to run Windows programs from within Linux, Linux programs from within Windows, access the host hardware from Linux as if it was running on bare metal, and most impressively, even run Linux X11 and Wayland graphical applications on Windows, all without requiring almost any manual setup since some Linux distributions actually target WSL specifically and can be installed right from the Microsoft Store.

By TheBlindGuy07 on Thursday, April 17, 2025 - 01:42

Yes, I confirm. Even Orca works. It's very weird as you have just the app itself and a very minimum window manager I think as I don't believe it's possible to get the full mate desktop environment from within windows for example, but say you open calculator app from the terminal in wsl you do alt tab until you hear the app name and then alt f2 to bring the launcher and type orca followed by enter. Even more cool is that the modifier can be the same and unlike on macos it won't conflict with the host screen reader. But I warn that I haven't tried this in a productive way, less than 10 minutes in total.

By TheBlindGuy07 on Thursday, April 17, 2025 - 01:42

Like you can have an insane integration with 1password.exe all from within wsl, great for ssh key sharing for example or anything else you can do with the 1password-cli.

By PaulMartz on Thursday, April 17, 2025 - 01:42

What about having the linux booted to console instead of a desktop, running SpeakUp? I assume that would work.

Not really interested in WSL. Like I said, I'm more inclined to have Linux as the primary OS with Windows running virtual. But this is still good info for others who find this thread at a later date. All good info, thanks.

By TheBlindGuy07 on Thursday, April 17, 2025 - 01:42

I had a great experience with stormux recently so I'd say go with fenrir if you can.

By Sebby on Thursday, April 17, 2025 - 02:42

The good thing about WSL is yes, it integrates perfectly with the console, so you get NVDA's excellent support for reviewing the Linux console just like that. The downside is pretty much everything else: the VM is being managed for you by the system, you don't control how it integrates, so while it consumes little memory you are not actually in control of when it is started, getting it to run services is a bit more involved, networking is very clumsy … but yes, if you're primarily in the CLI and you can live with the arrangement, it's a nice way to go, you can share between the guest and host through a network filesystem and performance is usually adequate. I actually think the original WSL1 (based on syscall emulation) was much more promising and I'm sorry Microsoft did not persist with that, but here we are. But certainly, if you want to run a proper MATE desktop, or use Speakup or any in-kernel support for hardware pass-through, you want a proper Linux VM, probably with Workstation because HyperV never added support for audio hardware directly. VMWare doesn't have support for memory ballooning, which means your VM can't give RAM back to the host, but Linux requires very modest resources, rarely more than 8 GB, so I doubt you'll ever run into issues.

Have fun.

By Jared on Thursday, April 17, 2025 - 03:42

If all you want is a Linux web server have you looked at Docker? You would install Docker in Windows, and use it to run a Linux container containing the webserver. Every time you started windows and logged in the Docker webswerver container would run. This would not give you Linux GUI access, but if all you really need is a webserver this is an easy way to get that.

By Icosa on Thursday, April 17, 2025 - 06:42

You might want to do some research if you plan to use Linux as the host and Windows as the guest, in the past Microsoft has gone out of their way to have Windows detect whether it's in a virtual machine and restrict whether it works based on the edition of Windows you have. I don't know if that's still a thing.