Ubuntu: How can I create a Windows bootable USB stick using Ubuntu?


I'd like to create a Windows 8 bootable USB stick, but I don't have a Windows machine with me to do so.

So how do I do it using Ubuntu?


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  


Any Ubuntu version

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

Install GParted and GRUB on Ubuntu with:

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

For BIOS: MBR partition scheme

  1. Rewrite the partition table as msdos and format your USB drive as NTFS using GParted (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. Copy all files from mounted Windows ISO or DVD to USB drive using your favorite file manager.
  4. Go to USB drive and if the folder named boot has uppercase characters, make them all lowercase by renaming it.
  5. Install GRUB on USB:

    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:

    echo "If you see this, you have successfully booted from USB :) <or whatever you want>"  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 and restart your PC. Choose the USB as the first boot device in BIOS and start booting from it.

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. Copy all Windows files (from mounted ISO or DVD) 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. Select the proper EFI loader from your BIOS.

  • /dev/sdX is the device (e.g. /dev/sdb, not /dev/sdb1).

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


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 the target operating system.


Ubuntu 14.04-17.04

WinUSB is a tool for creating a bootable USB flash drive used for installing Windows. A USB flash drive that is 4GB or larger has enough capacity to make installation media for versions of Windows up to Windows 10. To install WinUSB in Ubuntu 14.04/16.04/16.10/17.04:

sudo add-apt-repository ppa:nilarimogard/webupd8   sudo apt-get update    sudo apt-get install winusb  

This will install the WinUSB graphical interface and the WinUSB command line tool. The WinUSB GUI is much easier to use than the WinUSB command line tool.

Installing WinUSB on EFI-loaded Ubuntu will uninstall the grub-efi packages in order to install the grub-pc packages, so before you reboot run the following commands to repair grub:

sudo update-grub  sudo grub-install /dev/sdX # replace X with the letter of the partition where grub is located  sudo update-grub  sudo reboot


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.


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


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.



It seems 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. It works in all current versions of Ubuntu (and Ubuntu flavours: Kubuntu, Lubuntu ... Xubuntu) and with Debian Jessie. The created boot drive can boot 64-bit Windows in both UEFI and BIOS mode.

You get/update this new version of mkusb and mkusb-nox 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-nox    sudo apt-get install usb-pack-efi  # only for persistent live drives  

See these links,

mkusb-nox 11.1.2: added feature: make USB install drive for Windows

mkusb/v7 - ubuntu help page

mkusb-nox can create a USB boot stick with Windows 7 - 10, but you have to cope with a command line interface.

New: mkusb version 12, the new version provides a graphical user interface for the same method. See these links,


mkusb-nox: screenshot of user dialogue

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


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


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

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

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

After installation, write the windows ISO with that command:

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

It does not uninstall grub-efi anymore.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »