Crate iso9660

Crate iso9660 

Source
Expand description

ISO9660 Filesystem Implementation

A no_std implementation of the ISO9660 filesystem with El Torito boot support.

§Overview

ISO9660 is the standard filesystem for CD-ROMs and DVDs. This crate provides:

  • Volume descriptor parsing (Primary, Supplementary, Boot Record)
  • Directory tree navigation
  • File reading from extent-based storage
  • El Torito bootable CD support for kernel extraction
  • Optional Rock Ridge (POSIX) and Joliet (Unicode) extensions

§Architecture

The implementation is layered:

  1. Volume layer - Parses volume descriptors from sectors 16+
  2. Directory layer - Navigates directory records and path tables
  3. File layer - Reads file data from extents
  4. Boot layer - El Torito boot catalog parsing

§Usage

use iso9660::{mount, find_file, read_file};
 
// Mount ISO from block device at given start sector
let volume = mount(&mut block_io, start_sector)?;
 
// Find a file by path
let file = find_file(&mut block_io, &volume, "/isolinux/vmlinuz")?;
 
// Read file contents
let kernel_data = read_file(&mut block_io, &volume, &file)?;

§El Torito Boot Support

use iso9660::find_boot_image;
 
// Extract bootable image (kernel) from ISO
let boot = find_boot_image(&mut block_io, &volume)?;
let kernel = read_file(&mut block_io, &volume, &boot.file)?;

Re-exports§

pub use error::Iso9660Error;
pub use error::Result;
pub use types::VolumeInfo;
pub use types::FileEntry;
pub use types::FileFlags;
pub use types::BootImage;
pub use types::BootMediaType;
pub use types::BootPlatform;
pub use volume::mount;
pub use directory::find_file;
pub use directory::iterator::DirectoryIterator;
pub use file::read_file;
pub use file::read_file_vec;
pub use file::reader::FileReader;
pub use boot::find_boot_image;

Modules§

boot
El Torito boot support
directory
Directory record parsing and navigation
error
Error types for ISO9660 operations
extensions
ISO9660 extensions support
file
File reading and extent management
types
Common types and constants for ISO9660
utils
Utility functions
volume
Volume descriptor parsing