14

Please don't refer me to the (mostly wrong) answers that have been posted on this subject. None are correct.

For the last several years I have made a million bootable sticks like this: dd if=(this).iso of=/dev/sdb bs=4M bla .. Obviously it works every time for an ISO, in particular Linux distros, but if this is any Windows 7 or 10 iso, the resulting USB stick is not bootable, and is not seen by any PC BIOS (Dell in particular). The iso is perfectly good and mounts as a filesystem with all the Windows media in it, but the BIOS doesn't see it, thus it is unusable. Why not?

Corollary: Microsoft provides various tools to input the iso and make the necessary write to USB/DVD (run under Windows). These tools fail. I don't care, but I want to know, is there something magical that these tools do that is not just a direct physical copy like dd does?

10
  • 5
    You seem to be asking about the magic properties of non-Linux tools in a Linux venue. Seems off-topic for AskUbuntu.
    – user535733
    Commented Sep 15, 2019 at 15:12
  • 1
    "None are correct" is incredibly arrogant. That you didn't find correct answers during your research does not mean they don't exist.
    – Ben Voigt
    Commented Sep 16, 2019 at 0:40
  • 5
    The problem isn't the tool, the problem is that the source image does not support this capability, and would have to be operated on by something which adds it, before or during the writing to the USB device. If you had a bootable USB stick, you could presumably clone it with dd, but the image you might be creating midway through that process is not the same as the iso you are starting with now. Commented Sep 16, 2019 at 4:24
  • 2
    @BenVoigt Insert the qualifier, "...that I found...", and all is well. Not everyone is that verbose all the time.
    – AaronD
    Commented Sep 16, 2019 at 4:40
  • 2
    Hi much thanks for the useful responses - if any "incredible arrogant" tone was perceived I apologise profusely, it was not intended. Yes, it couldn't be possible that I searched every response. The responses here are very useful. And I understand that preparation of a Windows on-tin dual-boot arrangement is not strictly askubuntu material. However, I suggest that "ubuntu as the workbench upon which all systems are built" is a common use-case.
    – user289334
    Commented Sep 16, 2019 at 10:16

2 Answers 2

17

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

4
  • 2
    You should probably put the relevant parts of those links as quotes in your answer. I've seen ubuntu.com links go dead before. Commented Sep 15, 2019 at 20:49
  • I've been using woeusb on Linux Mint 19.1, and haven't had it fail on me once. I've only used it with ISOs taken from the Microsoft website, so, keep that in mind. In my opinion, woeusb is a good recommendation. Commented Sep 16, 2019 at 1:49
  • @TheWanderer, This thread seems to get closed, If that will happen, it would be a waste of effort to put the relevant parts of those links as quotes in my answer. Otherwise, if it survives (we can check after a couple of weeks), yes, I would be prepared to edit the answer according to your request.
    – sudodus
    Commented Sep 16, 2019 at 7:11
  • You can also use "isotool" same diff about, as woeusb superuser.com/a/1695912/39364
    – rogerdpack
    Commented Dec 25, 2021 at 22:18
5

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.

Not the answer you're looking for? Browse other questions tagged .