isohybrid.pl
Make ISO images bootable from USB drives
SYNOPSIS
isohybrid.pl [OPTIONS] <ISO_FILE>
PARAMETERS
--offset <sectors>
Specifies the offset in sectors for the partition start. Advanced use case.
--partnum <N>
Sets the partition number for the bootable partition (default 2).
--force-gpt
Forces the creation of a GPT (GUID Partition Table) partitioning scheme.
--force-lba
Forces LBA (Logical Block Addressing) partitioning mode.
--mbr <file>
Uses a custom MBR template from the specified file.
--boot-catalogue <file>
Specifies the boot catalog filename within the ISO.
--disk-geom <h/s/c>
Defines disk geometry (heads/sectors/cylinders) for the MBR.
--fat
Creates a small FAT partition for boot support, often used for UEFI.
--iso
Ensures the input is treated as an ISO-9660 image (this is the default behavior).
--sifpart
Creates a System Integrity Field Partition, if required by bootloader.
--uefi
Adds or ensures UEFI boot support is included in the hybrid image.
--hfsplus
Adds HFS+ boot support, primarily for booting on Apple Mac systems.
--debug
Enables verbose debugging output for analysis.
--verbose
Enables more detailed output during processing.
--version
Displays version information and exits.
--help
Displays a help message and exits.
DESCRIPTION
isohybrid.pl is a Perl script, part of the Syslinux/Isolinux project, designed to transform a standard ISO-9660 image into a "hybrid" image. A hybrid ISO can be booted either from an optical drive (CD/DVD) or from a USB stick/hard drive. It achieves this by appending a Master Boot Record (MBR) and a partition table to the ISO file, allowing it to be directly written to a block device using tools like dd. This process makes it possible to create bootable live USB drives from ISOs originally intended for optical media, without needing to unpack and re-pack the contents. It supports various boot methods, including BIOS/MBR and UEFI, and can integrate different bootloaders.
CAVEATS
Requires Perl interpreter to run.
The original ISO must contain a bootable image (e.g., using isolinux/syslinux); isohybrid.pl doesn't *make* an ISO bootable from scratch, it makes an *already bootable* ISO hybrid.
The output file is often modified in-place or written to stdout if -o is not used.
Using dd afterwards is crucial: dd if=hybrid.iso of=/dev/sdX bs=4M.
Modern distributions often create hybrid ISOs by default, making manual use of isohybrid.pl less frequent.
<B>HYBRID ISO CONCEPT</B>
A hybrid ISO is a single file that can be interpreted both as an ISO-9660 filesystem (for CD/DVD) and as a raw disk image with an MBR and partition table (for USB/HDD). isohybrid.pl specifically adds the latter structure to an existing ISO.
<B>USAGE WITH <I>DD</I></B>
After running isohybrid.pl, the resulting file is typically written directly to a USB drive using dd, for example: dd if=my-hybrid-iso.iso of=/dev/sdX bs=4M status=progress. Replace /dev/sdX with your USB device, being extremely careful to specify the correct device as this command can overwrite system partitions.
HISTORY
isohybrid.pl was developed as part of the Syslinux project by H. Peter Anvin. It was created to bridge the gap between optical media booting and USB/hard drive booting, addressing the growing need for bootable USB drives. Its inclusion made it significantly easier for Linux distributions and other bootable utilities to provide a single ISO image that could serve both purposes, reducing complexity for end-users.
SEE ALSO
genisoimage(1), mkisofs(8), dd(1), isoinfo(8), syslinux(1)