Windows – Creating a BIOS and EFI bootable USB drive from a Windows 10 / 8.1 ISO image

biosbootinstallerusbwindows 10

I'm using Linux (Ubuntu Zasty 17.04).

The 10+ "solutions" I found on various places don't work.

What I've done:

  • Create and MBR partition table on the USB drive
  • Create a single, active partiton across the whole drive
  • Set type to 0xb "W95 FAT32"
  • Format the partition "mkfs.vfat /dev/sdb1"
  • Mount the installer iso and USB drive, copy all files, umount.

What works:
– Booting with EFI works perfectly

What does not:
– Booting with BIOS.

Obviously. No MBR was set up at this point so BIOS does not know how to boot.

Tried:

  • Installing MBR with LILO (How the MBR code should know what to boot anyway?)
  • Tried installing syslinux MBR (kinda the same)
  • Booting the iso with "kvm -m 2048 -cdrom [path to iso] -hda /dev/sdb" and:

  • …trying to fix the boot record automatically on the USB drive

  • trying to fix it manually with bootrec.exe
  • (Found out bootrec /ScanOs can't even see bootable windows systems)
  • manually creating a new BCD, adding bootmgr and osloader

Could not figure out what root and path to use so this is obviously wrong, but I hope it can be fixed somehow.

At this point the windows bootloader starts just fine, but it – of course – can't start the system, because there isn't a \Windows directory on the drive, so the default path and root does not work.

So the question is:

  • Can the windows boot loader be made to start the windows installer this way?
  • If not, how can I make this drive bootable with BIOS?

Thank you for the answers in advance.

Best Answer

@netom,

What you have done so far (formatting, partitioning, copying) is OK.

What you need:

Windows MBR(Master boot record) and Windows PBR (partition boot record).

Windows boot sequence:

BIOS loads MBR, MBR loads PBR of active, PBR loads Windows boot manager from active (file \bootmgr) and so on.

Distributions BCD's(for UEFI and BIOS) have already default boot entries which are "universal" (e.g. they expect all necessary boot executables to be on "boot device" in standard folders/directories).

You need a Linux tool to write Windows 7/8/10 boot sectors.

https://help.ubuntu.com/community/RestoreUbuntu/XP/Vista/7Bootloader

see also Fix Windows boot - last paragraph - Manual Windows boot repair.