The New Way to Run Windows on Raspberry Pi (Botspot VM)

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

Running Windows on a Raspberry Pi has been a topic of debate for years. Sometimes it’s for a specific Windows app, sometimes for testing, and sometimes to see if it’s possible. I’ve tried the most common approaches, and they usually run into two issues: slow emulation or driver compatibility. However, there’s a new method that completely sidesteps these obstacles.

The Windows operating system can be run on a Raspberry Pi using a Botspot VM. It virtualizes a Windows ARM instance within Linux, offering a more flexible and safer approach than a native installation.

In this guide, I’ll explain why you might want to run Windows on Raspberry Pi in the first place, what you need to get started, and how to install Windows step by step using the Botspot VM. I’ll also share with you my thoughts on what works, what doesn’t, and who this setup actually makes sense for.

If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!

Windows on a Raspberry Pi: But… Why?

The latest Raspberry Pi models have significantly improved processing performance, making them suitable replacements for a daily driver PC for lightweight tasks such as web browsing.

It’s generally recommended to use an operating system optimized for Raspberry Pi hardware, such as Raspberry Pi OS. However, since Raspberry Pi OS is based on Linux, it does not provide a straightforward way to install native Windows applications, except via Wine.

For most people, I recommend finding Linux alternatives to Windows applications for the Raspberry Pi. Many alternative apps on Raspberry Pi can meet your needs.

However, if there is a specific application you must run on a Raspberry Pi, you can run Windows on Raspberry Pi by following this guide.

Traditional Methods

The biggest hurdle in running Windows on Raspberry Pi has always been that the Raspberry Pi is based on the ARM architecture, while Windows is primarily geared toward x86.

Microsoft began focusing on Windows for ARM with Windows 10 ARM, which included a full-fledged desktop environment. Since then, Microsoft has been actively maintaining and updating its ARM versions, and now the Windows 11 ARM version is also available.

Prefer reading without ads and popups?
Members get an ad-free version of every guide, plus exclusive project support.
Join the Community | Sign In

However, these ARM versions of Microsoft Windows are still not directly supported on Raspberry Pi. To install Windows on Raspberry Pi, the Windows on Raspberry (WoR) project is commonly used.

The WoR simplifies Windows installation on Raspberry Pi by addressing all driver and compatibility requirements. While it might sound simple, installing Windows on a Raspberry Pi, even when using WoR, can be a bit daunting.

You can check out this guide on installing Windows 11 on Raspberry Pi using the WoR method. Using the Windows ARM version and WoR enables you to run Windows natively on your Raspberry Pi hardware. However, it comes with many caveats.

Firstly, the WoR project is no longer being actively maintained. The Windows version of WoR Flasher does not support Raspberry Pi 5 and does not list it as an option.

While the Linux version can be used to install Windows 11 ARM on a Raspberry Pi 5, the installation is somewhat finicky and prone to driver issues. And most variants of the Raspberry Pi 5 family are outright not supported here either. Although you can ignore the warning and continue with the installation, the overall experience on Raspberry Pi 5 is not optimal.

Secondly, the installation script no longer works and requires manual edits. Even when it does, the installed media is not plug-and-play, and you must manually add EFI files for Windows to boot.

Lastly, many driver-related issues need to be resolved. For example, native Wi-Fi or Ethernet does not work, and you need to install a USB dongle to access Wi-Fi.

You can use a Raspberry Pi 4 instead, but you miss out on the significant performance boost the Raspberry Pi 5 offers, which is especially useful when running a non-conventional, resource-intensive OS such as Windows 11.

Enter Botspot VM

However, I recently came across a new method for running Windows on a Raspberry Pi that can overcome these issues.

Botspot VM is software developed by Botspot (the developer of WoR Flasher and Pi-Apps) that enables installing Windows on a Raspberry Pi within a Virtual Machine (VM).

What is a Virtual Machine?

A virtual machine is, like the name suggests, a machine that is not real. A VM runs on a host OS (e.g., Raspberry Pi OS) and uses variables and software commands to simulate the workings of an actual device.

A VM runs like an application in its own window and consumes resources on the host OS. The concept is similar to how Docker runs containerized applications: VMs run a containerized version of the full OS.

VMs are traditionally used for educational purposes. They are also a great tool for trying different OSes without wiping your main machine and installing a new OS each time.

Advantages of Botspot VM

