#loops #losetup

loopdev-fyra

设置和控制循环设备

1个不稳定版本

0.5.0 2023年10月22日

#48#loop

MIT 许可证

20KB
278 代码行

Build Status crates.io

loopdev

设置和控制循环设备。

提供与Linux实用程序losetup类似功能的Rust接口。

文档

示例

use loopdev::LoopControl;
let lc = LoopControl::open().unwrap();
let ld = lc.next_free().unwrap();

println!("{}", ld.path().unwrap().display());

ld.attach_file("disk.img").unwrap();
// ...
ld.detach().unwrap();

开发

本地运行测试

不幸的是,测试需要root权限的syscalls,因此必须以root身份运行。模拟这些syscalls意义不大,因为我想要测试它们是否真的按预期工作。如果模拟这些syscalls,那么测试实际上并没有测试到任何有用的东西。

提供了一个vagrant文件,可以用来创建一个安全的环境,以root身份本地运行这些测试。在安装了VagrantVirtualBox之后,您可以通过以下步骤运行测试。

vagrant up
vagrant ssh
sudo -i
cd /vagrant
cargo test

请注意,测试是在root权限下构建的,但由于vagrant将此目录映射回主机作为您的普通用户,因此这个问题影响很小。最坏的情况是vagrant盒子会被破坏,可以在几分钟内重建。

依赖项

~0–8.5MB
~68K SLoC