Creating a Windows 10 USB boot medium on Fedora / Linux

I recently refurbished a used and old Acer Aspire E774 laptop as a donation for the Computertruhe e.V.. Of course, this also involves overwriting the hard disk with random data so that old data can no longer be reconstructed. Because “deleted” is not the same as “securely deleted”. I used the shred tool in a Fedora Live environment for secure deletion. However, it works just as well with any other Linux distribution.

Since an Ubuntu on the laptop was not immediately executable or reasonable, because the touchpad did not work and there were always strange problems during boot, I decided to simply reinstall Windows 10 after my deletion. Just as it was running perfectly on the laptop before.

Without further ado, I downloaded a WIndows 10 64-bit image from Microsoft and wanted to copy it to my USB stick:

sudo dd if=~/Downloads/Win10.img of=/dev/sdc bs=8M

After the image was burned, I plugged the stick into the laptop and called up the boot manager via one of the F keys at startup. Normally, the boot medium can be adjusted here before the OS starts if the UEFI setting is not already correct. After all, I wanted to boot from the USB stick and not from one of the two built-in hard disks.

But: Nothing! There was no entry for the USB stick. A look into the BIOS revealed that booting from a USB medium did not have the highest priority, but even after I had changed this, the BIOS or UEFI only showed me “No boot medium found”.

Oh well. Maybe my boot medium was defective. I tried the Fedora Media Writer - a graphical tool that is included by default in every Fedora installation. The Media Writer can be used to copy Fedora images to USB sticks, as well as any other operating system images. But even with the Fedora Media Writer I was unable to get a bootable USB stick: same mistake. Plugging it into other USB slots was also unsuccessful. Finally, I even tried formatting the USB stick manually and then copying the files manually. I followed these instructions: “Create Windows 10 boot stick”. But again no success.

Finally, I came across the tool woeusb. I liked the fact that it could be installed from the Fedora package sources and - unlike Unetbootin and other alternatives - ran from the command line. So it also worked in my Wayland environment (unlike Unetbootin!).

I copied my Windows 10 image to my USB stick as follows:

sudo woeusb --device ~/Downloads/Win10_22H2_German_x64v1.iso /dev/sda

… and was successful!

Now - why did this work and my previous attempts did not? The log from woeusb provides an explanation:

WoeUSB v5.2.4
==============================
Info: Mounting source filesystem...
Info: Wiping all existing partition table and filesystem signatures in /dev/sda...
/dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 8 bytes were erased at offset 0x734ffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sda: calling ioctl to re-read partition table: Erfolg
Info: Ensure that /dev/sda is really wiped...
Info: Creating new partition table on /dev/sda...
Info: Creating target partition...
Info: Making system realize that partition table has changed...
Info: Wait 3 seconds for block device nodes to populate...
mkfs.fat 4.2 (2021-01-31)
mkfs.fat: Warning: lowercase labels might not work properly on some systems
Info: Mounting target filesystem...
Info: Copying files from source media...
Splitting WIM: 4900 MiB of 4900 MiB (100%) written, part 2 of 26%
Finished splitting "./sources/install.wim"
Info: Installing GRUB bootloader for legacy PC booting support...
i386-pc wird für Ihre Plattform installiert.
installation beendet. Keine Fehler aufgetreten.
Info: Installing custom GRUB config for legacy PC booting...
Info: Done :)
Info: The target device should be bootable now
Info: Unmounting and removing "/tmp/woeusb-source-20240930-085645-Sunday.0twgOL"...
Info: Unmounting and removing "/tmp/woeusb-target-20240930-085645-Sunday.2DBYAG"...
Info: You may now safely detach the target device

There are two interesting points here:

  • Firstly, the USB stick is apparently formatted with FAT (mkfs.fat) and not - as can be read in other instructions - with NTFS
  • And: install.wim is “split”?!

The split of the install.wim file explains why it did not work for me with the other methods: This step splits the large image file (> 4 GB) into smaller files. This is necessary because the FAT file system can only handle files up to a size of 4 GB.

And why does Microsoft deliver such a large file in its image, which I tried to copy via dd? Because the Microsoft Windows 10 ISO is NTFS formatted. And not FAT formatted. NTFS can handle such large files without any problems - which is why I was advised in various instructions to format the USB stick with NTFS rather than FAT.

However, another peculiarity comes into play here: The Acer laptop apparently does not support NTFS boot media. … How can that be?

The laptop originally came onto the market with Windows 8. At that time, the Windows boot medium did not contain any files larger than 4 GB. Accordingly, the FAT file system was sufficient. Consequently, the Acer E774 laptop only supports FAT in the UEFI and not NTFS. This also explains why it booted without any problems from all the live Linux USB sticks I gave it. FAT is still used here.

To summarize: with the woeusb tool I finally had success because:

  • The Dell laptop only supports FAT media
  • The woeusb tool uses FAT
  • And makes sure that none of the files is larger than 4 GB!

So the key is woeusb’s “split” function.

On newer laptops, copying the Win10 image should also work simply via dd. But for my older laptop I found a great solution with woeusb.