We’ve previously installed Windows on aRaspberry Pi 4and 5 with varying levels of success. But it seems that Botspot is taking a shot at runningWindows 11on a Raspberry Pi withBVM (Botspot Virtual Machine).
BVM offers a simple installation process, most of which is automated via the terminal. There is also a GUI application available from the terminal which makes it even easier to use.
Windows 11 Arm in a virtual machine (VM) on your Raspberry Pi 5 has some caveats. Because it is KVM, there is no significant speed difference to running Windows 11 bare metal on the Pi 5. That said, it isn’t speedy, so don’t expect to be playing triple A games here. Older games (like 10-15 years ago) and web games should work ok.
Windows 11 will have access to Linux host’s Ethernet and Wi-Fi connections, and also to the hostaudio. Windows 11 on Arm’s Prism emulator should enable x86 and x64 apps to work, but your mileage may vary. With a little configuration, host USB devices can be seen by Windows 11 and the Windows 11 drive can be mounted in the host OS. We will cover both of these features in the steps below.
For this project I used the latestRaspberry Pi 5 16GB, and I ran the host OS, Raspberry Pi OS from a 128GB Makerdisk PCIe Gen 3 NVMe SSD using aPineboards HatDrive! Nano. I would recommend using an NVMe SSD or USB 3 drive as it provides better performance than micro SD.
You can run this VM on a Raspberry Pi 5 with as low as 2GB of RAM, but I would recommend using a Raspberry Pi 5 4GB at the very least with the support of ZRAM.
For this how to you will need
1.Open a terminal and clone the git repository.
Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox.
2.Run BVM for the first time.This will install all of the dependencies necessary to run the virtual machine.
4.Download Windows 11 and all of the necessary drivers.
5.Prepare the Windows 11 downloads for the first boot.
6.Run Windows 11 in the VM for the first time.This will take some time, so grab a drink and wait it out. The VM window will open and perform an automated install. The windows will close automatically when done. Once complete, you can optionally delete all of the ISO files from /home/pi/win11/unattended.
7.Boot Windows 11 in headless mode.This will give us better performance than just running the VM directly.
8.Open another terminal and connect to the headless Windows 11 session using a remote desktop. The Windows 11 desktop will appear and you’re able to now run Windows 11 in a VM on your Raspberry Pi 5.
9.When you are done, shutdown Windows 11 just like a “normal” OS install.
If you’re not a fan of the terminal, then bvm has a GUI frontend which follows a simple numbered process.
To use the GUI, open a terminal and run the following command.
It uses the same commands behind the scenes, the GUI just makes it a little friendlier to use.
Enable USB device passthrough via bvm-config
This is a relatively new feature, so your mileage may vary. Not all devices will work as expected. But, this is a really cool feature
1.Ensure that BVM and the Windows 11 VM is shutdown.
2. Connect the USB device that you wish to use.
3.Open a terminal and list the attached USB devices.
4.Find your device ID and copy the ID. I’m using a USB DVD writer as my test device.
5.Open the config file for editing.
6.Look for the usb_passthrough entry and replace the ID with the ID of your device.
7.Save and close the editor by pressing CTRL+X, then Y and Enter.
8.Repeat Steps 8 and 9 in the previous section to start Windows 11 in headless mode, and then connect using RDP.
9.Your USB device is now accessible to Windows 11. In my case, the USB DVD writer was accessible as a drive.
We can also make the following changes via thebvm-config file.
Just look for the relevant line in bvm-config and read the comments that explain how the configuration can be changed.
Mount Windows 11 as a drive on the host OS
We can mount the Windows 11 VM as a drive on the host OS, making it easier to bulk transfer files between the two operating systems. Note that we can only mount the Windows 11 VM while the VM is not running.
1.Open a terminal and run this command to mount the Windows 11 VM.
- Open the Raspberry Pi OS file manager and navigate to /media/pi/bvmmount. Here you have full access to the Windows 11 drive and can read and write files across.
3.Unmount the drive in the file manager using the “eject” button next to its entry. You can now repeat steps 8 and 9 in the first section to start the Windows 11 VM.
4.In Windows 11, navigate to where you copied the files, they will be available for use.Obviously this doesn’t apply if you bulk copied files from Windows 11 to the host OS.
Les Pounder is an associate editor at Tom’s Hardware. He is a creative technologist and for seven years has created projects to educate and inspire minds both young and old. He has worked with the Raspberry Pi Foundation to write and deliver their teacher training program “Picademy”.