LinuxCommandLibrary

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)

Copied to clipboard