Running Windows as a VM instead of natively installing it on your Raspberry Pi has the following advantages:

  • No Driver Issues: Since the Windows OS is not exposed to the Raspberry Pi’s unique hardware and chipset, there are no driver-related issues. Everything is virtualized to match conventional hardware, and features such as Wi-Fi and audio work out of the box.
  • Can use both Linux and Windows: The Windows OS runs in a VM only, and therefore, your Raspberry Pi is still running a Linux-based OS. You can use the VM only for the one or two unique applications you need on it and take advantage of better-performing Linux applications for the rest of the tasks.
  • You don’t need to wipe your Raspberry Pi OS: You are basically installing an application on top of your Raspberry Pi OS. If anything goes wrong, you don’t lose your host OS.

The only trade-off is that it is less efficient than running Windows natively: virtualization overhead reduces the performance of your Windows OS.

The GitHub page for the Botspot VM states that near-native performance is expected. However, it is unreasonable to expect identical performance between the two methods.

What You Need to Make This Work

Before we can go ahead with the guide, let’s make sure you have the prerequisites:

  • Powerful Raspberry Pi: Compared with Linux and Raspberry Pi OS, Windows is inherently more resource-hungry. Furthermore, since we will be running Windows in a Virtual Machine, we need a significantly more powerful Raspberry Pi model to achieve a reasonable experience.

    I would recommend getting at least a Raspberry Pi 5 with 8 GB or 16 GB of RAM. You can run this method on a Raspberry Pi 4, albeit less smoothly. More on this later.
  • Raspberry Pi OS 64-bit: According to the Botspot VM GitHub page, the 64-bit Linux variant is a hard requirement. This means this setup does not work with the 32-bit variant. You can read this guide on how to install Raspberry Pi OS on your Raspberry Pi.

    Also, you need a Bookworm or newer release, as Bullseye and older are not supported.
  • KVM enabled: Ensure KVM is enabled. If you are not sure how to do that, don’t worry, we will cover this in our guide.
  • Wayland: To run Botspot VM, it is recommended that you use the Wayland display server instead of X11. The software also runs on X11. However, performance-wise, Wayland provides significant improvement.
  • SD Card > 64 GB: The Botspot VM GitHub page does not list this as a requirement. However, the default size of the virtual disk image is 40 GB. Coupled with the 12-15 GB of image files that need to be downloaded for the installation (can be deleted after Windows has been installed), the 8-10 GB needed for the Raspberry Pi OS, and some headroom, 64 GB starts to look very small.

    I recommend opting for 128GB of storage capacity (ideally on an SSD) for more headroom and better performance.

Note: The Botspot VM GitHub page states that the Raspberry Pi 4 is also supported. I initially tried running Windows 11 on my Raspberry Pi 400 using the Botspot VM. However, the installation took forever (> 24 hrs) and then gave me an error when trying to install Windows 11. I guess it might have worked with a little bit of tinkering and troubleshooting. However, I switched to my Raspberry Pi 5 (8 GB) and the installation went rather smoothly (< 4 hrs).

With these prerequisites out of the way, we can get started with installing Windows on our Raspberry Pi.

Installing Windows with Botspot VM

The main steps for installing Windows 11 on your Raspberry Pi are: installing the Botspot VM software and using it to download and install the Windows 11 ARM image.

However, we need to flip a few switches before proceeding with the installation.

Enable KVM

To run Windows 11 using Botspot VM, KVM is a hard requirement. To enable KVM on a fresh install of Raspberry Pi OS, follow these steps:

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
  • Update your system:
    sudo apt update && sudo apt full-upgrade
  • Install the packages for KVM:
    sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients
  • Add your user to the kvm and libvirt groups:
    sudo usermod -aG kvm,libvirt $USER
  • Restart your Raspberry Pi:
    sudo reboot now
  • Verify that KVM acceleration is enabled:
    qemu-system-aarch64 -accel help

That’s it—KVM has been enabled on your Raspberry Pi and can now be used with QEMU.

Quick note: If you find it hard to remember all these commands, I’ve put them all on a one-page cheat sheet. You can download it for free here so you have it handy whenever you're working on a project.

Enable ZRAM (Optional)

If you’re using a Raspberry Pi with 4GB or less of RAM—which I don’t recommend—you should also enable ZRAM. ZRAM is a kernel module that compresses data on-the-fly and stores it in RAM. This can be used to extend the amount of available RAM to your system.

Traditionally, swap partitions are used in Linux for similar functionality. By default, Raspberry Pi allocates 100 MB of swap, which is insufficient for running Windows 11 in a VM when your system has limited RAM.

You can enable ZRAM on your Raspberry Pi and apply other RAM optimizations by simply installing the “More RAM” application using Pi-Apps.

For more performance optimization tips, check out this article on 7 easy steps to speed up your Raspberry Pi.

Install BotspotVM

