3 个版本
0.2.3 | 2023 年 10 月 9 日 |
---|---|
0.2.2 |
|
0.2.1 | 2023 年 9 月 18 日 |
0.2.0 | 2023 年 9 月 4 日 |
#540 in 文件系统
115KB
2.5K SLoC
cdfs
用 Rust 编写的 ISO 9660 / ECMA-119 文件系统实现。它仍在不断开发中。项目概述位于 Sourcehut
用法
请参阅示例目录和文档以获取有关如何在项目中使用 cdfs
库的更多信息。
如果您只是想使用 cdfs
来挂载 ISO,它包含了一个 FUSE 实现。
本地安装
$ cargo install cdfs
…
Compiling cdfs v0.2.2
Finished release [optimized] target(s) in 21.97s
Installing /home/user/.cargo/bin/cdfs_fuse
Installed package `cdfs v0.2.2` (executable `cdfs_fuse`)
$ cdfs_fuse images/rockridge.iso mountpoint/
2023-09-06T00:00:00.203Z INFO [cdfs_fuse] NOTE: The filesystem must be manually unmounted after exit
2023-09-06T00:00:00.206Z INFO [cdfs_fuse] Found POSIX.1 extensions with usable inodes.
2023-09-06T00:00:00.206Z INFO [fuser::session] Mounting mountpoint/
或者像这样直接从仓库运行 cdfs
$ cargo run -- images/rockridge.iso mountpoint/
Finished dev [unoptimized + debuginfo] target(s) in 0.15s
Running `target/debug/cdfs_fuse`
2023-09-06T00:00:00.203Z INFO [cdfs_fuse] NOTE: The filesystem must be manually unmounted after exit
2023-09-06T00:00:00.206Z INFO [cdfs_fuse] Found POSIX.1 extensions with usable inodes.
2023-09-06T00:00:00.206Z INFO [fuser::session] Mounting mountpoint/
…
支持的 ISO 9660 扩展
系统使用共享协议 | |
---|---|
CE – 续续区域 |
是 |
PD – 填充字段 |
否 |
SP – SUSP 开始 |
不强制执行 |
ST – SUSP 结束 |
忽略 |
ER – 扩展引用 |
是 |
ES – 扩展选择器 |
否 |
Rock Ridge 交换 | |
---|---|
PX – POSIX 属性 |
是 |
PN – POSIX inodes |
是 |
SL – 符号链接 |
是 |
NM – 长文件名 |
是 |
CL – 子链接 |
是 |
PL – 父链接 |
N/A |
RE – 重新定位目录 |
是 |
TF – 文件时间戳 |
是 |
SF – 稀疏文件 |
否 |
参考
- ECMA-119 标准
- OSDev wiki 上的 ISO 9660
- Joliet
- Linux 内核 isofs 模块
- Rock Ridge v1.12
- Rock Ridge v1.10
- Rock Ridge v1.09
- Wikipedia 上的 ISO 9660 条目
许可
此项目可在 Apache 2.0 或 MIT 许可下自由选择。
依赖关系
~8–19MB
~278K SLoC