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.
Comments
Generally, my experience …
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!
My setup
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.
I'm slowly getting it
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.
Yes
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!
VM
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.
This is all good information
Thanks for the information and pointers.
I &refer to a *pointer.
I &refer to a *pointer.
question
is that menu that comes up asking what os to choose accessible? i think it has other options there too
Only with some Lenovo laptop…
Only with some Lenovo laptop on the windows side unfortunately.
Not Really
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.
But why somebody would want…
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.
Inside the VM
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.
OK, now I have a question
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?