542

I'd like to create a Windows bootable USB stick, but I don't have a Windows machine at the moment to do so. How can I achieve that using Ubuntu?

11
  • 37
    Psicofrenia "UNetbootin allows you to create bootable Live USB drives for Ubuntu, Fedora, and other Linux distributions without burning a CD.", and I already tried to use it and discovered that UNetbootin really can't be used to create Windows bootable usb sticks.
    – Zignd
    Commented May 2, 2013 at 13:57
  • Have you tried to follow any Windows 8 tutorials on how to burn USB ticks and use Wine to make one of those indicated softwares to run? Commented May 2, 2013 at 14:04
  • Well this guy seems to think otherwise... --> CREATE A BOOTABLE WINDOWS 7 USB DRIVE FROM LINUX (TESTED ON UBUNTU)
    – Meintjes
    Commented May 2, 2013 at 14:04
  • 2
    @MrSeed I've tried this tutorial and also downloaded the older version of the UNetbootin, but the problem is that the older version depends on a library that is not available for Ubuntu 13.04 because it's too old, by the way the newest version of the library is available, but the app still doesn't work with it installed.
    – Zignd
    Commented May 2, 2013 at 14:09
  • Take a look at askubuntu.com/questions/381953/how-to-install-winusb
    – Mitch
    Commented Jun 29, 2014 at 15:37

18 Answers 18

304

WinUSB is old, obsolete, and outdated. It can cause problems on newer systems. You should be using WineUSB or other software in place of WinUSB.

This answer is, however, left here as-is for historical purposes.

Create a bootable Windows USB (Vista and above) from Ubuntu through WinUSB software.

Ubuntu 12.04 through 15.04

Run the below commands on terminal to install WinUSB from a PPA,

sudo add-apt-repository ppa:colingille/freshlight
sudo apt-get update
sudo apt-get install winusb

WinUSB screenshot

Warning for Ubuntu EFI:

installing WinUSB on EFI loaded Ubuntu will uninstall the grub-efi packages in order to install the grub-pc packages. It will make your system unbootable if you don't manually reinstall grub-efi package before rebooting.

To do the manual re-install do:

sudo update-grub
sudo grub-install /dev/sda
sudo update-grub
sudo reboot
39
  • 1
    Would something like sudo add-apt-repository "deb http://ppa.launchpad.net/colingille/freshlight/ubuntu saucy main" be better for the 14.04? apt-add-repository isn't just for PPA's...
    – Wilf
    Commented Jun 22, 2014 at 14:34
  • 6
    @empedokles 1. If you want to make a Windows XP USB then forget about it. It doesn't work with WinUSB. 2. To fix error 512 read this.
    – Cornelius
    Commented Nov 13, 2014 at 15:54
  • 2
    @ThoVo read this answer: askubuntu.com/a/539803/269282
    – Cornelius
    Commented Jul 19, 2015 at 10:21
  • 2
    Will not work in 15.10, 16.04, 16.10
    – rancho
    Commented Feb 10, 2017 at 14:07
  • 9
    This post is outdated, WinUsb was discontinued, but there is WoeUsb that is well mantained. Also take a look at these answers (that needs more upvotes): askubuntu.com/a/928874/256359 askubuntu.com/a/489556/256359
    – davcri
    Commented Dec 5, 2017 at 19:37
230

Any Ubuntu version

even other Linux distros as long as GParted and GRUB are installed.

Install GParted, GRUB, 7z, and NTFS on Ubuntu with:

sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g

