A few days ago, I had to take a bunch of online courses for SAT and AP preparations. The problem? The website used something called “Kollus Player,” which only worked on Windows.

Sigh.

Even though I didn’t like it, the only solution was going back to Windows.

(and yes, before you ask, I did try it out in VirtualBox. The player refused to work, maybe as a countermeasure to recording VirtualBox windows using OBS. Double sigh. Like I don’t have things to do besides recording screens all day long.)

Except, one small problem. When I flashed the .iso to a USB, my computer failed to recognize the drive as bootable and kicked me back to the BIOS.

Thankfully, there are a couple of options for creating a bootable Windows installer USB on Linux.

Option 1: Steal a Windows computer…

…and make a Windows recovery USB using the Media Creation Tool. But this felt like cheating. And I wanted to show that Linux could handle this problem, too! So even though I used this method in the past, I decided to skip it for now.

Option 2: Use Unetbootin

Some people have reported success using Unetbootin to create a bootable Windows installer drive. However, I don’t like the program for a couple of reasons:

  • It fails to create bootable USBs sometimes. This was a major pain for me back when I was burning Ubuntu CDs. I would burn a CD disc only to discover it not booting, making me throw away that disc and start anew.
  • This method requires you to install Unetbootin. On major distributions, Unetbootin is stuck at some awfully old version, and therefore is full of bugs.

I decided to skip this method as well, I wanted something that could be done entirely inside a terminal.

Option 3: MBR removal

Finally! A terminal only solution!

First of all. Huge shout out to the original poster on the Manjaro forums, @fhdk.

Basically, the solution wipes the MBR bit of the USB to clear out any old partition tables that may reside, then formats the USB as vfat (FAT32), sets the bootable flag and then allows you to extract the .iso on top.

sudo umount /dev/sdb*                           # Unmounts drive, replace /dev/sdb with your drive path
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=10 # Wipes the first 1MB of the drive which houses MBR information
sync                                            # Instructs kernel to flush changes
sudo fdisk /dev/sdb
o                                               # New msdos partition table
n                                               # New partition, go through the steps and keep pressing enter for defaults
t                                               # Select partition type
c                                               # FAT32 type
a                                               # Bootable flag
w                                               # Write changes to disks
sudo mkfs.vfat /dev/sdb1                        # Format drive as FAT32

Once you’re done, DO NOT dd the .iso over the USB drive. Instead, mount the .iso, and copy the contents over to the drive. Then the drive should work!