How to create a windows 10 bootable usb flash drive in Linux PC

You will need to borrow a W10 or W11 PC to download the ISO, downloading with Linux does not work. Drop the ISO on a Ventoy USB, at least 16GB, and boot from the Ventoy drive.

W11 can be hacked onto a W10 ISO and install W11 but if the machine is not supported, all you
will get are important updates, no featurw updates. The word I get is MS is fixing to crak down
on PC’s running W11 on unsupported hardware.

1 Like

How do you get the response number when viewing a topic? Don’t tell me you actually count them?

I think I’m going to have to nut this out - I like the idea of getting another Linux Desktop user out there - but - my bruv-in-law lives about 350 km south of Perth - so if things go wrong with Linux - it’s a bit of a stretch for either of us to sort out…

So I reckon it’s probably going to have to be Windows 10.

I’m going to try this Youtube tutorial from @abhishek :

Thanks Abishek!

I didn’t realise you could use NTFS - that will solve the problem of install.wim being too big for a FAT32 filesystem…

A shame - because Zorin looks really user friendly, and somone who’s not that computer literate and didn’t have lots of Windows computer use, might be able to work their way around it…

Its on the right hand side beside the text.
You might have to suppress the side menu to see it.
I would not enjoy counting down to 58/64 in that topic.

Dont forget you also need to put a bootloader on the usb drive.

Not a single mention of that on Abishek’s youtube tutorial… I can’t figure out what’s going wrong for me…

Abishek’s method (in the youtube video)

Download Windows 10 ISO (I’d alread done this - but - I’m doing it again - to be sure, to be sure)
Format a USB drive as Fat32
Mount the ISO (disk image mount - i.e. a loop)
Copy and paste the ISO contents to the Fat32 formatted USB drive, boot of it into the Windows 10 installer.

I’m now getting :

mount: /mnt/ISO: unknown filesystem type 'udf'

and same thing (not that exact error) - a nonspecific error when using disk image mounter…

I’ve since tried install udftools - made buggerall difference… Just read some posts, REL8 users getting issues like this - there’s kernels where UDF was removed! Kinda like on some Android Linux 3.x and 4.x kernels, NFS was removed (WHY???).

I can’t figure it out - I remember doing this yesterday (mount -o loop ISO.iso /mnt/ISO) and it didn’t complain!

I suspect there’s something dodgy going on with Pop!_OS on my desktop (I think I did that mount -o loop on my Pop!_OS thinkpad)

Got a tad further on the Pop!_OS Thinkpad (no udf issues) - using Abishek’s youtube video method (format [I did NTFS], copy contents of ISO). It boots - but :
“A media driver your computer needs is missing”
WTF is this?
This is a VERY VERY recent version of Windows 10 - you’d a thunk it would support this laptop - it’s a Windows 7 or 8 era device… It had Win10 on it when I got it (which I wiped and install Ubuntu)… No Windows 7 is not an option… IT’s long EOL and probably doesn’t support any modern secure browsers…

Looks like it’s true! I need a driver that Microsoft don’t include on 2022 Windows 10!!! WTF???

I told you, you have to put a bootloader on the usb drive.
You need to read my reply 58/64 in

It is all there

IT’s not there in Abishek’s youtube video - and - it boots anyway - without this “boot loader”…

It boots! It booted before, yesterday, but complained there was no install.wim file…

I followed Abishek’s tutorial (youtube) and used NTFS instead - and got further until the Windows 10 installer asks for some drivers that aren’t on the Windows 10 install media…

If there was a problem of not having a boot loader - then SURELY IT WOULDN’T BOOT AT ALL RIGHT?

I will take a look at your reply in that other thread - but that’s a lot of unformatted text to digest… This is the last time I’ll try this - will throw in the towel if I can’t get this to work I reckon :

Here Bruv-in-Law - here’s your new 'poota - it runs a HIGHLY secure version of Windows…