For BIOS: MBR partition scheme

  1. Using GParted, rewrite the USB drive's partition table as msdos, format it as NTFS, and then "Manage flags" and add the boot flag.

  2. In GParted, right click the USB partition and select Information. Copy the UUID somewhere as you will need it.

  3. Mount your Windows ISO or DVD and copy all its files to the USB drive.

  4. Go to the USB drive, and if the folder named boot has uppercase characters, make them all lowercase by renaming it.

  5. Install GRUB on the USB drive.

    In the below command, replace /dev/sdX with the device (e.g. /dev/sdb, not /dev/sdb1) and replace <USB_mount_folder> with the folder where you mounted the USB drive (which could be like /media/<username>/<UUID>).

    sudo grub-install --target=i386-pc --boot-directory="/<USB_mount_folder>/boot" /dev/sdX
    
  6. Create a GRUB config file in the USB drive folder boot/grub/ with the name grub.cfg.

    Write this into the file, replacing <UUID_from_step_2> with the UUID you copied down in step 2.

    echo "If you see this, you have successfully booted from USB :)"
    insmod ntfs
    insmod search_fs_uuid
    search --no-floppy --fs-uuid <UUID_from_step_2> --set root
    ntldr /bootmgr
    boot
    
  7. Unmount the USB drive.

  8. Now to use it, restart your PC, and boot from the USB drive.

For UEFI: GPT partition scheme *

* Older Windows versions / editions may not be properly supported or not supported at all. I suggest reading the Microsoft UEFI Firmware page.

  1. Using GParted, rewrite the partition table of the USB drive as GPT.
  2. Create a new primary partition and format it as FAT32.
  3. Mount your Windows ISO or DVD and copy all its files to the USB drive.
  4. Look on USB in the efi/boot/ folder. If there's a file bootx64.efi (bootia32.efi) then you're done. The USB is bootable. Skip to step 7.
  5. Otherwise, open sources/install.wim with the Archive Manager (you must have 7z installed) and browse to ./1/Windows/Boot/EFI/. From here extract bootmgfw.efi somewhere, rename it to bootx64.efi (or bootia32.efi for supported 32 bits OS [?]) and put it on USB in efi/boot/ folder.
  6. If you're making a Windows 7 USB, copy the boot folder from efi/microsoft/ to efi folder.
  7. Don't forget to unmount (safely remove) the USB drive.
  8. Select the proper EFI loader from your BIOS.

Source: My blog post about this can be found at Make a bootable Windows USB from Linux.

Note

When properly used with a compatible target operating system, both of these methods should get you a bootable USB drive. However this does not guarantee successful installation of Windows.

32
  • 2
    @GuiImamura right click the partition in GParted, select Manage Flags and tick the checkbox next to boot.
    – Cornelius
    Commented Dec 12, 2015 at 18:46
  • 8
    EFI method is the way to do it for Win10. And you can safely skip steps 4-6 nowadays. Commented Mar 21, 2016 at 5:48
  • 2
    After trying many other things, this is the only that worked for me. Thanks.
    – a06e
    Commented Apr 4, 2016 at 13:20
  • 3
    I can confirm that the UEFI/GPT method works without steps 4-6 with Windows 10.
    – josch
    Commented Apr 7, 2016 at 5:50
  • 2
    This is the best answer as it does not depend on external tools like UNetbootin that are prone to issues. Commented Jul 11, 2016 at 4:27
124

Writing ISOs with WoeUSB (WinUSB fork)

Some answers are outdated, since WinUSB is not working anymore. But there is a working fork called WoeUSB.

Github: https://github.com/WoeUSB/WoeUSB

TLDR:

sudo woeusb --target-filesystem NTFS --device /path/to/your.iso /dev/sdX

Installation

It does not uninstall grub-efi anymore!

☞ Ubuntu / Debian

sudo add-apt-repository universe # contains the p7zip-full dependency
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb

☞ Arch  

pacaur -S woeusb

☞ Fedora

dnf install -y WoeUSB

☞ OpenSUSE

zypper install WoeUSB

Identifying the USB stick (the /dev/sdX path)

GUI approach

Search for a programm called disks, or if you use gnome you can launch it by executing gnome-disks.

Command line approach

There are several commands available to list storage devices. You might try one of these:

sudo lsblk --scsi --paths 
sudo lshw -class disk -short

Identify your usb device and see which path it has (like /dev/sdX).

Writing the ISO

After installation, write the windows ISO to your storage device with the following command. In the command below replace the X in /dev/sdX with your usb device path (see above how to find it).

