Linux – Fedora: Create windows 8.1 bootable USB

bootfedoralinuxusbwindows 8

I tried everything and nothing works I have 2 brand new USB keys 3 more packaged. I have 3 valid Windows 8.1 ISO files and yet no approach works.

I tried Unetbootin takes forever to copy 4.3GB to the USB stick and does not work. I tried Ask Fedora approach using:

1) Formatting USB drive to FAT32 and using:

su -c 'dd if=/home/kristjan/Prejemi/win.iso of=/dev/sdc bs=400M'

This takes 30min to complete and nothing files are copied to the drive but it does not boot. When I mount it after it's now showing as FAT but as UDF.

2) Formatting USB Drive to NTFS and using:

su -c 'dd if=/home/kristjan/Prejemi/win.iso of=/dev/sdc bs=8M'

This takes 30min same as above.

3) I tried using GParted approach shown here:
SuperUser: Windows USB from Fedora
This one wants to boot but does not. I reboot, press ENTER>F12 To get to boot selection menu I select the USB drive and it does not skip back to boot selection screen like above solutions do but it just stays on a black screen with a blinking _ cursor.

4) I tried setting the boot flag from GParted and using DD but does not work either.

Why is this so hard on Linux systems. I mean on Windows/Machintosh I can create a bootable USB stick in 10min. On Linux it takes 30min to copy the ISO contents and then nothing works : (

Best Answer

Just now, I successfully created a bootable USB from a Windows 8.1 ISO containing a UDF filesystem. This will properly boot a UEFI machine into UEFI mode for subsequent install. It will not boot a BIOS machine or a UEFI machine in BIOS compatibility mode.

  1. Mount the ISO:

    sudo mount -t udf -o loop,ro,unhide /path/to/file.iso /mnt
    
  2. Insert the USB drive.

  3. Run fdisk and specify the device name of the USB drive; for example:

    sudo fdisk /dev/sdc
    
  4. Delete any existing partition table and create a new one.

  5. Create a new partition of at least 4.5 GB. Mark it bootable and set its type to 7 (HPFS/NTFS/ExFAT).

  6. Write changes and exit fdisk.

  7. Create a FAT-32 file system in the new partition; for example:

    sudo mkfs.vfat -F 32 /dev/sdc1
    
  8. Mount this partition to an existing subdirectory; for example:

    sudo mount /dev/sdc1 /media/usbstick
    
  9. Copy all of the files from the mounted ISO into this directory:

    sudo cp -rv /mnt/* /media/usbstick
    
  10. Sync the file systems just to be sure:

    sudo sync
    
  11. Unmount both items previously mounted:

    sudo umount /media/usbstick
    sudo umount /mnt