Installing Windows on a USB connected SSD

Installing Windows on a USB connected SSD

A few days ago, I wanted to install Windows on an external SSD, connected via USB. The goal was having a dual boot without taking up space from the internal SSD of my laptop. I found no good solution but thought I’d write down what I tried regardless.

Creating Windows boot media from Linux

Installing a new Windows machine when all you have available is Linux is a bit involved. There is no Windows installation utility for Linux. You needed Windows to install Windows. Cat and mouse.

There are some programs such as WoeUSB and Ventoy which are meant to make this a non-problem. But I wanted to try with only VirtualBox, which was already installed on my laptop. Hopefully, mounting an external hard drive as a USB inside a Windows virtual machine would do the trick. And it did.

First, I created a virtual machine with a Windows 11 Disk Image (ISO) as a bootable CD.

Booting Windows 11 inside VirtualBox with ISO

Second, I made the USB device available to the virtual machine.

Making external USB device available to Windows in VirtualBox

Third, I started the virtual machine and connected the USB device.

Connect external USB device to Windows in VirtualBox

Finally, I ran the “Create Windows 11 Installation Media” utility provided my Microsoft inside the virtual machine and told it to use the external USB device. After a few minutes, the boot media was ready to go.

Install Windows boot media onto USB device in VirtualBox

Installing Windows to an external SSD

I was now ready to boot from the USB boot media. I did, and as I was asking Windows to install to my external SSD connected via USB, I got this message.

Windows cannot be installed to this disk. Setup does not support configuration of or installation to disks connected through a USB or IEEE 1394 port.

Why, Microsoft? Why?

I had one last trick up my sleeve. Copying the raw disk image from Windows 11 installed inside VirtualBox to my external SSD. That worked… kind of.

First, I exported the virtual machine’s disk as an .img file:

VBoxManage clonehd VirtualBox\ VMs/Windows11/Windows11_1.vdi disk.img --format RAW

Then I copied that file to my external SSD (replacing /dev/sdX with the actual drive):

sudo dd if=disk.img of/dev/sdX status=progress

To my surprise, booting the external SSD now worked. I had Windows booting from my USB SSD. Unfortunately, every time I shut down Windows, the system hangs on a black screen and I had to hold the “Power” button of the laptop until it stopped. If you happen to have a workaround for that, please let me know.