sudo woeusb --target-filesystem NTFS --device /path/to/your.iso /dev/sdX

The --target-filesystem NTFS flag is required if the installation image is greater than 4GB, which is the case for the current Windows 10 official ISO file.

20
  • 3
    Worked perfectly. On Achlinux pacaur -S woeusb-git
    – dvim
    Commented Aug 18, 2017 at 6:28
  • 12
    On Error: Target device is currently busy issues, use sudo umount /dev/sdb (or respective device). ("Ejecting" the USB stick is not helping, since it must not be completely gone, only the partition unmounted. Otherwise the error will be: probing initialization failed: No medium found)
    – Frank N
    Commented Apr 1, 2018 at 12:28
  • 2
    Also worked on Fedora 28 with a Win10_1803_x64 iso. To install: dnf install -y WoeUSB
    – eddygeek
    Commented May 29, 2018 at 7:14
  • 19
    If you see an error "File in source image has exceed the FAT32 Filesystem 4GiB Single File Size Limitation", you will need to add --tgt-fs ntfs to the command line. Commented Jan 26, 2019 at 16:02
  • 3
    This seems not to work any more, but the maintainer created a rewrite: github.com/WoeUSB/WoeUSB-ng which also includes a gui version, which comes handy
    – rubo77
    Commented Feb 27, 2021 at 7:07
112

WoeUSB is a tool for creating a bootable USB flash drive used for installing Windows. Native UEFI booting is supported for Windows 7 and later images. WoeUSB is an updated fork of the WinUSB project.

Some third-party installers feature Windows installation images (/sources/install.wim) greater than 4GB making FAT32 as target filesystem impossible. NTFS filesystem support has been added to WoeUSB 3.0.0 and later.

WoeUSB installation

To install the WoeUSB command line tool snap package in all currently supported versions of Ubuntu open the terminal and type:

sudo snap install --edge woe-usb  
sudo snap connect woe-usb:removable-media

To launch the woe-usb snap package command line tool run the following command:

/snap/bin/woe-usb.woeusb

If you get a permission denied error click the Permissions button on the woe-usb screen in Ubuntu Software and toggle the permissions options from OFF to ON as shown in the below screenshot.

woe-usb Permissions

Windows USB drive from Ubuntu failing repeatedly
WoeUSB Issues

23
  • 1
    I had to go buy a higher-quality USB stick to get it to work. I imagine that's not a problem specific to WinUSB, though.
    – Seth
    Commented Jan 10, 2017 at 14:02
  • $ sudo add-apt-repository ppa:nilarimogard/webupd8 Cannot add PPA: 'ppa:~nilarimogard/ubuntu/webupd8'. ERROR: '~nilarimogard' user or team does not exist. Commented Feb 9, 2017 at 16:59
  • It works on my computer. You should see a message that says: More info: https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8 Press [ENTER] to continue or ctrl-c to cancel adding it After you see this message press the Enter key to continue. Maybe you have a connectivity issue.
    – karel
    Commented Feb 9, 2017 at 21:50
  • This really doesn't provide much of an explanation of how to do what the OP is asking. Once the steps in this answer are followed, is there a bootable USB?
    – Pointy
    Commented Dec 9, 2017 at 23:18
  • @ChangosMuertos dd didn't work for me, the usb was not bootable for some reason... its very easy to use so i doubt i messed it up
    – Ashley
    Commented Feb 12, 2018 at 19:10
57

The current UNetbootin boot chain is not compatible with UEFI and computers that come with a pre-installed copy Windows 8

You can use dd instead, while being careful in what you are doing:

sudo dd if=/path/to/iso/windows.iso of=/dev/sdX bs=4M; sync
  • Replace sdX with the drive you want to use (in my case, sdg):
  • This requires that your motherboard is able to boot from CDROM-USB.

If you want still to use UNetbootin, there are 2 (3) things that you will need:

  1. Unetbootin
  2. Gparted
  3. Internet access to install all the above, the Windows ISO image and a USB stick with more than 4GB.

