栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

EROFS工具简介

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EROFS工具简介

1. EROFS工具安装 1.1. apt安装

在较新的Debian/Ubuntu系统上,可以直接使用apt命令安装。

apt install erofs-utils
1.2. 源码安装

https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git

1.2.1. 编译依赖

如果需要支持Lz4压缩,需要Lz4 1.8.0+,强烈建议Lz4 1.9.3+。

1.2.2. 编译方法

对于一些旧的lz4版本(lz4-1.8.0~1.8.3),如果没有安装lz4-static, lz4hc算法将无法得到支持。lz4-static可以使用apt install lz4-static.x86_64进行安装。但是这些版本在压缩时存在某些bug,不建议直接使用这些版本。
如果使用lz4 1.9.0+,可以直接使用如下命令编译。

cd erofs-utils
./autogen.sh
./configure
make

生成的mkfs.erofs程序会保存在mkfs目录下。之后,可以使用make install将生成的工具安装到系统目录(需要root权限)。

2. EROFS工具使用方法 2.1. 命令帮助
mkfs.erofs 1.3
usage: [options] FILE DIRECTORY

Generate erofs image from DIRECTORY to FILE, and [options] are:
 -zX[,Y]               X=compressor (Y=compression level, optional)
 -C#                   specify the size of compress physical cluster in bytes
 -d#                   set output message level to # (maximum 9)
 -x#                   set xattr tolerance to # (< 0, disable xattrs; default 2)
 -EX[,...]             X=extended options
 -T#                   set a fixed UNIX timestamp # to all files
 -UX                   use a given filesystem UUID
 --exclude-path=X      avoid including file X (X = exact literal path)
 --exclude-regex=X     avoid including files that match X (X = regular expression)
 --force-uid=#         set all file uids to # (# = UID)
 --force-gid=#         set all file gids to # (# = GID)
 --help                display this help and exit
 --max-extent-bytes=#  set the maximum decompressed extend size # in bytes

Available compressors are: lz4hc, lz4
2.2. EROFS镜像格式

mkfs.erofs可以生成压缩和非压缩两种格式的EROFS镜像。

  • 对于非压缩镜像,不会对任何文件进行压缩。但是,可以选择是否将文件尾部的数据块与元数据进行内联。
  • 对于压缩镜像,会对每个文件尝试使用lz4(hc)算法进行压缩,并确认是否可以节省空间。如果压缩不能节省空间,则使用不对文件进行压缩。
2.3. 生成EROFS镜像(Linux 5.3+)

目前可以使用lz4和lz4hc进行压缩,例如:

mkfs.erofs -zlz4hc foo.erofs.img foo/

或者保留所有文件不压缩:

mkfs.erofs foo.erofs.img foo/

此外,还可以指定更高的压缩级别,以获得比默认级别更好(略好)的压缩比,例如:

mkfs.erofs -zlz4hc,12 foo.erofs.img foo/
2.4. 生成大物理扇区的EROFS镜像(Linux 5.13+)

为了获得更好的压缩比(对于普通存储设备有更好的顺序读性能),从linux-5.13开始引入了大物理扇区特性,这与旧内核不向前兼容。

具体来说,-C用于指定每个物理扇区的最大大小(以字节为单位)。

mkfs.erofs -zlz4hc -C65536 foo.erofs.img foo/

在这种情况下,物理扇区大小最多可以是64KiB。

注意,较大的物理扇区大小会导致不好的随机性能,所以需要提前仔细评估。或者根据需要,根据文件访问模式制定自己的文件压缩策略。

2.5. 生成早期的EROFS镜像(Linux 4.19+)

linux-5.3中引入了就地解压和压缩索引,这与旧内核不向前兼容。为了为旧内核生成legacy格式的EROFS镜像,可以考虑在命令行中添加"-E legacy-compress",例如:

mkfs.erofs -E legacy-compress -zlz4hc foo.erofs.img foo/

对于5.3及之后版本的内核,不推荐使用legacy格式的EROFS镜像,因为与legacy格式镜像相比,运行时性能会下降。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号