0

I have had extremely variable luck with bootable USB sticks, and over time I have become puzzled and wonder what exactly is going on.

In threads such as this one and this one, it seems that I am not alone in having problems making bootable USBs on USB sticks that have already been made bootable. Some suggest that this has to do with Kingston drives, but I've had it with Samsung and SanDisk as well. Even stranger, most of the time I can get two or more bootable USBs out of one stick, but eventually sometimes, after having done it a lot, I get to a point where nothing short of zeroing, and even then, the USB will sometimes be a bit flaky afterwards, with various unpredictable problems arising around its use.

Have I simply had really bad luck with USB stick durability? Are USB sticks not really up to their advertised specs?

Do some disk utilities like Gparted or Startup Disk Creator take some kind of shortcut when overwriting blocks that look similar?

What could USB creation tools be doing that makes their work sometimes possible to delete and sometimes not?

Stonecraft
  • 360
  • 5
  • 15

1 Answers1

1

There are several ways of making a bootable disk:

  • You have a pre-made disk image of any OS, and you write it in "raw mode" (using dd, Win32DiskImager, or similar). This process is fully deterministic – if you write a 500 MB image, you will get exactly the same 500 MB of data written to disk every time. The image includes its own partition table, its own bootloader, and all that's needed.

    (Usually the disk is a bit larger than that, and the remaining area is untouched. However, the image's partition table doesn't map that area either, so the operating system should never use it and it should not cause any differences.)

    (Downside: this only works with disk images that are already bootable from regular disks. "ISO" files are traditionally primarily for CDs, which use a different boot method, so the image author has to use e.g. 'isohybrid' to turn it into a multi-purpose image.)

  • You have a Linux disk image and you use a special bootable-stick-making program such as UNetBootin; Rufus (with its "ISO mode" selected); etc. In this method, the program interprets the image and writes its contents in its own way. The partition table is usually created by the program itself.

    This process depends a lot on how each program works; different tools will make different USB sticks from the same original image.

    • For example, you need to know whether the program erases the whole partition table before generating a new one; or whether it deletes partitions but leaves the rest as is; or whether it just reformats the existing partition.
    • You also need to know whether the program uses the existing bootloader, or whether it installs its own, and if it does – whether it installs the same type or whether it tries to e.g. replace Syslinux with GRUB. (UNetBootin was at one time infamous for doing these replacements very badly.)

    So the process depends on quite a lot of variables – the program you're using, the version you're using, the type of bootloader already in the .iso, and possibly even what you already have in the USB stick from last time.

  • You have a disk image, but manually extract just the files into the USB stick – after partitioning it and installing a bootloader according to the OS-provided instructions.

    As in the previous option, this has many variables – differences in partitioning tools, differences in bootloader versions, differences in how the files were extracted from image and copied to the USB stick.

grawity
  • 501,077