#loops #losetup

loopdev-erikh

设置和控制循环设备

1个不稳定版本

0.5.0 2023年11月10日

#38#loop

Download history 2590/week @ 2024-04-20 2447/week @ 2024-04-27 385/week @ 2024-05-04 409/week @ 2024-05-11 455/week @ 2024-05-18 451/week @ 2024-05-25 415/week @ 2024-06-01 255/week @ 2024-06-08 394/week @ 2024-06-15 550/week @ 2024-06-22 936/week @ 2024-06-29 960/week @ 2024-07-06 1086/week @ 2024-07-13 1062/week @ 2024-07-20 1094/week @ 2024-07-27 1115/week @ 2024-08-03

4,566 每月下载量

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权限的系统调用,因此必须以root身份运行。由于我想测试它们是否真的按预期工作,因此没有模拟这些系统调用的意义。如果模拟这些系统调用,那么测试实际上不会测试任何有用的内容。

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

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

请注意,测试是带有root权限构建的,但由于vagrant将此目录映射回主机的正常用户,因此只有最小的问题。最坏的情况是vagrant虚拟机会被破坏,可以在几分钟内重建。

依赖项

~0–2.5MB
~38K SLoC