3 个稳定版本
1.2.0 | 2021 年 10 月 6 日 |
---|---|
1.1.0 | 2021 年 8 月 30 日 |
1.0.0 | 2021 年 8 月 27 日 |
#15 in #disk-image
用于 qcow-cli
51KB
804 行
qcow-rs
用于处理 qcow 图像的 Rust 库。
示例
// open qcow
let qcow = qcow::open(PATH).unwrap();
// print out list of snapshots in the qcow
for snapshot in qcow.snapshots() {
println!(
"Snapshot {:?}: {:?} (size = {})",
snapshot.unique_id,
snapshot.name,
snapshot.vm_state_size
);
}
// create a reader for accessing the virtual hard disk
let mut file = BufReader::new(File::open(PATH)?);
let qcow2 = qcow.unwrap_qcow2();
let mut reader = qcow2.reader(&mut file);
// read the first 10 bytes of the virtual hard disk
let mut buf = [0; 10];
reader.read_exact(&mut buf)?;
库功能
- 解析 qcow 文件
- 完全支持 qcow 版本 1
- 支持解析头和一些相关数据
- 完全支持 qcow 版本 2-3
- 解析头,包括额外的版本 3 头数据
- 解析头扩展,允许您使用它们提供的附加数据
- 查找表(L1 和 L2)解析,仅按需加载 L2 表
- 解析快照,包括快照 L1 查找表
- 支持读取虚拟磁盘的内容
- 包括压缩支持(zlib 和 zstd 都支持)
- 集群查找缓存,缓存未命中时回溯
- 允许在虚拟机内任意定位
命令行界面
还提供了一个用于与 qcows 交互的 cli。
qcow-cli 0.1.0
A utility for querying information about qcow files
USAGE:
qcow <qcow> <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
ARGS:
<qcow>
SUBCOMMANDS:
get-file Output a file within the qcow to stdout
help Prints this message or the help of the given subcommand(s)
info Output info about the given qcow
partitions Display a list of partitions in the qcow image
tree Display a tree listing of the contents of the qcow
安装
cargo install qcow-cli
截图
列出 qcow 的信息
查看文件树
查看图像分区
使用 get-file 提取或查看文件
依赖项
~5MB
~96K SLoC