I'll explain this in terms plagarized from myself.
People are commonly confused by the difference between three distinct
things:
- A random access block storage device such as an SD card (or HDD).
- A storage partition which is a section of a device; there may only be one which occupies pretty much the whole thing.
- A filesystem which is something used to organize the data on a partition. Generally speaking there is a one-to-one correspondence between a filesystem and a partition.
On a certain level 1 and 2 are both regarded as "block devices" by the system, (and, on another, colloquially 2 and 3 are often conflated), but in context they are distinct entities. System images come in two flavours, device and filesystem. A bootable image is always the former, because it must contain some meta-information about the structure of the filesystem(s) and partition(s) contained in them in a format that that standard PCs etc. can use from boot, and that information is stored on the device but not all of it is in a partition. The two common formats for this information are (DOS-)MBR, a legacy of BIOS based systems, and (much newer), GPT, an artifact of UEFI based systems.
With regard to linux device nodes, partitions always have a number as a suffix,1 like this:
/dev/sdb1
^
Indicating this is the first partition on the sdb
device. Again, remember, you can't boot a partition, so there is nothing you can write to this which will make the device bootable if it is not already. Moreover, .iso
files are always device images, and if you copy one onto a partition, it won't be usable. What you want is the device itself:
/dev/sdb
When you copy a device image onto this, it is copied from block zero, and will erase any and all information currently on that device, including any of the meta-information about partitions and filesystems created by formatting, meaning there's no point in formatting it in any way first. Some people recommend this out of superstition (aka. cargo cult practices gone wrong), but it won't matter.
- An exception to this would be if you format a device as one big filesystem, in which case it is partitionless, and no good to boot from, but can still be mounted as a single fs. This is not a normal practice however.
/dev/sdb
, a block device), vs. an image that just contains a filesystem (which would need to be written to/dev/sda1
, a partition). Bootable images are always device images, not just single filesystems, although they may contain only one filesystem. – goldilocks Jul 19 '19 at 17:18fdisk -l whatever.iso
and you'll see why that can never work. – goldilocks Jul 20 '19 at 10:35isohybrid
is obviously a hack, that doesn't count ;P – goldilocks Jul 20 '19 at 13:45