Before starting, let's mention that there are two types of boot
methods. There is the MBR code type where the bootable executable is
stored in a reserved section at the beginning of the storage device.
And there is the EFI type, where the boot loader executable file is
stored at a standard path in an FAT32 filesystem.
You must decide in advance what you will use. There are some variables
for each boot type. If you have no idea what to use, the most common
setup that works with unmodified Windows sources, is msdos partition
table with fat32 filesystem and flag the partition with boot. In this
way you will get both an MBR and UEFI bootable drive.

- Format USB drive
Plug in your USB flashdrive and start GParted.
Select the USB drive and unmount it.
You must re-create the partition table by going to the Device menu
then select Create Partition Table. Choose msdos (or gpt if you want
an UEFI only bootable drive) and click Apply.
Right click the unallocated space and select New. Make a primary NTFS or FAT32
partition and give it a label too. The label must be as strange as possible
because the bootloader will identify the bootable partition.
If you have a install.wim larger than 4 GB you should definitely go for NTFS.
Apply all pending operation from Edit menu - Apply all operations. Right
click the partition and choose Manage flags. If you chose the msdos
partition table tick boot. If you chose the gpt partition table, msftdata
should already be checked.
- Copy Windows files
Quit GParted and use the file manager to copy all files from Windows ISO to USB
stick. Mount the ISO using Open with - Disk Image Mounter. After the copy
process is finished, look in the USB root folder for the boot directory.
If it is uppercase, rename it to lowercase.
- Make it bootable
If you used NTFS filesystem and MSDOS table, only method A is
available. If you used FAT32 and MSDOS table, you can apply method A,
B or both. If you used GPT partition table, only method B should be
followed.
GRUB will be used for that. Open a Terminal and run:
sudo grub-install --target=i386-pc --boot-directory="/media/<username>/<drive_label>/boot" /dev/sdX
Replace:
/media/<username>/<drive_label> with the path where USB drive is mounted
/dev/sdX with the USB drive, not the partition (e.g. /dev/sdb)
Now, create a text file and write the following in it:
default=1
timeout=15
color_normal=light-cyan/dark-gray
menu_color_normal=black/light-cyan
menu_color_highlight=white/black
menuentry "Start Windows Installation" {
insmod ntfs
insmod search_label
search --no-floppy --set=root --label <USB_drive_label> --hint hd0,msdos1
ntldr /bootmgr
boot
}
menuentry "Boot from the first hard drive" {
insmod ntfs
insmod chain
insmod part_msdos
insmod part_gpt
set root=(hd1)
chainloader +1
boot
}
Replace <USB_drive_label> with the label you gave it when you formatted the
drive (you can place it between quotes if it contains a space, although it is
not recommended to use spaces in drive label). Save the file as grub.cfg and
put it on the USB drive in the boot/grub folder.
That's it. The USB drive is now bootable from BIOS and can be used to
install Windows on your PC. The first time you boot from it in MBR
BIOS or CSM mode select Start Windows Installation.
Not all Windows versions are supported. Windows 7 on 64 bits, Windows
8 and newer versions should work.
After the copy process is finished, look in the USB root folder for
the efi/boot directory. If there's a bootx64.efi or bootia32.efi file
there, then you're done. You can boot from your USB in UEFI mode.
If the OS you are making a bootable USB for is Windows 7, browse the
efi/microsoft folder and copy the entire boot folder from this path
one level up in the efi folder. Merge folders if boot already exists.
Here is what to do if you don't have the bootx64.efi file in efi/boot
folder. Browse the mounted Windows ISO image into the sources folder.
Open install.wim (or install.esd) with your archive manager (you will
need 7z installed). Go to the path ./1/Windows/Boot/EFI and extract
the file bootmgfw.efi anywhere you want. Rename it to bootx64.efi and
put it on the USB drive, in the efi/boot folder. If you can't find
bootmgfw.efi in install.wim then you probably have a 32 bit Windows
ISO or other types of images (recovery disks, upgrade versions).
You can now boot from your USB in UEFI mode.