Now that the requirements are out of the way, we’re ready to install the Botspot VM.
Botspot VM is also available through Pi-Apps, so let’s install it this way.

To install Pi-Apps on your Raspberry Pi, run this command in a terminal:
wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash

Now you can launch Pi-Apps by navigating to the Raspberry Pi Menu -> Accessories -> Pi-Apps.

In Pi-Apps, you’ll find Botspot VM in the Tools -> Emulation section.
Alternatively, you can search for it instead.

Now, click Install, and it will automatically set up Botspot VM on your Raspberry Pi.

Once Botspot VM is installed, you can run it by navigating to the Pi menu -> Office -> Botspot Virtual Machine.

Install Windows 11

Now that we have successfully installed Botspot VM, we are ready to begin installing Windows 11. There are two ways to use the Botspot VM application: via the command line or the GUI. For this tutorial, we will use the GUI method.

The GUI of Botspot VM is very straightforward. It has buttons for each step that you need to perform. Whenever you click that button, the respective step is executed in a terminal.

If the step executes successfully (without errors), the next step in the sequence will be automatically enabled.

Starting a New Project

To start the installation, first click on the first button: New Virtual Machine.

This will automatically install all required programs and dependencies and create a folder at ~/win11 to store all files.

Move the Project Folder (Optional)

If you are using an SD Card with a capacity of less than 64 GB as your boot media, you will need to move the project folder to another storage medium. If you are using an NVME SSD or an SD card larger than 64 GB, you can skip this step.

To move the project folder to another drive, mount an external storage device (e.g., a USB drive) and move the ~/win11 folder to the mounted volume. Then create a symlink at ~/win11 that points towards your moved folder.

Edit Configuration

Once you have decided where your project folder will be located, you can close the terminal window (opened by Botspot VM) and click on the second button: Edit configuration file.

This will open the configuration file (~/win11/bvm-config) in your default text editor.

You can review the configuration settings and, if needed, update or note the vm_username and vm_password. The rest of the configuration can be left as it is, and you can close the text editor to complete this step.

Download Image Files

Next, we need to download the Windows 11 ARM image and the driver image for this setup. Luckily, Botspot VM automatically handles this part.

Click the next button: Download components.
This will automatically download all required files.

This download can take significant time; approximately 12 GB of data must be downloaded. On my computer, with an average download speed of 2 MB/s, it took about 1-1.5 hrs.

However, if you get stuck with this error:

Then you need to download the Windows 11 ARM ISO file manually. To do so, click this link and make the appropriate selections (Windows 11 multiedition ISO and the language of your choice) to download the ISO file.

Once downloaded, rename it and move it to ~/win11/installer.iso.

After copying the ISO, you can re-run the third step; this time, it will automatically detect that the ISO file is already downloaded. You can press n and Enter to skip the download of the ISO file and proceed with downloading the rest of the requisite files.

The script will then download the virtio drivers and the debloating script required for the installation.

Prepare for Installation

Once all required files have been downloaded, the Botspot VM must be prepared for installation. To do this, you can close the terminal window and click on the next enabled button, i.e., Prepare for installation.

This will make required modifications to the ~/installer.iso file and prepare the virtual disk image on which Windows 11 ARM will be installed.

Install Windows 11

The final step is to install Windows 11 itself. Botspot VM automates this step and requires no intervention. The complete installation is done in unattended mode.

To start installation, simply click on the Install Windows 11 button. This will start a QEMU session in which the familiar Windows installation will begin.

The QEMU session will undergo multiple reboots, and you need to wait until it has fully completed and displays the familiar “Operation succeeded” message in the terminal.

This step can take significant time, depending on your Raspberry Pi version. On Raspberry Pi 400, it took more than 24 hrs (still ended up showing an error at the end). In contrast, on a Raspberry Pi 5 (8 GB), it took around 4-5 hrs to complete.

First Boot

Once you have finished the installation, click on the last button, Run Windows 11, to start the VM.

You can freely move your mouse between the Windows 11 interface and the Raspberry Pi OS desktop.

You can also maximize the QEMU window, and the Windows 11 desktop/ interface will scale accordingly.

That is it, you have successfully installed Windows 11 ARM on your Raspberry Pi using Botspot VM. Read on as we analyze performance and available features of this method.


🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Stuck on this project? Ask me or other Pi users in the RaspberryTips Community. We help each other out and you'll get answers quick. Join and fix it together.

So Does It Actually Work?

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

As you can see, installing Windows 11 on the Botspot VM is a streamlined, automated process. However, the true test of this method is how usable this Windows 11 installation is.

