- Create a bootable Windows 10 USB drive (UEFI) from Linux
- 7 Answers 7
- Windows 10 October 2018 release UEFI bootable USB drive on any Linux distribution.
- Variant A (For PCs with NTFS support)
- Variant B (For PCs without NTFS support)
- How to make a Windows bootable USB on Linux
- What is WoeUSB?
- What does WoeUSB-ng contain?
- Step 1 — Add WoeUSB repository and dependencies
- Step 2 — Update your system
- Step 3 — Install WoeUSB-ng
- Install WoeUSB-ng on Fedora
- Install WoeUSB-ng on Arch
- Install WoeUSB-ng from the source code
- Conclusion
Create a bootable Windows 10 USB drive (UEFI) from Linux
Beside this, I’ve tried creating a GPT partition table and one partition of type ef00 and formatted as fat32, and then copied all ISO contents to it. It boots OK, but when I go to start installation it shows the prompt for media dialog.
- Created a GPT
- Created a FAT32 at end of drive of 50 MB
- Created NTFS at remaining space
- Put UEFI:NTFS on FAT32
- Copied ISO content to NTFS
The installation starts ok, but at start of progress shows error 0xc0000005 (if i remember correctly).
7 Answers 7
You did all right. Make gpt table with fat32 and copy all data from iso on it. But you also need to set flag «msftdata»(not «boot») on this partition with e.g. parted.
You cannot put all data onto a FAT32 drive as of June 2019. The latest update contains a windows.wim which is larger than 4.1 GiB.
@Ben You can when you compress the install.wim file using dism or wimtools , see tqdev.com/2019-cannot-copy-windows-10-install-wim.
I tried this and didn’t work (and a lot of other things like exFat format for newer Windows 10 isos) So in the end I gave up, went to Windows and downloaded their Media Creator Tool. After that I checked and the USB worked. I checked the flags and they are boot and lba
Windows 10 October 2018 release UEFI bootable USB drive on any Linux distribution.
Notice, that since Windows 10 October 2018 release the installation file sources/install.wim is larger than the maximum FAT32 file size, so we will format USB drive to NTFS . Windows installer also cannot work with an EFI partition (code ef00 ), so we will use Microsoft basic data partition type (code 0700 ).
Variant A (For PCs with NTFS support)
Steps for creating USB drive with name /dev/sdc (Replace all commands with YOUR device name!):
- Insert USB drive to computer and make sure it is unmounted. Some distributions like to automount USB drives, so make sure you unmount them. Mounted partitions can be found with mount -l | grep ‘/dev/sdc’ , then unmount with sudo umount /dev/sdcX (where X is partition number).
- Open USB block device using gdisk /dev/sdc , configure it as GPT and create Microsoft basic data partition (code 0700 ), then write changes and quit (Next steps will destroy partition table in your USB drive. ).
sudo gdisk /dev/sdc o > This option deletes all partitions and creates a new protective MBR. > Proceed? (Y/N): y n > Partition number . > hit Enter > First sector . : > hit Enter > Last sector . : > hit Enter > Current type is 'Linux filesystem' > Hex code or GUID (L to show codes, Enter = 8300): 0700 p > Should print something like: > Disk /dev/sdc: 15646720 sectors, 7.5 GiB > Model: DataTraveler 160 > Sector size (logical/physical): 512/512 bytes > Disk identifier (GUID): . > Partition table holds up to 128 entries > Main partition table begins at sector 2 and ends at sector 33 > First usable sector is 34, last usable sector is 15646686 > Partitions will be aligned on 2048-sector boundaries > Total free space is 2014 sectors (1007.0 KiB) > Number Start (sector) End (sector) Size Code Name > 1 2048 15646686 7.5 GiB 0700 Microsoft basic data w > Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! > Do you want to proceed? (Y/N): y q
mkdir ~/tmp-win10-usb-drive sudo mount /dev/sdc1 ~/tmp-win10-usb-drive
- Download Windows installation ISO, create new temporary directory in your home and mount it there:
mkdir ~/tmp-win10-iso-mnt sudo mount Win10_1809Oct_English_x64.iso ~/tmp-win10-iso-mnt
sudo cp -rT ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
sudo umount ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/ rmdir ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
Variant B (For PCs without NTFS support)
Steps for creating USB drive with name /dev/sdc (Replace all commands with YOUR device name!):
- Insert USB drive to computer and make sure it is unmounted. Some distributions like to automount USB drives, so make sure you unmount them. Mounted partitions can be found with mount -l | grep ‘/dev/sdc’ , then unmount with sudo umount /dev/sdcX (where X is partition number).
- Open USB block device using gdisk /dev/sdc
- Configure it as GPT
- Create first partition of 1GB size and type Microsoft basic data (code 0700 ).
- Create second partition of rest of the size and type Microsoft basic data (code 0700 ).
- Write changes and quit (Next steps will destroy partition table in your USB drive. ).
sudo gdisk /dev/sdc > o > This option deletes all partitions and creates a new protective MBR. > Proceed? (Y/N): y > n > Partition Number: Enter > First sector: Enter > Last sector: 1G > Type: 0700 > n > Partition Number: Enter > First sector: Enter > Last sector: Enter > Type: 0700 > p # Should print something like: > Disk /dev/sdc: 30031250 sectors, 14.3 GiB > Model: Ultra USB 3.0 > Sector size (logical/physical): 512/512 bytes > Disk identifier (GUID): C657C0AF-3FE2-4152-8BF1-CE3CCA9F3541 > Partition table holds up to 128 entries > Main partition table begins at sector 2 and ends at sector 33 > First usable sector is 34, last usable sector is 30031216 > Partitions will be aligned on 2048-sector boundaries > Total free space is 4061 sectors (2.0 MiB) > Number Start (sector) End (sector) Size Code Name > 1 2048 2048000 999.0 MiB 0700 Microsoft basic data > 2 2050048 30031216 13.3 GiB 0700 Microsoft basic data w > Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! > Do you want to proceed? (Y/N): y q
sudo mkfs.fat -F32 /dev/sdc1 sudo mkfs.ntfs -Q /dev/sdc2
mkdir ~/tmp-win10-fat-usb-drive mkdir ~/tmp-win10-ntfs-usb-drive sudo mount /dev/sdc1 ~/tmp-win10-fat-usb-drive sudo mount /dev/sdc2 ~/tmp-win10-ntfs-usb-drive
- Download Windows installation ISO, create new temporary directory in your home and mount it there:
mkdir ~/tmp-win10-iso-mnt sudo mount Win10_1809Oct_English_x64.iso ~/tmp-win10-iso-mnt
- Copy following files with from mounted ISO to FAT32 formatted USB drive (basically copy everything besides sources/ but include sources/boot.wim ):
sudo cp ~/tmp-win10-iso-mnt/* ~/tmp-win10-fat-usb-drive/ sudo cp -r ~/tmp-win10-iso-mnt/boot ~/tmp-win10-fat-usb-drive/ sudo cp -r ~/tmp-win10-iso-mnt/efi ~/tmp-win10-fat-usb-drive/ sudo cp -r ~/tmp-win10-iso-mnt/support ~/tmp-win10-fat-usb-drive/ sudo mkdir ~/tmp-win10-iso-mnt/sources ~/tmp-win10-fat-usb-drive/ sudo cp ~/tmp-win10-iso-mnt/sources/boot.wim ~/tmp-win10-fat-usb-drive/sources
sudo cp -rT ~/tmp-win10-iso-mnt/ ~/tmp-win10-ntfs-usb-drive/
sudo umount ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-fat-drive/ ~/tmp-win10-usb-ntfs-drive/ rmdir ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
How to make a Windows bootable USB on Linux
In this tutorial you will learn how to make a windows bootable usb on Linux.
When using Linux it’s not that you have a lot of choices what software to use to make bootable usb, one of the best software is etcher but this software doesn’t work to make Windows bootable usb only other OS, so one of the best and one that works perfect for Linux is WoeUSB.
What is WoeUSB?
What does WoeUSB-ng contain?
woeusb: A command-line utility that enables you to create your own bootable Windows installation USB storage device from an existing Windows Installation disc or disk image
Step 1 — Add WoeUSB repository and dependencies
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt install git p7zip-full python3-pip python3-wxgtk4.0
Step 2 — Update your system
Step 3 — Install WoeUSB-ng
sudo pip3 install WoeUSB-ng
Install WoeUSB-ng on Fedora
sudo dnf install git p7zip p7zip-plugins python3-pip python3-wxpython4
Install WoeUSB-ng on Arch
Install WoeUSB-ng from the source code
git clone https://github.com/WoeUSB/WoeUSB-ng.git cd WoeUSB-ng sudo pip3 install .
Once you have installed WoeUSB, double click to run the app, select the ISO file you wan to burn into the USB and click install.
Then all you have to do is waiting for the app to finish.
Conclusion
In this tutorial you learned how to make a Windows bootable usb by using WoeUSB-ng on Linux.