Fedora: Create windows 8.1 bootable USB

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 : (


Solution 1:

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
    

Solution 2:

Creating a bootable Windows install USB isn't too tricky if you install ms-sys:

# First, format /dev/sdX with a single partition (w/bootable flag set)
# Then, run the following
dev="/dev/sdX"
sudo mount -o loop win.iso /mntA
sudo mkfs.ntfs -f -L win ${dev}1
sudo ms-sys -7 ${dev}
sudo mount ${dev}1 /mntB
rsync -aP /mntA /mntB
sudo sync ${dev}
sudo umount /mntA /mntB

If you're trying to install Windows 8 to the USB drive, it gets slightly more complicated. See the guide here: https://thesquareplanet.com/blog/installing-windows-8-1-to-go-on-usb-drive-from-linux/

Solution 3:

dd overwrites whole filesystem, so the formatting to FAT32 or NTFS before running dd makes no sense.

if you are 100% sure that your Windows-8.1 ISO image /home/kristjan/Prejemi/win.iso is able to boot from USB you can try to install liveusb-creator package using

sudo yum install liveusb-creator

and use it to transfer ISO data to USB stick.

Edit: Another alternative is unetbootin package which does basically the same thing of producing bootable USB stick from ISO.