How to Easily Create Windows 10 Bootable USB on Ubuntu or Any Linux Distro
This tutorial is going to show you an easy way to create a Windows 10 bootable USB on Linux. I use Ubuntu 20.04 as an example. The method applies to any Linux distribution. I use Windows to do online banking because my bank doesn’t support Linux and sometimes play games that can’t run on Linux.
What you need
- A computer running Linux
- A USB flash drive at least 8GB
- Windows 10 ISO
Download Windows 10 ISO
First, you should download Windows 10 ISO from Microsoft official download link. Note that you might not be able to download the ISO from this link on a Windows computer. This download link is visible to users on Linux computer. Once downloaded, follow the instructions below.
Note: It’s recommended to download the Windows 10 April 2018 update ISO, because the October Update ISO contains a file that is larger than 4GB, which can not be copied to a FAT32 partition.
Update: Microsoft doesn’t allow you to download the Windows 10 April 2018 Update ISO from their website anymore. You can download the ISO via this link: Win10 1803 English x64 ISO
Creating a Windows 10 Bootable USB for UEFI Firmware
This method works for UEFI firmware and is very simple. You create a GUID partition table on your USB stick, create a FAT32 file system on it, and then mount Windows 10 ISO image and copy those Windows 10 files to your USB stick and you are done. The following is a step-by-step guide.
First, install GParted partition editor on your Linux distribution. Ubuntu users run the following command.
sudo apt install gparted
Then insert your USB stick to your computer. Make sure you back up important files in your USB stick if there’s any. Next, launch Gparted. You will need to enter your password in order to use GParted.
Select your USB stick from the drop-down menu on the upper-right corner. My USB stick is /dev/sdb
. Yours may be different.
If there’s a key icon after the partition name, that means the partition is mounted. Make sure all partitions on your USB stick are unmounted. To unmount a partition, simply right-click on it and select unmount.
Next, on the menu bar, select Device > Create partition table.
Choose GPT as the partition table type and click Apply.
Then right-click on the unallocated space and select New to create a new partition.
Change file system type from ext4 to fat32 and click Add.
Note: The install.wim
file in Windows 10 October 2018 update ISO is 4.1G, so if you downloaded this ISO image, you need to change ext4
to ntfs
. If you downloaded Windows 10 April 2018 Update ISO, which contains a 3.9G size install.wim
file, you can change ext4
to fat32
Update: It is my observation that my NTFS formatted USB stick isn’t bootable on my old laptop, which was bought in 2012. However, it is bootable on my desktop computer, which was bought in 2017. It has a graphical UEFI firware (I can use my mouse to configure firmware settings).
Next, click the green check button on the toolbar to apply this operation. Once that’s done, close GParted (This is important), then find your Windows 10 ISO in file manager. Open it with disk image mounter.
Open the mounted file system. Select all files and folders and copy them to your USB stick.
Sometimes the file manager on Ubuntu hangs and it seems that the copy operation has stopped. Actually it’s working, just be patient. When you see a check mark, it means the copy operation has finished.
If your file manager doesn’t have the Disk image mounter
in the context menu, then you can use the following commands to mount. The first command will create a mount point for Windows 10 ISO and the second command will mount Windows 10 ISO under that mount point.
sudo mkdir /mnt/windows10/
sudo mount -t auto -o loop /path/to/window-10-iso /mnt/windows10/
Now in your file manager, go to /mnt/windows10/
and copy all files and folders to your USB stick.
Once the file and folders are copied, your windows 10 bootable USB is created! You can shut down your computer, boot it from this USB stick and install Windows 10 in UEFI mode. Keep in mind that you may need to disable compatibility support module (CSM) in the firmware in order to boot in UEFI mode. You may also need to remove USB stick from your computer and insert it back in order for the firmware to detect the boot loader on your USB stick.
Boot Windows 10 ISO Installer without USB (BIOS & UEFI)
Ever wondered if you can boot Windows 10 ISO installer without a USB flash drive? Yes, you can do it with GRUB2, which is the standard boot loader on Linux.
GRUB2 can not boot Windows 10 ISO directly. You need to create a separate NTFS partition on your hard disk or SSD with a partition editor like GParted and extract the Windows 10 ISO to that partition. Download the Windows 10 ISO file. The latest Windows 10 ISO file is 5.8G. The new NTFS partition should be at least 7G and it should not be used to store any other files.
Then find your Windows 10 ISO in file manager. Open it with disk image mounter.
Open the mounted file system. Select all files and folders and copy them to the NTFS partition.
Sometimes the file manager on Ubuntu hangs and it seems that the copy operation has stopped. Actually, it’s working. Just be patient. When you see a checkmark, it means the copy operation has finished.
Next, open up a terminal window and edit the /etc/grub.d/40_custom
file with a text editor such as Nano.
sudo nano /etc/grub.d/40_custom
In this file, we can add custom entries to the GRUB boot menu. In this case, we want to add an entry to boot the Windows 10 installer. If your computer still uses the traditional BIOS firmware, then add the following lines in this file.
menuentry "Windows-10-Installer.iso" { set root=(hd0,6) insmod part_msdos insmod ntfs insmod ntldr #uncomment the following line if your computer has multiple hard drives. #drivemap -s (hd0) ${root} ntldr /bootmgr }
My NTFS partition is the 6th partition on my first disk, so I use (hd0,6)
as the root. You can run sudo parted -l
command to check your NTFS partition number. If your computer has multiple hard drives, use the drivemap
command to set the partition (hd0,6)
as the first hard disk, so Windows will be able to boot.
If your computer uses UEFI firmware, then add the following text in this file.
menuentry "Windows-10-Installer.iso" { set root=(hd0,6) insmod part_gpt insmod ntfs insmod chain chainloader /efi/boot/bootx64.efi }
Save and close the file. (Press Ctrl+O
, then press Enter
to save a file in Nano text editor. Press Ctrl+X
to exit.)
Then update GRUB boot menu.
sudo grub-mkconfig -o /boot/grub/grub.cfg
or
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Next, set GRUB to boot the Windows 10 installer for the next boot with the following command.
sudo grub-reboot Windows-10-Installer.iso
or
sudo grub2-reboot Windows-10-Installer.iso
Unplug all your external USB storage devices, then reboot your computer. GRUB will choose the Windows 10 installer.
GRUB2 can also boot Linux ISO files stored on the hard drive, so you don’t need to create Linux live USB.
Creating a Windows 10 Bootable USB for Legacy BIOS Using WoeUSB
WoeUSB is a fork of WinUSB. Both of them are open-source software (licensed in GPL) for making Windows bootable USB sticks on Linux platform, but the latter hasn’t been updated since 2012. You may be wondering why it’s named WoeUSB. The author said it’s a GNU convention to abbreviate software that support Windows to “woe”.
To install WoeUSB on Ubuntu 14.04/16.04/17.04, you can use the following PPA. Simply open up a terminal window and run the following commands one by one. Other Linux distro users can compile this software by following the instructions on the Github project page.
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install woeusb
This PPA contains many other software. If you don’t need them, you can now remove this PPA from your system.
sudo add-apt-repository --remove ppa:nilarimogard/webupd8 sudo apt update
You can launch WoeUSB from Unity Dash or your application menu.
You can also start it from command line with:
woeusbgui
It’s very easy to use the WoeUSB GUI. Select Windows ISO image and your target USB device. Make sure your data on the USB device is backed up before hitting the Install button.
Then wait for the installation to complete.
Once done, you can use the bootable USB to install Windows 10 on your computer.
How to Use WoeUSB From the Command Line
First, find the device name of your USB stick using the following command.
lsblk
Mine is /dev/sdb
. Make sure your USB is unmounted with the following command. Replace /dev/sdb1
with your own partition name.
sudo umount /dev/sdb1
Then create a bootable Windows 10 USB like below. Red texts shoudl be adapted to your own ISO file name and USB device name. The -v (--verbose)
option will give more detailed output.
sudo woeusb -v --device windows-10.iso /dev/sdb
In my test, the Windows 10 USB created with WoeUSB can boot in both legacy and UEFI mode on my old computer. On my new computer, it can boot in legacy mode but failed in UEFI mode. I don’t know the exact reason, but it’s probably because of bug in this software.
That’s it! I hope this tutorial helped you create windows 10 bootable USB on Ubuntu or any Linux distribution. As always, if you found this post useful, then subscribe to our free newsletter to get new tutorials.
Hi! That worked perfectly. Thanks for sharing your expertise with FOSS amateurs like me. Cheers.
Thank you… successfully without headache
After successfully wasting one day this thing work out for me very easy and effective thankx man lots of thanx bottom from heart ❤❤
Another way to mount the Windows ISO is using the mount command with root privileges like this:
sudo mount -t auto -o loop “/path/to/windows.iso” /destination/path
Thanks for sharing!
Seems like running the .iso off the hard-drive would be the better way to go, right?
Not sure why Microsoft is willing to give Win-10 away. (Not that I want to use it for anything other than temporary/compatibility issues !;)
Regardless, once you’ve mounted it, how do you boot into it?
(thanks!)
This worked for me! 🙂 Thanks
My Chromebook wouldn’t allow me to do squat with my USB or ISO so I broke out the trusty UBUNTU shovel and dug my way out with your excellent guidance. You just saved my gaming rig.
Thanks! You saved my day.
You are welcome 🙂
Good stuff! Thanks a lot!
I can boot from USB to install Windows but then Windows can’t find a partition to install onto. What am I missing or doing incorrectly? How can I install so Windows in completely bootable from the USB? Thanks in advance
Windows doesn’t recognize ext4 partitions, or any other Linux file systems. If you want to set up dual boot, you need to create a separate NTFS partition in Linux with Gparted before booting the Windows USB.
This worked fine for me, thanks.
Thanks bro!
Wow, thank you. Just when I feel good enough to learn some technical stuff, I get a nice tutorial like yours. I didn’t know I wasn’t using efi until the apt-cache search for grub showed me only -pc. After a few hiccups and a CMOS reset, I’m doing OK. Cheers.
i am try make usb bootable windows 10 oct with format ntfs but cannot boot up, whats wrong?
Maybe it’s because your UEFI version doesn’t support booting from NTFS formatted USB stick.
It is my observation that my NTFS formatted USB stick isn’t bootable on my old laptop, which was bought in 2012. However, it is bootable on my desktop computer, which was bought in 2017. It has a graphical UEFI firware (I can use my mouse to configure firmware settings).
fyi my old Lenovo Laptop (also an older UEFI, NOT graphical) also has this issue – ExFat or NTFS is not bootable.
I had to search (yesterday) a download for the old build.
I greatly appreciate this because the Oct version of Win 10 4GB+ will not work with woeusb and I tried many workarounds with no success. Your method works perfectly. I rarely use windows, but once in a while I need it. Mint is my baby.
after copied all the files in my usb stick, my mnt folder is empty adn stick is invisible in bios.
how can I solve?
You may have copied the files to the wrong directory.
Doesnt show up as a bootable device, i formated in ntfs and using the newest update.
The april 64bit update is 4,4gb too, so i cant try with the fat32 method…
The April Update ISO file is 4.4GB. After you mount the ISO file, go to the mounted directory. You will find that there’s no single file larger than 4GB, so you can copy them to a FAT32 partition. (Don’t copy the ISO file itself to USB stick.)
Hi Xiao,
I do not know exactly either, but I think it should be fine, as an untouched ISO isn’t worth anything without the product code.
Would you be so kind to e-mail the ISO to me? My laptop is also older, from 2014, and does not recognize the ntfs usb. Couldn’t find the older ISO anywhere…
I have Win10-1803 ISO on my hard disk. I will upload them somewhere for you to download.
Thank you very much!
Win10 1803 English x64 ISO download link: https://nextcloud.linuxbabe.com/s/tJcd9HxKsK465Ze
Hello, I have the 1809 iso file and I formatted the drive in ntfs but it did not boot. I have a modern desktop (7th gen Intel) but it still does not boot. Any suggestions will be appreciated.
It’s hard to troubleshoot such problem. I would download the April update ISO file instead and format the USB drive to FAT32.
After all, you can always install updates after you install Windows 10.
From what I have learned, UEFI boot from NTFS partition depends on whether your firmware has NTFS driver or not.
I have the same problem, with October version. I put April version and FAT32 instead of NTFS and works. Thank you.
hi thanks for tutorial, i kind of got lost on the click green box part i jiggled around with it n hoped for the best 🙁 total newb here 🙂
so once i got to copy image to usb nothing seems to happen? you said it tends to hang !, so how long is this for usually.
ps maybe if you could add screenshots of the process where you click green box n what happens next would be help to make that process clearer, sorry for complaint as this is the best tutorial for me as i only have 4gb usb n old laptop
ok i figure out that its the green tick you press to apply., ivee gotten to where it hangs n seems to do nothing with info that the usb is unmounted. how long should i give it to copy? or have i to mount it now?
Saved my bacon! Thanks a million!
Does this repo still contain woeusb? I am getting:
‘E: Unable to locate package woeusb’
Yes, woeusb is still in this repo for Ubuntu 14.04, 16.04, 18.04, 18.10.
Fantastic Explanation! thank you so much for this write up
I tried this method and it works also formatting the USB stick in NTFS on Ubuntu for ISO images larger than 4 GB.
This actually worked for me, unlike a lot of other solutions. Thank you.
Hi,
I followed your instructions on UBUNTU 18.04 but I want to use this bootable USB for installing windows on another Laptop which has UBUNTU 14.04. I tried once and by selecting boot from USB, nothing happens. Could I install Windows by using this approach? Thanks.
A windows bootable USB is used to install Windows. If your laptop can’t boot from this Windows USB, it’s perhaps because the firmware on your laptop doesn’t have NTFS driver.
I just tried this but NO CIGAR. Luckily I don’t smoke!!!
What happened after using woeusb and writing to a usb stick and rebooting with the stick all I got was it wanting to install it to my hard drive. Luckily all 6 partitions are formatted as EXT4 so windoze was not able to write to them. I also inserted another usb stick to install to but it was not recognized.
It also wanted to “FIX” my computer so I quickly put a halt to that before that garbage had a chance to turn my system to garbage.
Long live Linux!!!
Thank You for this handy information. I am keeping this handy if needed again. Again, Thanks for being there with your great information.
You dont need a win10 product key? What about the idea of using Win XP (not supported be MS / less secure I know) or Win7?
Although Windows 10 keeps telling me to activate the product, I ignore it and have been using it for free.
I would not bother using XP or Windows 7.
FAT32 is not working and exfat is hassle. The simple solution:
1: Make an ntfs-partion on the usb-drive.
2: woeusb –partition Win10_1909_Norwegian_x64.iso /dev/sdX1
To get woeusb working, i installed woeusb and grub2. Woeusb asked for /usr/lib/grub/i386-pc/modinfo.sh that i found in the grub2-package. May be it would work to instead make a symlink to /usr/lib/grub/x86_64-efi/modinfo.sh from the grub2-efi package.
From the command-line I had to add
—target-filesystem NTFS
Before it would work
1. install woeusb: https://github.com/slacka/WoeUSB
2. format disk with gparted:
make it gpt patition table
3. open terminal and type the following command:
sudo woeusb –device windows_10.iso /dev/sdb –target-filesystem NTFS
where windows_10.iso is your iso file.
For some reason, the directions failed for me, but I got this to work….. but before it did, I had to go into gparted and create a blank msdos table. Woeusb creates the partition.
sudo woeusb -v –tgt-fs NTFS –device Windows10.iso /dev/sdX
This didn’t work for me. I had info: “reboot and select proper boot device…”. This instruciton worked for me: https://www.omgubuntu.co.uk/2017/06/create-bootable-windows-10-usb-ubuntu
But you have to find proper installer for woeusb. This video was helpfull too: https://www.youtube.com/watch?v=5gTAUsTo350
Thank you! That solution worked perfectly.
nice article. Great that it has both UEFI and legacy
Hey there, The copying part of the first method would not with latest versions of Windows (Pretty much after May 2019), don’t format it to fat32. Use NTFS instead.
Doesn’t work. Seems to hang in gparted doing some kind of ‘search’ following the unmounting of an existing partition, preventing access to the Device menu command mentioned. Was trying to run this procedure from a Linux Mint liveUSB (so intent was to create the Windows 10 installation media on a 2ND USB – stb – stick, which gparted had no trouble seeing, but seemed to get hung up following the unmount operation).
You only have to unmount the 2nd USB stick. There’s no need to unmount other devices.
Thank-you, but I guess I wasn’t clear. The 2nd USB stick, i.e., the stick I was wanting to create the Windows installer on, IS the ONLY one I was trying to unmount (it has an old version of Mint on it I’m intending to discard). The 1st USB stick was a Linux Mint liveUSB stick, (from which Mint & gparted were being run) and I wasn’t trying to unmount it. There IS a new M.2 SSD drive in the PC, recognized by the BIOS, but there’s so far NOTHING on it at all (it’s not partitioned; gparted saw it).
Don’t open any files in the 2nd USB stick when trying to umount it in Gparted.
None open. (What would be at that point?)
Ubuntu20: The following packages have unmet dependencies:
woeusb : Depends: libwxgtk3.0-0v5 (>= 3.0.4+dfsg) but it is not installable
Great. Everything work’s fine!
Many Thanks Xiao, I read many tutorials , tried some and nothing happened, I always getting a driver error , Find you tutorial tried and worked. Others didn’t used gparted for create the partition and I think this made all the difference, as gnome-disk is always used by others tutorial. My desktop is a Dell XPS-8700 and I used the last WIndows 10 iso from Microsoft site using NTFS on pen-drive. That’s pretty awesome as Dell solution was to burn a Windows 8 iso using their tool at another Windows machine, and now I did it with Kubuntu focal fossa with a regular iso from ms. Suck this Dell ! Thanks again Xiao.
Hi there Xiao,
I used the image to create a live Windows USB. I have a product key, but the Windows image asks me for a username and password when it starts up Windows? Could you please tell me which credentials to use to login?
The one you set during installation.
thank you very much man , saved my day (^_^)
Hello Xiao can you pls tell me how to run the bootable usb in linux ubuntu? fyi the method i did is the mounting the disk then copy and pasting thanks a lot!
You don’t run a bootable USB in an OS. You start your computer from a bootable USB.
If your UEFI Mode doesn’t supports booting Windows Bootable USB from NTFS. Then read this article https://win10.guru/usb-install-media-with-larger-than-4gb-wim-file/ . It works for me.
russian software…solarwinds anyone?!
whenever i make win 10 usb it says press a key to boot from usb.
for me it says that ”install.wim” is to large and can’t be copyed
This happens on newer Windows 10 ios, as well as Windows 11. The big file can be split up., however. There is a tool called “wimsplit” which does this on Linux; that’s part of the wimtools package on Ubuntu. First, go ahead and copy all the files over to the drive. You’ll get an error saying something about splice or whatever indicating the install.wim file is too big. Just skip that one, and then file manager will finish copying everything over. Then, split the file to the USB drive while the ISO is mounted.
sudo apt install wimtools
rm /media/yourname/yourUSBdrive/sources/install.wim
wimsplit /media/yourname/CCCOMA_X64FRE_EN-US_DV91/sources/install.wim /media/yourname/yourUSBdrive/sources/install.wim 4096
That last command will generate install.wim and install.wim2, splitting at roughly 4096 MB so it fits onto the fat32 fs.
Sorry – the split target (the second argument to wimsplit) should be “install.swm”, resulting in install.swm and install2.swm.
WOEUSB DPENDANCIES ARE BROKEN IN MINT 20
“”The following packages have unmet dependencies:
woeusb : Depends: libwxgtk3.0-0v5 (>= 3.0.4+dfsg) but it is not installable””
For me the 2018 link is over 4 gb, will it still work?
You don’t copy the .iso file directly to your USB stick. You should extract the .iso file and then copy them to USB stick. Once the 2018 .iso file is extracted, no file is larger than 4GB.
Worked like a charm!
Worked for me.
This (using the smaller Windows 10 ISO image) worked for me on a new Acer Aspire 5 with an AMD Ryzen 7 4700U CPU.
On a new Dell Inspiron 5505 (also Ryzen 7 4700U based), that older image did not have a driver for the WiFi chip. So, I recreated the USB drive (NTFS instead of FAT32) with the newest Windows 10 image (contained the needed WiFi driver) and used it to update the Dell (double-click on setup.exe on the mounted USB drive). No, the NTFS partition on the 2nd version of the USB drive would not boot for some reason. All’s well that ends well.
WoeUSB finally worked for UEFI USB boot using Ubuntu 20.04 ! Had to install dependencies (just read), and once installed don’t let Ubuntu update WoeUSB or it will remove GUI.
WoeUSB downloaded with GUI from:
http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu/pool/main/w/woeusb/woeusb_3.3.1-1~webupd8~focal0_amd64.deb
Reference: https://github.com/slacka/WoeUSB/issues/311
Thank you for sharing this, saved me a lot of time
Thank you very much! It saved me some great deal of time
The repository at ppa.launchpadcontent.net/nilarimogard/webupd8/ubuntu/dists looks to be out-of-date or possibly no longer maintained. Ubuntu 22 (jammy) is entirely missing, although there are plenty of packages for earlier Ubuntu versions.
I had to go to another repository to get the current release:
My install.WIM File in the recent 22H2 win 10 build is 5.2GB in size. any concerns on formatting the USB? xD
I blog quite often and I seriously appreciate your content.
Your article has really peaked my interest.
I will take a note of your site and keep checking for new information about once a week.
I opted in for your Feed too.