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

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.

Windows 10 Disc Image ISO

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.

make a windows 10 bootable usb

Select your USB stick from the drop-down menu on the upper-right corner. My USB stick is /dev/sdb. Yours may be different.

make a windows 10 bootable usb on linux

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.

make windows 10 bootable usb on ubuntu

Next, on the menu bar, select Device > Create partition table.

create bootable windows 10 usb on linux

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.

windows 10 usb gpt fat32

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).

windows 10 usb ubuntu 16.04

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.

mount windows 10 iso on ubuntu

Open the mounted file system. Select all files and folders and copy them to your USB stick.

windows 10 usb native UEFI

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.

windows 10 bootable usb creator linux

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.

GRUB boot Windows 10 ISO BIOS

Then find your Windows 10 ISO in file manager. Open it with disk image mounter.

ubuntu mount windows 10 ISO image

Open the mounted file system. Select all files and folders and copy them to the NTFS partition.

GRUB2 boot Windows 10 ISO

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.

windows 10 bootable usb creator linux

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

Boot Windows 10 ISO Installer without USB

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


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


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.

Boot Windows 10 ISO Installer without USB (BIOS & UEFI)

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.

woeusb ubuntu

You can also start it from command line with:


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.

woeusb ubuntu install

Then wait for the installation to complete.

make windows 10 bootable usb on ubuntu

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.


woeusb command line

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.

Rate this tutorial
[Total: 114 Average: 4.3]

85 Responses to “How to Easily Create Windows 10 Bootable USB on Ubuntu or Any Linux Distro

  • Rajib Alam
    6 years ago

    Hi! That worked perfectly. Thanks for sharing your expertise with FOSS amateurs like me. Cheers.

  • Ahyani Pavlov D'eouvre
    6 years ago

    Thank you… successfully without headache

  • SAKHAWAT Hossain
    6 years ago

    After successfully wasting one day this thing work out for me very easy and effective thankx man lots of thanx bottom from heart ❤❤

  • Brigadier Pepis
    6 years ago

    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!

    • tb thomas
      6 years ago

      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?

  • Zoopediua
    6 years ago

    This worked for me! 🙂 Thanks

  • Keith Chasse
    6 years ago

    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.

  • Mysterion
    6 years ago

    Thanks! You saved my day.

  • Mathias
    6 years ago

    Good stuff! Thanks a lot!

  • Thuan Ung
    6 years ago

    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

    • Xiao Guo-An (Admin)
      6 years ago

      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?

    • Xiao Guo An (Admin)
      5 years ago

      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).

      • GodLesZ
        5 years ago

        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?

    • Xiao Guo An (Admin)
      5 years ago

      You may have copied the files to the wrong directory.

  • Johnnyboi
    5 years ago

    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…

    • Xiao Guo An (Admin)
      5 years ago

      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…

  • 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.

    • Xiao Guo An (Admin)
      5 years ago

      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.

    • Xiao Guo An (Admin)
      5 years ago

      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?

  • Mike Quenard
    5 years ago

    Saved my bacon! Thanks a million!

  • Does this repo still contain woeusb? I am getting:
    ‘E: Unable to locate package woeusb’

    • Xiao Guo An (Admin)
      5 years ago

      Yes, woeusb is still in this repo for Ubuntu 14.04, 16.04, 18.04, 18.10.

  • David Paul Graham
    5 years ago

    Fantastic Explanation! thank you so much for this write up

  • Akuma-kun
    5 years ago

    I tried this method and it works also formatting the USB stick in NTFS on Ubuntu for ISO images larger than 4 GB.

  • Sridhar Sarnobat
    5 years ago

    This actually worked for me, unlike a lot of other solutions. Thank you.

  • sara shahraki
    5 years ago


    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.

    • Xiao Guo An (Admin)
      5 years ago

      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?

    • Xiao Guoan (Admin)
      4 years ago

      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/ that i found in the grub2-package. May be it would work to instead make a symlink to /usr/lib/grub/x86_64-efi/ from the grub2-efi package.

  • Thomas Jespersen
    4 years ago

    From the command-line I had to add

    —target-filesystem NTFS

    Before it would work

  • 1. install 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:
    But you have to find proper installer for woeusb. This video was helpfull too:

  • Shelmo Lewis
    4 years ago

    Thank you! That solution worked perfectly.

  • nice article. Great that it has both UEFI and legacy

  • Nikhil Jugdan
    4 years ago

    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).

    • Xiao Guoan (Admin)
      4 years ago

      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).

    • Xiao Guoan (Admin)
      4 years ago

      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?

  • precision
    4 years ago

    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!

    • Xiao Guoan (Admin)
      3 years ago

      You don’t run a bootable USB in an OS. You start your computer from a bootable USB.

  • ShreeMan
    3 years ago

    If your UEFI Mode doesn’t supports booting Windows Bootable USB from NTFS. Then read this article . It works for me.

  • internet puppy
    3 years ago

    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.


    “”The following packages have unmet dependencies:
    woeusb : Depends: libwxgtk3.0-0v5 (>= 3.0.4+dfsg) but it is not installable””

  • Lushaku
    3 years ago

    For me the 2018 link is over 4 gb, will it still work?

    • Xiao Guoan (Admin)
      3 years ago

      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.

  • Richard
    3 years ago

    Worked like a charm!

  • Worked for me.

  • Richard
    3 years ago

    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:


  • linuxuser23
    2 years ago

    Thank you for sharing this, saved me a lot of time

  • Caio Souza
    2 years ago

    Thank you very much! It saved me some great deal of time

  • The repository at 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:

    sudo add-apt-repository ppa:tomtomtom/woeusb
    sudo apt update
    sudo apt install woeusb
    sudo apt install woeusb*
    sudo apt install woeusb-frontend-wxgtk
  • LeNachoGrande
    7 months ago

    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.

Leave a Comment

  • Comments with links are moderated by admin before published.
  • Your email address will not be published.
  • Use <pre> ... </pre> HTML tag to quote the output from your terminal/console.
  • Please use the community ( for questions unrelated to this article.
  • I don't have time to answer every question. Making a donation would incentivize me to spend more time answering questions.

The maximum upload file size: 2 MB. You can upload: image. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here