Expand description
Partition table support for MBR, GPT, and Hybrid MBR.
This crate provides types and utilities for working with disk partition tables:
-
MBR (Master Boot Record): Legacy BIOS partition table format supporting up to 4 primary partitions. See the
mbrmodule. -
GPT (GUID Partition Table): Modern UEFI partition table format supporting up to 128 partitions with GUIDs for type identification. See the
gptmodule. -
Hybrid MBR: A non-standard configuration that combines GPT with MBR entries for dual BIOS/UEFI compatibility. See the
hybridmodule.
§Features
std(default): Enables standard library support and includesalloc.read(default): Enables reading partition tables via*ReadExttraits.alloc: Enables heap allocation forVec-based APIs (e.g.,GptDisk,PartitionTable).write: Enables writing partition tables (requiresalloc+read).sync/async: Synchronous or asynchronous I/O traits (viahadris-io).crc: Enables CRC32 verification/calculation for GPT headers (via thecrccrate).rand: Enables random GUID generation (via therandcrate).
std does not select an I/O mode. The default feature set enables sync
explicitly; custom configurations should enable sync, async, or both.
§Examples
§Creating a protective MBR for a GPT disk
use hadris_part::mbr::MasterBootRecord;
// Create a protective MBR for a 1TB disk (in 512-byte sectors)
let disk_sectors = 1_953_525_168u64; // ~1TB
let mbr = MasterBootRecord::protective(disk_sectors);
assert!(mbr.has_valid_signature());
assert!(mbr.get_partition_table().is_protective());§Working with GPT partition entries
use hadris_part::gpt::{Guid, GptPartitionEntry};
// Create an EFI System Partition entry
let esp = GptPartitionEntry::new(
Guid::EFI_SYSTEM,
Guid::UNUSED, // Would normally be a unique GUID
2048, // Start at 1MB (2048 * 512 bytes)
206847, // ~100MB partition
);
assert!(!esp.is_unused());
assert_eq!(esp.size_sectors(), 204800);Re-exports§
pub use error::Error;pub use error::Result;pub use geometry::DiskGeometry;pub use geometry::validate_partition_alignment;pub use gpt::GptHeader;pub use gpt::GptPartitionEntry;pub use gpt::Guid;pub use mbr::Chs;pub use mbr::MasterBootRecord;pub use mbr::MbrPartition;pub use mbr::MbrPartitionTable;pub use mbr::MbrPartitionType;pub use scheme::PartitionInfo;pub use scheme::PartitionSchemeType;pub use scheme::PartitionType;pub use scheme::GptDisk;allocpub use scheme::PartitionTable;allocpub use sync::*;sync
Modules§
- async
async - Asynchronous partition table API.
- error
- Error types for partition operations.
- geometry
- Disk geometry and alignment utilities.
- gpt
- GPT (GUID Partition Table) types.
- hybrid
- Hybrid MBR support for dual BIOS/UEFI bootable disks.
- mbr
- MBR (Master Boot Record) partition table types.
- scheme
- Unified partition scheme handling.
- sync
sync - Synchronous partition table API.
Structs§
- Le
- An integer stored in little-endian byte order.
Traits§
- GptDisk
Read Ext allocandread - Extension trait for reading
GptDiskfrom I/O sources. - GptDisk
Write Ext allocandwrite - Extension trait for writing
GptDiskto I/O sinks. - GptHeader
Read Ext read - Extension trait for reading/writing
GptHeaderfrom/to I/O sources. - GptHeader
Write Ext write - Extension trait for writing
GptHeaderto I/O sinks. - Master
Boot Record Read Ext read - Extension trait for reading
MasterBootRecordfrom I/O sources. - Master
Boot Record Write Ext write - Extension trait for writing
MasterBootRecordto I/O sinks. - Partition
Info Trait - Trait for types that represent partition information.
- Partition
Table Read - Trait for partition table types that support reading.
- Partition
Table Read Ext allocandread - Extension trait for reading
PartitionTablefrom I/O sources. - Partition
Table Write Ext allocandwrite - Extension trait for writing
PartitionTableto I/O sinks.