I used this win10 version
maybe there is a difference
perhaps the procedure I used to put in a bootloader actually did more than put in a bootloader.? I did it for legacy boot. by the way.

The bottom line is… Microsoft dont know how to make an iso file.
“Choose an OS-Maker with brains, they all have content”

1 Like


Step 1: Take a flash drive >8Gb, use gparted, delete all filesystems that are on it,
 make one new filesystem using the whole drive, and put a NTFS filesystem on it.
 Use an msdos partiton table ( the default in gparted). 
Give the NTFS partition a boot flag. (not sure this is necessary)

Step 2: You will need loop devices. To check if they are present do
ls /dev/l*
you should see

/dev/log    /dev/loop1	/dev/loop3  /dev/loop5	/dev/loop7
/dev/loop0  /dev/loop2	/dev/loop4  /dev/loop6	/dev/loop-control

If they are not there you need to add the loop.ko module to the kernel. To do that do
modprobe -a loop

Step 3: Now you need to make what is called a loop mount of your Win10_21H2_English_x64.iso file.
First find an available loop device
losetup -f
it should reply loop0 if you are not using any loop devices
Second link that loop device to yourWin10_21H2_English_x64.iso file
losetup /dev/loop0 Win10_21H2_English_x64.iso
Third make a mount point to mount it to
mkdir /mnt/win
Fourth mount the loop device to the mount point
mount -o loop /dev/loop0 /mnt/win
It will give a message
WARNING: source write-protected, mounted read-only.
That is OK.
The purpose of the loop mount is to make available the “content” of the .iso file, so you can copy just the content.

Step 4: Mount the flash drive.
You have to find its device name
Take the flash drive out
Put the flash drive back in
In the output of the second lsblk there should be one extra device. That is the device name of the flash drive. Lets call it /dev/sdX.
Then make another mount point
mkdir /media/flash
and mount to it
mount -t auto /dev/sdX1 /media/flash
It is sdX1 becauase you want the partition on the flash drive, not the device.

Step 5: Copy all files from from the loop mount to the flash drive
cd /mnt/win
cp -avr * /media/flash
The copy will take a while.

Step6: Download and install `ms-sys`. Download and instructions available at

Here are the instructions to make and install it
 1:  unpack the archive:
tar -xzvf ms-sys*.tgz

 2:  compile:
cd ms-sys

3:  become root and install
su (and give password)
make install

Step 7:  Use ms-sys to write ther Win7 bootloader to the flash drive... The Win7 bootloader will work with Win10

ms-sys -n /dev/sdX1
this writes the win7 boot record to the ntfs device

ms-sys -7 /dev/sdX
this write the Win7 MBR to the raw device

Step 8: Reboot and see if it boots.
Mine worked.
It will only work with Legacy boot, because only legacy boot will work with NTFS filesystems. 
Note the boot is slow from a flash drive.

Step 9: The easy part. Boot the flash drive and use it to install Windows to your external HDD. 
Be careful that you get the device name of the external HDD correct.

Take a look at step 7.
It does 2 things, it writes to the device, and to the ntfs filesystem

Useful link

But it’s booting all the way into the installer - asks a bunch of questions about language and keyboard, then it barfs on storage driver… and prompts for a driver disk…

If it was a question of no bootloader - it WOULD NOT GET THAT FAR!

I kinda hate it when people post “screen shots” taken from their mobile phone - but here goes :


I’m going to try another USB device… if that fails - bruv-in-law’s getting ZorinOS :smiley:

I’m also trying a MUCH older version / ISO of Windows 10 (circa 2016)…

Note - the installer is plowing through now - no questions about drivers - found the storage and it’s now copying files…

So - @abhishek 's youtube tutorial worked 100% for an older build of Windows 10 on this hardware (my previous attempt were all with the 22H2 ISO…

This works :

  1. format the drive with ntfs
  2. mount (e.g. loop -o etc) the ISO image
  3. either with CLI, or your file manager (e.g. Files / Nautilus) copy ALL the files on the ISO image to the NTFS formatted thumb drive.
  4. wait for that to finish - safely eject the thumb drive
  5. Whack that thumb drive into the device of choice (in my case Dell Latitude E7440) and install away.

