- How to Create Bootable Windows 10 image in Debian?
- 11 Answers 11
- Saved searches
- Use saved searches to filter your results more quickly
- License
- ValdikSS/windows2usb
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
How to Create Bootable Windows 10 image in Debian?
How can you study which field values you can use for Windows 10 iso?
OS: Debian 8.5 64 bit
Hardware: Asus Zenbook UX303UA
Linux kernel: 4.6 of backports
Related threads: How to create bootable Windows 7 iso image in Linux?, Customizing a Windows 7 install ISO
Motivation: I need Windows 10 to use Canon P-150 duplex scanner, but when I started my Windows, I got Error 0xC0000428 because Windows update has again broken things there and I use Windows otherwise so rarely; and I have no spare Windows left to make bootable media
Please check the answer I have provided here, building upon contributions from other members unix.stackexchange.com/questions/531012/… (this procedure resulted in a EFI bootable win10 ISO)
11 Answers 11
I tried the Win7 solution described by Microsoft on a Windows machine:
so went to Debian Stretch 9 to try to build the Windows 10 bootable USB using a e5.onthehub.com college/school ISO.
Using dd absolutely doesn’t work for Windows 10. This only works for Linux OSes. Use:
dd if=my-linux-os.iso of=/dev/sdX bs=4M
Note: Never try write to /dev/sdX1 where X= and always check you are not overwriting your hard disk which is usually /dev/sda or /dev/sdb !
For Windows 10 you can use WoeUSB but not from the apt/yum repos. These ones are obsolete, at least for Debian 9. So instead use:
git clone https://github.com/slacka/WoeUSB.git
Then follow the instructions at the end of:
You must have all the prerequisites such as gparted and so forth installed first.
I also found at the end of the process that I must run woeusb with sudo. So you just use:
sudo woeusb --device local/of/my/windows-10-image.iso /dev/sdX
and hey presto it just works brilliantly. In my case my harddisk was /dev/sda and my USB drive was /dev/sdb so I wrote the ISO to /dev/sdb (again be careful, you don’t want to overwrite your OS by accident). I then installed it on a military class MSI motherboard with 2TB hard disk attached with no fast boot options inside the BIOS and it just works. I turned on absolutely every UEFI option first to get it into the right state.
I also had problems at install time, with the system hanging forever when using a Gmail email account for login and when the internet cable was connected at the second restart of the machine (during the install process). If you have this issue, disconnect internet, restart machine, let generic account be built, login, restart with internet cable
I had to use —target-filesystem NTFS like this: sudo woeusb —target-filesystem NTFS —device /path/to/image.iso /dev/sd? to avoid an error regarding file size larger than 4GB in FAT32 file system.
This worked for me even with legacy/CSM boot (Ubuntu 16.04, Windows 10 Version 1511 32bit; you can use genisoimage instead of mkisofs as well, mkisofs is just a symlink):
mkisofs \ -no-emul-boot \ -b boot/etfsboot.com \ -boot-load-seg 0x07C0 \ -boot-load-size 8 \ -iso-level 2 \ -udf \ -joliet \ -D \ -N \ -relaxed-filenames \ -o win10-1511-32bit-mod1.iso \ files/
(one long line, in bash with backslashes at the end for line continuation)
where files/ is the subdirectory which contains the extracted contents of the Windows 10 ISO.
The key point seems to be the etfsboot.com from the boot/ subdirectory of the Windows 10 ISO.
I can boot the burned disc with legacy/CSM without any problems.
I did only try out with the 1511 version of win10. If you try with other versions, please leave a comment.
No, genisoimage is a defective and dead variant of mkisofs . In case you only have a symlink, it is recommended to fetch a recent original that includes all the bug fixes and enhancements from the last 14 years.
@schily In Ubuntu 16.04, mkisofs is just a symlink to genisoimage. I’ve just tried to describe the situation at the system I’ve used for this as best as I could. But thank you for the information! So now we know that building the image even works with the 14 year old and buggy genisoimage used in Ubuntu 16.04. BTW, invoking genisoimage -version on Ubuntu 16.04 results in genisoimage 1.1.11 (Linux)
14 years ago, there have been many small bugs in the resulting filesystem image. Whether you notice them depends on what you do. Important: genisoimage has absoutely no UTF-8 support. This may be important unless you only use filenames with 7 bit ASCII. If you compare genisoimage with xorriso, genisoimage may be a win since it implements rudimentary UDF support. The new mkisofs on the other side supports user/group, permissions, symlinks, device files hardlinks and even chinese characters in filenames and better timestamps. Decide whether you are OK with a draft or like a mature program.
If you are going to boot a UEFI-based computer, just mount the Windows ISO (take care that it is a UDF formatted ISO) and copy all files to the USB drive. As long as the drive is in FAT32 format, a UEFI computer will recognize it and it will offer the option to boot from it.
On the other hand, for a BIOS-based machine, the best option is to manually configure syslinux to chainload the Windows boot. I tried this on Windows 8, but not yet on 10. /dev/sdf is your USB drive.
- Format the USB to FAT32
- Make sure the USB has only one partition, and it is boot active (GParted will help with this)
- Copy all files from the ISO to the USB drive
- Install syslinux on your Linux system
- Run syslinux -i /dev/sdf1 (the first partition on the USB drive, you can check on lsblk )
- Run dd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdf bs=4M
- Mount the USB drive and create the directory boot/syslinux
- Copy all *.c32 files from /usr/lib/syslinux/bios to the boot/syslinux directory on the USB
- Create a syslinux.cfg text file on boot/syslinux , with the text
LABEL win10 MENU LABEL Boot Windows 10 install COM32 /boot/syslinux/chain.c32 APPEND label=win7fs ntldr=/bootmgr
Edit: I’m not sure where Debian puts the syslinux files; you can find them with find / -name «mbr.bin» 2> /dev/null
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Windows 7/8/8.1/10/11 ISO to Flash Drive burning utility for Linux (MBR/GPT, BIOS/UEFI, FAT32/NTFS)
License
ValdikSS/windows2usb
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Burn Windows ISO to USB Flash Drive on Linux
Windows2usb is a bash script which writes Microsoft Windows 7/8/8.1/10/11 installation DVD images to USB Flash Drive or external HDD on Linux. It was designed with compatibility in mind, and should work in all cases, contrary to other popular Linux tools.
- Fully automatic, no preparations required
- Supports BIOS and UEFI, FAT32 and NTFS
- Supports custom Windows ISOs with install.wim > 4GiB
- Uses stock Windows bootloaders where possible
- Does not break UEFI Secure Boot chain
Windows 7/8/8.1/10/11 ISO to Flash Drive burning utility WARNING: this program will delete all existing data on your drive! windows2usb [mbr/gpt/gptntfs/gpt+uefintfs] mbr mode: the most universal, RECOMMENDED and DEFAULT method. This mode creates MBR partition table with FAT32 partition, installs BIOS and UEFI bootloaders, supports Secure Boot. install.wim file larger than 4 GiB will be split. Suitable for all computers (UEFI/CSM/BIOS). gpt mode: less universal mode, for modern (UEFI) computers. GPT+FAT32, UEFI only, supports Secure Boot. gptntfs mode: all the same as 'gpt' but NTFS is used. GPT+NTFS, UEFI only, supports Secure Boot. Large install.wim file will not be split. NOTE: not all UEFI are compatible with this mode, NTFS driver should be present on the motherboard. gpt+uefintfs mode: alternative hacky installation method, not recommended. This mode uses NTFS partition and third-party 'uefintfs' bootloader. GPT+NTFS(data)+FAT32(efi), UEFI only, supports Secure Boot (since uefintfs Oct 23, 2021 release). Large install.wim file will not be split.
Download latest portable AppImage version from the Releases page, set execution bit ( chmod +x windows2usb-*.AppImage ) and run it from the terminal.
./windows2usb.AppImage /dev/sdz /home/valdikss/windows10.iso
The program prints removable storage list if no arguments are supplied.
If you don’t want to use AppImage, you’ll need to install all dependencies and download uefi-ntfs.img from Rufus project.
Modes | Legacy/UEFI-CSM Boot | UEFI Boot | Large ISO (>4GB) | Secure Boot | File System | Part Table |
---|---|---|---|---|---|---|
mbr(hybrid) | Supported | Supported | Supported | Supported | FAT32 | MBR |
gpt | No | Supported | Supported | Supported | FAT32 | GPT |
gptntfs | No | Partial | Supported | Supported | NTFS | GPT |
gpt+uefintfs | No | Supported | Supported | Supported | NTFS | GPT |
BIOS Boot (Legacy Boot/UEFI-CSM) uses stock Windows 7 MBR and FAT32 bootloader, courtesy of ms-sys project.
BIOS boot is supported only in recommended ‘mbr’ mode.
To burn ISO compatible with BIOS boot (and UEFI boot as well), run:
UEFI Boot is supported in all modes. Recommended mode: ‘mbr’.
To burn ISO in this mode, run:
‘MBR’, ‘GPT’ and ‘GPTNTFS’ modes utilize Windows UEFI bootloader from the ISO file, with Secure Boot support.
UEFI Boot with NTFS Partition and uefi-ntfs bootloader
A special ‘gpt+uefintfs’ mode uses uefi-ntfs bootloader from Rufus project. Windows2usb creates 2 partitions in this mode, small 1 MiB FAT32 partition with uefi-ntfs and huge NTFS partition with ISO data.
This mode was included earlier to work with installation disks where install.wim file is greater than 4 GiB, but since then split WIM file functionality was introduced, and now this mode may be considered obsolete.
uefi-ntfs bootloader is signed by Microsoft since Oct 23, 2021 release and supports Secure Boot.
WoeUSB—uses GRUB for BIOS Boot.
bootiso—supports Windows and Linux ISOs.
Ventoy—Booting multi-tool with brilliant support of Windows ISO direct loading.
- lsblk and sfdisk from util-linux
- ms-sys for native Windows 7 MBR and NTFS bootloaders
- p7zip for ISO extraction
- autofsync to prevent filesystem bufferbloat and properly show copying progress (AppImage only)
- wimlib to split large install.wim files to fit FAT32 partition
- uefi-ntfs
About
Windows 7/8/8.1/10/11 ISO to Flash Drive burning utility for Linux (MBR/GPT, BIOS/UEFI, FAT32/NTFS)