当前位置:   article > 正文

EROFS文件系统工具简介_mkfs.erofs_x64

mkfs.erofs_x64

1. EROFS工具安装

1.1. apt安装

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

apt install erofs-utils
  • 1

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算法将无法得到支持。可以使用apt install lz4-static.x86_64安装lz4-static。但是这些版本在压缩时存在某些bug,不建议直接使用这些版本。
如果使用lz4 1.9.0+,可以直接使用如下命令编译。

cd erofs-utils
./autogen.sh
./configure
make
  • 1
  • 2
  • 3
  • 4

编译生成的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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2.2. EROFS镜像格式

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

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

2.3. 生成EROFS镜像(Linux 5.3+)

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

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

或者不进行压缩:

mkfs.erofs foo.erofs.img foo/
  • 1

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

mkfs.erofs -zlz4hc,12 foo.erofs.img foo/
  • 1

2.4. 生成大物理扇区的EROFS镜像(Linux 5.13+)

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

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

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

在这种情况下,物理扇区大小最多可以是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/
  • 1

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/308966
推荐阅读
相关标签
  

闽ICP备14008679号