How to Determine if an ISO is Bootable (in Linux)

Sometimes you download an ISO and go to use it and it's not bootable. You scratch your head. You download it again. Not bootable. You question your file system. You question your ISP. You question your competency with the command line. You question your sanity. This is what you do.

Check for the "El Torito" header

If it's got one, that's a great start. It has to have one to be bootable.

$ isoinfo -l -i check_this.iso
$ isoinfo -d -i check_this.iso

You should see something like this:

Eltorito validation header:
Hid 1
Arch 0 (x86)
ID ''
Key 55 AA
Eltorito defaultboot header:
    Bootid 88 (bootable)
    Boot media 0 (No Emulation Boot)
    Load segment 0
    Sys type 0
    Nsect 4
    Bootoff 8F 143

Use the file command.

Look for the word "bootable" in the response.

$ file check_this.iso
check_this.iso: ISO 9660 CD-ROM filesystem data 'FD11SRC' (bootable)
                                                           ^^^^^^^^

Run try to boot it with qemu

Just try to boot it with a virtual machine emulator.

$ qemu-system-x86_64 -boot d -m 512 -cdrom check_this.iso

References

  • https://linux-tips.com/t/booting-from-an-iso-image-using-qemu/136 (edited)
  • https://askubuntu.com/questions/31888/how-to-verify-that-the-iso-i-downloaded-is-bootable-before-i-burn-it