So, first, backup all the contents of your usb stick. Once that is done install gparted and unetbootin:

sudo apt-get install gparted unetbootin

Now look for gparted in the Dash or type gparted in the terminal. Select your USB stick from the right dropdown list. In my case it's /dev/sdg, yours may be different. Remove all partitions and create a single big FAT32 partition with Gparted.

Once that is done, unplug and plug your USB stick so it gets mounted (you can also mount it from the same GParted), now execute Unetbootin, again, you can look in the dash or typing in the terminal. Select that you want to use an iso, look for the path your ISO is.

Mark the checkbox to see all devices, here you have to select the very same device you selected in Gparted, otherwise your data can be lost. Select continue. Wait for a moment and done. Restart your pc and select to boot from the USB.

12
  • 1
    @gcb weird, was a Windows 8?
    – Braiam
    Commented Dec 27, 2013 at 21:14
  • 1
    good point. no. it was windows7 pro. I will check with the win8 to see if that cd has the sd/hdd format.
    – gcb
    Commented Dec 27, 2013 at 21:24
  • 2
    I prefer your answer (the dd variant) to the accepted one, simply because it doesn't require adding another repositiory or even installing any software at all (unetbootin is not required, just use dd). Commented May 24, 2015 at 8:51
  • 8
    dd didn’t work for me, the computer just didn’t boot from the pendrive. If you want to use UNetbootin on a ntfs-formatted pendrive, you have to start it from command line: sudo unetbootin installtype=USB targetdrive=/dev/sdb1 (sdb1 is my pendrive’s ntfs-formatted partition, yours may be different).
    – erik
    Commented Nov 22, 2015 at 23:20
  • 7
    As of this answer at serverfault the dd-method fails very often, because it requires that your motherboard is able to boot USB-CDROM not just USB-HDD.
    – erik
    Commented Nov 22, 2015 at 23:46
21

In Non-UEFI machines, we can use GRUB2 to make USB stick bootable. Then, we can use 'ntldr' command in the GRUB2 to boot Windows from USB.

  • Enable the boot flag on the target partition of the USB drive. It can be easily done with the use of the tool called "GParted". It is a GUI tool for drive partitioning.
  • If the installation image is an ISO file, mount it and access the files.
  • Copy all the files to root of USB drive.
  • Install GRUB to USB drive:

    sudo grub-install --boot-directory="/media/user/MyUSBDrive/boot" /dev/sdX
    
  • Configure GRUB to boot Windows by placing the following file as "/boot/grub/grub.cfg" in the USB drive:

    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    menuentry 'Install Windows 8' {
     ntldr /bootmgr
    }
    

See complete answer at my blog Creating a bootable windows USB from Linux

6
  • 2
    No installs required. Simplest steps. Should have tried this before the accepted answer
    – Anurag
    Commented Dec 20, 2015 at 7:06
  • The grub-install command needs to be run as superuser. Only missing info
    – Anurag
    Commented Dec 20, 2015 at 7:07
  • 4
    THIS IS THE ULTIMATE ANSWER!!! Commented Mar 19, 2016 at 14:07
  • 3
    This is the same as the answer "Any Ubuntu version ... MBR partition scheme" but it's missing the --target=i386-pc option to grub-install and doesn't use the grub2 search command to find the "root" to boot from. Maybe that's not needed... Commented Aug 15, 2016 at 16:29
  • I think something else must be needed install wise, I dont have i386-pc as an option.
    – teknopaul
    Commented Aug 9, 2017 at 22:05
19

A simple 'Do it yourself' method

A rather simple 'Do it yourself' method is described at the following links. You can create Windows install drives that work in UEFI mode as well as in BIOS mode,


This 'Do it yourself' method is for you

  • if you have a Windows iso file that contains a file, install.wim, with a size > 4 GiB, or
  • if you don't like PPAs, or
  • if you want to 'Do it yourself' and understand the details

mkusb version 12.5.6 and newer versions

This 'Do it yourself' method is implemented in mkusb-tow and available via mkusb version 12.5.6 (mkusb-dus) and mkusb-plug.