Look & Feel

  • The startup procedure is a bit clunky.
  • Can be configured to give much more native feel.
  • Feels very usable as a your primary desktop.

Overall Rating: ⭐⭐⭐⭐

Compared with a direct install, the startup procedure seems a bit clunky. First, boot your Raspberry Pi, then start the Botspot VM software, and from there start Windows 11.

By default, the VM starts in windowed mode, which also breaks the immersion a bit. However, you can change this from the configuration file (~/win11/bvm-config) to start in full-screen mode.

Furthermore, since the VM can be started from the command line rather than a GUI, you can configure it to autostart on boot.

Once these two tweaks are in place, it starts to feel much more like a native Windows installation on our Raspberry Pi.

Overall, it feels very usable as a desktop; it is a stripped-down version of Windows 11, so many unnecessary tools are missing. But most commonly used applications are available and functioning normally.

Drivers & Connectivity

  • Internet works out of the box.
  • Audio & Display drivers work out of the box.
  • File sharing between Raspberry Pi OS and VM enabled out of the box.
  • USB Passthrough can be enabled via configuration.

Overall Rating: ⭐⭐⭐⭐⭐

Most of the drivers seem to be working out of the box. It automatically connects to the network through the virtualization layer. You cannot configure Wi-Fi from within the VM, but any network connectivity the host Raspberry Pi OS has is automatically forwarded to the VM.

Similarly, the audio appears to be working. Because of the intermediate virtualization layer, the audio device to use for output is configured in the host OS (Raspberry Pi OS), and the VM automatically routes all audio to it.

One neat trick I observed was that the Raspberry Pi OS home folder is automatically shared and accessible in File Explorer. This makes sharing files between the host OS and the VM convenient.

USB passthrough is also available, but first you need to add the hardware ID of the USB device you want to pass through to your configuration file (~/win11/bvm-config).

Once you have it configured, the removable media/ USB will automatically be detected inside the VM.

Performance

  • Usable performance.
  • Slightly lower performance than WoR method.
  • Not recommended as a desktop replacement.

Overall Rating: ⭐⭐⭐

To be honest, I was expecting the performance to be sluggish. After all, we are trying to run a resource-intensive OS on hardware expected to be slightly weaker than a typical desktop PC, and the OS is not optimized for it.

However, I was pleasantly surprised. The experience felt relatively usable. The interface is responsive, and it feels like running Windows 11 natively on a slightly outdated desktop PC.

However, I still do not see myself using this as my everyday desktop replacement. Even small tasks, such as opening Explorer and browsing the internet, sometimes felt slightly delayed.

Compared with a native Windows 11 ARM installation (WoR flasher) on a Raspberry Pi, the Botspot VM approach performs slightly worse, as expected.

Performance-wise, the recommended use case for this method is to use it for one or two must-have Windows-only applications.

Things That Need Improvement

Overall, I think installing Windows 11 on Raspberry Pi using Botspot VM is a relatively smooth experience. Given the Raspberry Pi 5’s significantly improved capabilities, the final result is relatively usable.

All drivers and hardware integrations work out of the box, requiring no tinkering or manual installation.

However, there are a few things that can still be improved:

Performance

The performance, while usable, is not good enough to recommend this as a desktop replacement. However, the performance is nearly as good as a native Windows 11 ARM installation on a Raspberry Pi.

I guess the bottleneck here is the Raspberry Pi’s hardware capabilities and the resource-intensive nature of Windows 11.

Raspberry Pi 4 Support

The GitHub page says that the Raspberry Pi 4 variants are supported for installation. However, I found the experience rather exhausting.

But even if it were possible, given the Raspberry Pi 4’s weaker specs, I doubt the result would be very usable.

Remote App Mode

One key improvement that can enhance the overall experience is the ability to run individual applications in their own windows on the Raspberry Pi OS desktop (similar to how Wine works).

This modification is already on the developer’s radar, and I expect we’ll see it in a future update to the program.

Running Windows 11 on a Raspberry Pi with Botspot VM is no longer just a fun experiment. It’s actually usable, especially on a Raspberry Pi 5 with enough RAM and fast storage. The setup is much cleaner than older methods, and you don’t have to fight with drivers or risk breaking your main system.

That said, this isn’t a full desktop replacement. Performance is good enough for specific Windows-only applications, testing, or learning, but Linux will still give you a smoother experience for everyday tasks.

If you really need one or two Windows apps on your Raspberry Pi, Botspot VM is currently the most practical way to do it. Otherwise, you’re still better off sticking with Raspberry Pi OS and using native Linux alternatives whenever possible.

Whenever you’re ready, here are other ways I can help you:

Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.

The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts