9 个不稳定版本 (3 个重大更改)
0.4.4 | 2024 年 6 月 26 日 |
---|---|
0.4.3 | 2024 年 1 月 8 日 |
0.3.1 | 2023 年 12 月 26 日 |
0.2.0 | 2023 年 12 月 26 日 |
0.1.0 | 2023 年 12 月 25 日 |
在 文件系统 中排名 611
每月下载量 474 次
26KB
477 行
rangefs
一种基于 FUSE 的只读文件系统,将文件中的范围映射到单独的文件。
安装
预构建的二进制文件可在 GitHub 发布页面找到。
您也可以使用 cargo 安装它
cargo install rangefs
如果您使用 Nix,您也可以从 NUR 软件包 nur.repos.dcsunset.rangefs
安装。NUR 仓库还提供了一个 NixOS 模块
programs.rangefs = {
enable = true;
fileSystems = {
"/mntpoint" = {
source = "/src";
config = [
{
name = "dest";
offset = 32;
size = 64;
}
];
extraOptions = [ "allow_other" ];
};
};
};
使用方法
将具有范围文件的文件挂载到挂载点
# mount a range as a new file
rangefs --config offset=16:size=16 <file> <mount_point>
# multiple ranges with different names
rangefs -c offset=4:name=range1 -c offset=8:size=8:name=range2 <file> <mount_point>
# unmount
fusermount -u <mount_point>
# To adjust log level and run at foreground
RANGEFS_LOG=debug rangefs -c offset=1:size=1 --foreground <file> <mount_point>
挂载点将是一个只读文件系统,其中包含对应于源文件中指定范围的文件。重复使用 --config
选项来挂载多个范围。
请注意,程序默认在后台运行。使用标志 --foreground
在前台运行它。
如果程序未使用 fusermount
退出,即使在程序退出后,也需要使用 fusermount
。您还可以使用 -
选项在程序退出时自动卸载 fs。
请注意,rangefs 还支持挂载块特殊文件。但是,您需要指定范围长度。否则,默认长度将为 0(与块文件元数据中的大小相同)。
rangefs 还支持通过 mount.fuse
或 /etc/fstab
挂载。要指定配置,以 config::
开头,并使用双冒号分隔配置。对于超时、标准输出和标准错误,使用 <option>::<value>
来设置它。使用 ::
而不是 =
来区分自定义选项和现有挂载选项。以下是一个 fstab 配置示例
/source_file /mount_point fuse./path/to/rangefs nofail,allow_other,config::name=r1:offset=1::name=r2:offset=2:size=2 0 0
使用 rangefs --help
查看可用选项。
许可证
AGPL-3.0。版权声明
rangefs
Copyright (C) 2023-2024 DCsunset
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖关系
~6-15MB
~170K SLoC