You get/update this new version of mkusb from the mkusb PPA via the following commands

sudo add-apt-repository universe  # this line only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/ppa
sudo apt-get update
sudo apt-get install mkusb mkusb-plug

sudo apt-get install usb-pack-efi  # only for persistent live drives

mkusb-nox and mkusb version 12 (old method for 32-bit systems)

This 'mkusb' method is for you

  • if you run a 32-bit operating system, and other methods have problems that extracted files are truncated
  • if you want to create a boot drive for Windows 7 or 8
  • if you want to create a boot drive for [older] Windows 10 versions, where no file in the iso file exceeds 4 GiB.

It was difficult to find a linux tool that can create boot drives (USB sticks, memory cards ...) with Windows, so I added this feature to mkusb-nox and later on created mkusb version 12 with this feature. It works in all current versions of Ubuntu (and Ubuntu flavours: Kubuntu, Lubuntu ... Xubuntu) and with Debian 8-10. The created boot drive can boot 64-bit Windows in both UEFI and BIOS mode.

dus with guidus alias mkusb version 12: enter image description here enter image description here

8
  • 2
    Mkusb-nox is the best solution I have found, especially since the answers citing Winusb on this page are obsolete as this program is no longer supported and does not work out of the box with 16.04, keep up the good work Sudodus. Commented Nov 16, 2016 at 1:21
  • 1
    Dus worked for me. Commented Apr 30, 2017 at 18:34
  • Thank you for your work. FYI from Ubuntu 16.04 I get an error at the end of the process: Bootloader: grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
    – Pointy
    Commented Jul 27, 2017 at 19:04
  • ... however the USB stick appears to work (I'm installing Win 10 on a different machine than the one I used to make the USB stick.)
    – Pointy
    Commented Jul 27, 2017 at 19:06
  • @Pointy, Are you running mkusb in an installed Ubuntu system in UEFI mode? In that case there is a problem: the program package grub-pc cannot be installed unless the 'competing' package grub-efi is removed. It can be solved by running a [persistent] live Ubuntu or Ubuntu based system with mkusb. Such a system can work both in BIOS and UEFI mode, and grub-pc can be installed alongside the package `grub-efi'. See this link, help.ubuntu.com/community/mkusb/…
    – sudodus
    Commented Jul 27, 2017 at 19:21
13

winusb from the accepted answer is the only easy method I found.

However, there is no winusb package for saucy. You can however install the raring package by downloading it here and opening it with the software installer. It works with saucy.

http://ppa.launchpad.net/colingille/freshlight/ubuntu/pool/main/w/winusb/

2
  • 1
    winusb for saucy is now available in ppa:colingille/freshlight repository
    – Prasad RD
    Commented Dec 8, 2013 at 6:46
  • Link last updated 2015-08-23 Commented Apr 11, 2021 at 11:45
7
  1. Install VirtualBox and the VirtualBox Extension Pack found there.

  2. Download the Windows image you want to install.

  3. Create a Windows virtual machine, and set it up using the Windows ISO file you downloaded.

  4. Plug in your USB drive, and expose it to the VM using the latter's Devices/USB menu.

  5. Run Microsoft's Media Creation Tool in the VM (you will only be directed to the right page if you access it from Windows). Use this tool to create a bootable Windows USB.

The advantage of this method is that it depends only on Microsoft's tool, which does the configuration for you. The latest Windows images contain a file above FAT32's size limit, which makes it a pain to create a bootable USB drive by hand. My WoeUSB-created drive wasn't recognized by my Dell XPS's UEFI.

3
  • I did this but used the Rufus (rufus.ie) tool instead. I found the other solutions very cumbersome and not straight forward. Commented Jan 18, 2021 at 17:55
  • Good solution worth mentioning. At the same time one gets to learn some Virtualbox, which might come in handy for Ubuntu users.
    – Wadih M.
    Commented Feb 25, 2021 at 20:33
  • It also works when using QEMU/KVM and virt-manager instead of VirtualBox, other virtualization tools would probably work too.
    – IlmarsL
    Commented Jan 27, 2023 at 10:54
6

You can use WinUSB for that to install WinUSB on your Ubuntu follow these instruction.

Okey, if you are from Ubuntu 13.10,13.04,12.10,12.04, then run this in terminal:

sudo add-apt-repository ppa:colingille/freshlight
sudo apt-get update
sudo apt-get install winusb

and if you are from Ubuntu 14.04 then run this in terminal:

sudo add-apt-repository ppa:colingille/freshlight
sudo sh -c "sed -i 's/trusty/saucy/g' /etc/apt/sources.list.d/colingille-freshlight-trusty.list"
sudo apt-get update
sudo apt-get install winusb

WinUSB comes with a simple GUI with minimal options to go with, here is how to use WinUSB to make bootable Windows USB from Ubuntu. You can use any Windows ISO may be for XP, Windows 7, Windows 8, Windows 8.1 or any other.

  1. Insert Flash Drive & Get your Windows ISO (I used Windows 10 Technical Preview) or insert the Windows CD/DVD
  2. Start WinUSB and, nothing else really needs to be explained.
  3. Select your Source, either ISO or CD Drive
  4. Pick your Target (USB) Device. If it doesn’t appear, hit refresh and make sure it’s mounted.
  5. Click on “Install” and enter your Password (required to mount devices and write directly to drives)

This is all you need to do to create a bootable Windows USB Stick

Source : How to install and use WinUSB in Ubuntu

1
  • 1
    The web app you have attempted to reach is currently stopped and does not accept any requests. Please try to reload the page or visit it again soon. Commented Apr 11, 2021 at 11:43
5

Installing Windows using mkusb-plug

enter image description here

Step 1

enter image description here

Step 2

enter image description here

Step 3

[enter image description here]4]

Step 4

enter image description here

Step 5

enter image description here

Step 6

enter image description here

Step 7

enter image description here

Step 8

You should now have a USB installer ready to infect your computer with Windows

https://help.ubuntu.com/community/mkusb#Windows_USB_install_drive

4

For any one getting file limit exception using woeUsb , use terminal command

sudo woeusb --device /home/uName/Downloads/Win10_1809Oct_English_x64.iso /dev/sdb --target-filesystem NTFS

Instead of /home/uName/Downloads/Win10_1809Oct_English_x64.iso use your path to iso file and

Instead of /dev/sdb use your path do the flash drive .

1
3

Windows2usb

Windows2usb is a perfect solution for creating a bootable USB flash drive of Windows 7/8/8.1/10 ISO in Ubuntu. This tool supports BIOS and UEFI (with Rufus driver), FAT32 and NTFS.

Simply download the AppImage and make it executable using your file manager or by entering the following command in a terminal:

chmod +x ./*.AppImage

Then follow the following instruction below as your requirements.

BIOS Boot

BIOS Boot (Legacy Boot/UEFI-CSM) uses stock Windows 7 MBR and NTFS bootloader, courtesy of ms-sys project.

Use this mode if you have old computer without UEFI support or want maximum compatibility of installation media.

To burn ISO in this mode, run:

windows2usb <device> <windows iso> mbr

UEFI Boot

UEFI Boot (gpt mode) creates FAT32 partition with stock Windows UEFI bootloader.

This mode will not work on old computers. Use this mode for new computers with UEFI support.

This mode supports UEFI Secure Boot.

To burn ISO in this mode, run:

windows2usb <device> <windows iso> gpt

UEFI Boot with NTFS Partition

UEFI Boot with NTFS partition uses uefi-ntfs bootloader from Rufus project.

This mode is made for custom installation disks with install.wim file greater than 4 GiB, which could be found on various torrent trackers. Windows2usb creates 2 partitions in this mode, small 1 MiB FAT32 partition with uefi-ntfs and huge NTFS partition with ISO data.

This mode does not support Secure Boot (uefi-ntfs bootloader is not signed by Microsoft or other trusted party).

To burn ISO in this mode, run:

windows2usb <device> <windows iso> gptntfs

If your ISO contains install.wim greater than 4 GiB, gpt mode will automatically detect that and terminate the writing process.

3

The easiest way that I know is using Ventoy.
You can get Ventoy in this web site https://www.ventoy.net/en/download.html
You just need to install Ventoy to the USB stick and Ventoy allows you to drag and drop the image files that you want to add to the USB stick and it creates a grub like menu that allows you to choose the system you want to boot from your USB stick. It can be done with many different operating systems, including Windows and Linux distributions.
In addition to being easy, Ventoy is very practical. You can find the instructions on how to use it on the website.

2

For the sake of completeness, let me add instructions on how to create a bootable USB-disk from ThinkPad's UEFI/BIOS update ISOs. None of the above answers worked for me. (Perhaps there are similar problems with other vendors.)

  1. Create an img file with geteltorito

    sudo apt install genisoimage
    geteltorito <image>.iso -o <image>.img
    
  2. Write the img file to disk. Using this exact block size is important.

    sudo dd if=<image>.img of=/dev/sdX bs=512K && sync
    
2

Creating a Windows Bootable USB Stick using Ubuntu

Windows can be installed to boot in BIOS, (Legacy), mode or in UEFI mode. I will describe each method.

BIOS, (Legacy), mode, MSDOS Partition Table

  • Boot Ubuntu in Legacy mode.

  • Using GParted, create a 8GB NTFS partition for the installer and a 50GB or larger partition for Windows.

  • Mount the Windows ISO using sudo mount -t udf /{Path to ISO}/Win.iso /media/iso, Copy the contents of /media/iso/ to the 8GB partition.

  • In Terminal run sudo update-grub to add the Windows installer to Ubuntu's GRUB menu.

  • Edit the grub.cfg Windows menuentry, to add ntldr /bootmgr on the line after chainloader +1

  • Reboot and select Windows Recovery Environment from the Boot menu.

  • Proceed with Windows 10 installation as normal.

UEFI mode, GPT Partition Table

  • Boot Ubuntu in UEFI mode.

  • Using GParted, create a 8GB NTFS partition for the installer and a 50GB or larger NTFS partition for Windows.

  • Mount the Windows ISO using sudo mount -t udf /{Path to ISO}/Win.iso /media/iso, Copy the contents of /media/iso/ to the 8GB partition.

  • It should not be necessary to Update GRUB to boot in UEFI mode. (Please let me know if you find otherwise).

  • Reboot, The Windows installer should start. At this point you can close the installer to open the GRUB menu.

UEFI Notes:

UEFI properties may vary among vendors.

It may be necessary to add Windows Recovery Environment menuentry by hand.

Some instructions for installing Windows recommend the ISO be extracted to a FAT32 partition. If there are problems using the ISO extracted to NTFS see: https://www.dedoimedo.com/computers/windows-10-usb-media-linux.html, (thanks to oldfred).

I was not able to install as UEFI mode from Legacy Ubuntu on GPT disk.

2

20.04 ONLY, working as of 2/11/2021

Woeusb GUI will no longer install from the webupd8 PPA on 20.04 due to a dependency error

The following packages have unmet dependencies:
 woeusb : Depends: libwxgtk3.0-0v5 (>= 3.0.4+dfsg) but it is not installable
E: Unable to correct problems, you have held broken packages.

To get it to work, download the dependency and install it libwxgtk3.0-0v5_3.0.4+dfsg-3_amd64.deb

wget https://mirrors.kernel.org/ubuntu/pool/universe/w/wxwidgets3.0/libwxgtk3.0-0v5_3.0.4+dfsg-3_amd64.deb
sudo dpkg -i libwxgtk3.0-0v5_3.0.4+dfsg-3_amd64.deb

Then install via the PPA

sudo add-apt-repository ppa:nilarimogard/webupd8 && sudo apt update
sudo apt install woeusb
2

Update for 2023 using Ubuntu 22.04LTS desktop and creating a Windows 10 installation bootable USB; I doubt very much the 17 other answers missed this, so I think it must be much easier in 22.04 than it was in previous Ubuntu versions. Please note that this approach requires that your system (Bios) can boot into a NTFS formatted drive. If that's not the case, look at the other answers below. You may be able to find out if your hardware can boot into NTFS by looking at its documentation. Older hardware will likely not be able to boot into NTFS, and even some newer ones as the comments show.

I couldn't get WoeUSB to work in 22.04 and judging by the recent review scores, it's probably not working for most people now.

It seems you can now do it without any special tools. You do need to install gparted which isn't installed by default in Ubuntu, but in my view it's a useful tool to have anyway.

Note that I have done this for Windows 10 and confirm it works; I've included the Windows 11 download link in this answer but haven't tested that.

1. Download the Windows iso from Microsoft

Download at:

https://www.microsoft.com/en-gb/software-download/windows10ISO (Windows 10)

https://www.microsoft.com/en-gb/software-download/windows11 (Windows 11)

Save the iso file somewhere sensible (eg Downloads). Note (in case your internet is metered, limited or slow), that it is about 5-6GB.

2. install gparted from the software store

Just search for gparted and it's a simple installation from Ubuntu Software.

3. Format your USB drive using gparted:

Be very careful to select the correct device at the top - whatever you format will lose any data on it.

Click 'Device' then 'Create Partition Table'.

In the drop-down menu, use 'gpt' for the partition type, note the warning and click 'Apply'.

Click on the 'Partition' menu, then select 'New'.

In the dialog box, chose 'NTFS' as the filesystem. (You can't use FAT32 as that only supports files up to 4GB and one of the files is over 5GB.)

Click the green tick at the top to enact your changes - and your USB should be formatted and ready to go.

4. Open the iso to see the files and copy across

Navigate to your .iso download.

Right-click on the file and a pop-up should give you the option 'Open With Disk Image Mounter' - select that (in fact it is usually the default option if you double-click).

Your iso should now open as if it were a separate drive, and appear in the dock like a hard drive.

Double-click on the iso drive in the dock - it should open with a bunch of files and folders.

Copy the entire contents of that drive to your USB.

5. Set a boot flag for the USB

In gparted, select the USB device

Click on the graphical display of the partition you created.

Click on the 'Partition' menu at the top and select 'Manage Flags'

Place a tick in the 'boot' box

That's it!

4
  • +1 for a good answer :-) But please notice that the BIOS decides what to boot and not all PC computers boot into NTFS. It works well with NTFS in my Dell laptops with 4th generation Intel i5 processors and newer, but it does not work in all my computers for example not in a Toshiba with a 3rd generation Intel i5 processor. The reason is the file system. The Toshiba can install Windows from a boot drive created by mkusb with a small boot partition with FAT32 and a bigger partition with NTFS in order to manage the huge file.
    – sudodus
    Commented Apr 22, 2023 at 22:45
  • @sudodus - thank you. If I were confident enough I'd edit my answer to add how to do that (for computer that can't boot NTFS). It's a bit outside my comfort zone and I'm reluctant to risk giving bad advice. Please feel free to edit my answer, or feel free to add a separate answer - if you want to post a new answer with my information and yours I don't mind deleting mine in the interests of a simple answer that works for most.
    – Will
    Commented Apr 26, 2023 at 17:44
  • There is already an answer by me in this thread, and I need not edit your answer. As I wrote before, it is good, and relevant for many (probably most) new and 'middle-aged' computers. I think it is enough with my comment, that there are computers, where your method does not work. If you wish, you can make a small edit (just to mention the problem to boot into NTFS in older computers as a corner case).
    – sudodus
    Commented Apr 26, 2023 at 18:05
  • Today I tested to boot a Lenovo V130 with a 7th generation i5 processor, and booting into NTFS does not work. This computer is fairly new (several years newer than the 4th generation Dells that do boot). The BIOS version in this Lenovo laptop is "InsydeH2O 8YCN31WW(V.1.23)".
    – sudodus
    Commented Apr 28, 2023 at 20:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .