Why does dd not make working bootable USB sticks for Microsoft? [closed]

Solution 1:

Cloning (with dd or other cloning tools) works well with most current linux iso files. They are hybrid iso files, prepared such that the same file can be used to create a DVD boot disk and a USB boot drive and a boot memory card (for example SD card).

Cloning does not make a bootable USB drive from a current Windows iso file. You need some special tool for that purpose, or perform the steps manually (in the extraction process), if you wish.

This link is mainly focusing on the tool woeusb (a tool in linux) to make a bootable USB drive from a current Windows iso file. I tested it recently and can verify that it works.

You can do 'the magic' yourself with detailed help at

help.ubuntu.com/community/Installation/iso2usb/diy/windows-installer-for-big-files

Solution 2:

I believe this has been answered, but I wanted to add a more detailed description of what is happening. First of all, CD-ROMs and DVDs are read by a computer differently than all other disk media. It is that a CD-ROM or DVD will be formatted with a file system called ISO 9660 (or a newer file system called UDF). Other disk-style media (including anything USB), on the other hand, start with a Master Boot Record or MBR. Larger disks now use GPT, but it's similar for this discussion. The BIOS in your computer will read the MBR or GPT from disk media and look for a boot loader there. With the MBR, the bootloader is kept with the MBR in the very first 512-byte sector on the disk. GPT is a little different and allocates something called an EFI partition elsewhere on the disk. The GPT itself is located in the first few kilobytes of the disk.

To boot a CD-ROM, it's a much different process. The standard is call El Torito Boot and describes a structure that resides inside a ISO 9660 file system. When the BIOS or UEFI on a computer tried to boot from a CD-ROM, it uses that and does not look for an MBR or GPT. This means an ISO for boot must be set up completely differently from a USB drive.

What many Linux distributions use is a technique called Hybrid ISO. The ISO 9660 file system has an interesting feature, it declares the first 32 kilobytes as a system area for someone else to use. It make no claims at all what can go there and will ignore whatever is there. Software reading the disc as ISO 9660 will always skip past that section. This leaves plenty of room to hide an MBR or GPT label in there with a conventional disk bootloader. A Hybrid ISO actually has two different boot loaders, one as part of ISO 9660 El Torito Boot and one for traditional disk boot.

So, in summary, there's nothing to say that an ISO image should be bootable on a USB disk. It's an extra feature that ISO 9660 allows if done carefully. The boot loader for the MBR can be more than 32 KB, for example, or it will overwrite the ISO contents. But making Hybrid ISOs is something that many Linux distributions have done to make life easier for their users. It's not something Microsoft has bothered to do.