Booted up into newly installed Windows 10 and probably spending the next 12 HOURS getting ALL the updates since 2016!

Shame - would have preferred a new Linux on the Desktop user! It’s like Mephistopheles buying souls - the more we can recruit to the “Dark Side” (Linux) the better :smiley:

Me too.
It would seem every time M/soft make an iso it is “isos aint isos”
They need to learn the benefits of consistency

Piece of crap!

I let it go from 2016 to 2018 updates… and watching Prime Video (Carnival Row Season 2) but it kept stopping and buffering not keeping up!

Didn’t put 2 + 2 together - then booted up after 2018 updates and let the 2020 updates come down - and Prime was UNWATCHABLE!

I finally had enough hit the power button and shut the lid on the piece of crap!

I’ve NEVER seen any other O/S eat up so much bandwidth to update! And I’m comparing things like 12 GB to update MacOS 11 to 12!!! Dunno how many GB - but also ubuntu 18 to 20, and 20 to 22… Most other os’s show much better bandwidth ettiquette - but not Microsoft!

Because M/soft go serially thru every patch.
Linux package systems have enough brains to skip a package if there is a later one.
Even portage in Gentoo will always grab the latest version, unless you specify a version.

So what now, are we back to Zorin? I hope so.

Oh, and on booting, … is it possible to boot but not run? I think so.
I think when you give Win a bootloader, there have to be some config changes in the Win files to match it up with the boot loader. I dont know… I am guessing. My Win10 had 2 partitions… a system partition and a partition with the ntfs filesystem. I suspect some stuff in the system partition needs to be set up for it to run properly.
It would seem it has a loader (bit like initramfs) that runs before it boots the kernel
So the bootloader starts the loader, and the loader starts the kernel.
So did your boot get all the way to the kernel?

If doing a legacy boot on MBR, W10 can be set on a one partition install, the trick is to boot
PC with gparted and make the ntfs partition, then boot the W10 install source. W10 Home, last
time I used it could still be burned to a DVD.

And to prove my point!!!

1 Like

My W10 had legacy boot and 2 partitions… but I did not install it, so I bet they did not use gparted.
I suppose the Win system partition acts a bit like an efi system partition?..

Do you know anything about how Win10 configures its bootloader?

What do you mean? Windows uses the boot-manager to boot OS.

Unless you mean this?

1 Like

I wish - but I can’t imagine how I’m going to have to support a Linux Desktop solution 350 km away in what we less than politely call “bumf–k”…

My bruv-in-law will be 65 next year and has barely used a computer, ever… I expect his missus, and a couple of his kids who aren’t that far away (I think his son lives / works nearby during the week - but comes back to Perth on weekends) would know how to support Windows - but - NOT Linux…

Shame… but that’s probably how it’s gonna have to be…

I’m just grumbling about how HOGGISH windows can be when it chews up your bandwidth to install some updates, that other operating systems are much more polite about… I’ve NEVER seen O/S updates affect my download speed until this evening…

Not going to try and justify it - but - I guess its like trying to update Ubuntu 14.04 to 22.04 in one even (even so - I VERY much doubt even the Microsoft of Linux “Ubuntu” would be so rude and obnoxious)…

Linux has config files that tell the boot manager what to do.
I suspect Win has something like that too?
Is that what you are showing me.? Are they stored inside Win, like in Linux?

Well you are not having much luck at supporting a Win desktop solution zero miles distant.

There is one way. Freeze it. It will probably be fine for about 5 years. Then you can go for a drive and setup a new freeze.
Setup a way to “recover original install” so he can just go back to “factory settings” if he messes it up.
There may be a way to run it like a live dvd, so he cant write on anything cristical. I think Porteus does something like that.

Their are certain bcdedit commands that can be used, but nothing like on how you
can edit Grub.