8 个版本

0.2.0 2022 年 7 月 15 日
0.1.6 2022 年 2 月 19 日
0.1.5 2021 年 1 月 11 日
0.1.4 2020 年 5 月 16 日
0.1.1 2017 年 7 月 1 日

#2387解析器实现

Download history 10/week @ 2024-03-11 16/week @ 2024-03-18 42/week @ 2024-04-01 13/week @ 2024-04-08 11/week @ 2024-04-22 14/week @ 2024-05-20 16/week @ 2024-06-03 29/week @ 2024-06-10 16/week @ 2024-06-17 10/week @ 2024-06-24

71 每月下载次数
2 crates 中使用

MIT 许可证

26KB
310

此包可以解析 GPT 和基本 MBR 分区表。

Github CI crates.io

文档和示例

https://docs.rs/bootsector

限制

  • MBR 扩展分区无法读取(尽管它们被返回,因此您可以自行读取)。这应该得到实现。
  • GPT 备份表未进行验证,这是规范中“有点”必需的。这可以实施,但不是特别重要,除非您正在进行数据恢复。
  • 除了 512 字节之外的扇区大小未得到很好的测试。这些设备似乎截至 2017 年并不存在。

MSRV

Rust 1.46 支持,并由 CI 检查。更新此版本会导致 semver 版本号增加。


lib.rs:

从读取器中读取基本的 MBR 和 GPT 分区表。

示例

reader 加载 MBR 或 GPT 分区

use std::io;
use bootsector::{list_partitions, open_partition, Options, Attributes};

// let reader = ...;
let partitions = list_partitions(&mut reader, &Options::default())?;
let part = &partitions[0];

// See what type of partition this is
match part.attributes {
    Attributes::GPT {
        type_uuid,
        ..
    } => println!("gpt: {:?}", type_uuid),
    Attributes::MBR {
        type_code,
        ..
    } => println!("mbr: {:x}", type_code),
}

let part_reader = open_partition(reader, part);
// part_reader.read_exact(...

依赖项

~0.7–1MB