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 wonder if it's you. Maybe the commands you typed in are wrong. You need a sanity check.

Check Look for the "El Torito" header

$ 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

Run the file command. It has a message that says if the iso is bootable

$ 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