文章目录

  • 1. EROFS工具安装
    • 1.1. apt安装
    • 1.2. 源码安装
      • 1.2.1. 编译依赖
      • 1.2.2. 编译方法
  • 2. EROFS工具使用方法
    • 2.1. 命令帮助
    • 2.2. EROFS镜像格式
    • 2.3. 生成EROFS镜像(Linux 5.3+)
    • 2.4. 生成大物理扇区的EROFS镜像(Linux 5.13+)
    • 2.5. 生成早期的EROFS镜像(Linux 4.19+)

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算法将无法得到支持。可以使用apt install lz4-static.x86_64安装lz4-static。但是这些版本在压缩时存在某些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 DIRECTORYGenerate 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 bytesAvailable compressors are: lz4hc, lz4

2.2. EROFS镜像格式

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

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

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镜像,因为其运行时性能会下降。

EROFS文件系统工具简介相关推荐

  1. Computer:IPFS(星际文件系统)的简介、安装、使用方法之详细攻略

    Computer:IPFS(星际文件系统)的简介.安装.使用方法之详细攻略 目录 IPFS的简介 1.IPFS的应用 IPFS的安装 IPFS的使用方法 1.下载文件 第一步,启动IPFS节点 第二步 ...

  2. 微软极品工具包各项工具简介

    微软极品工具包各项工具简介 AccessChk 为了确保创建安全的环境,Windows管理员通常需要了解特定用户或用户组对文件.目录.注册表项和Windows服务等资源具有哪种访问权限.AccessC ...

  3. Monkey测试工具简介

    最近依然还是那么忙,只不过慢慢总结,好几天出一篇总结,那也是在努力,加油,打工人 Monkey测试工具简介 一.Monkey 简介 二.Monkey 操作 2.1 Monkey支持的事件 2.2 Mo ...

  4. 《python 与数据挖掘 》一 1.2 工具简介

    本节书摘来自华章出版社<python 与数据挖掘 >一书中的第1章,第1.2节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

  5. 【Windows 逆向】OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )

    文章目录 一.OD 工具简介 二.OD 工具与 CE 工具对比 三.博客资源 一.OD 工具简介 OD 全程是 PLLYDBG , 动态追踪工具 , 是目前最流行的 调试解密 工具 ; 该工具支持插件 ...

  6. 【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )

    文章目录 一.官方文档 二.Android 命令行工具简介 1.SDK 命令行工具 2.SDK 构建工具 3.SDK 平台工具 4.模拟器工具 5.Jetifier 工具 一.官方文档 Android ...

  7. 【音频处理】Melodyne 选择工具使用 ( 主工具简介 | 修改音高 | 自动吸附 | 音符长度修改 | 长度自动吸附 | 设置音符分离线 | 设置片段分离线 )

    文章目录 一.主工具简介 二.选择工具 | 修改音高 三.自动吸附 四.修改音符长度 五.修改音符长度自动吸附 六.音符分离线设置 七.设置片段分离线 一.主工具简介 主工具 是 主工具栏 中的 66 ...

  8. Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略

    Algorithm:机械优化设计的数学模型简介.常用优化方法.优化计算工具简介之详细攻略 目录 机械设计中基于算法模型的机械优化设计 1.优化设计的数学模型

  9. sysbench压力测试工具简介和使用(一)

    sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...

最新文章

  1. 【Java基础】字符串与数组
  2. Python面试基础题-2018-12-26
  3. mysql查询并设置高亮_慢查询分析调优工具~mysqldumpslow
  4. 剑指Offer - 面试题10- II. 青蛙跳台阶问题
  5. Android mock单例对象,如何对Java单例模式进行mock
  6. python基础(17)之 JSON
  7. ORB-SLAM3配置安装及运行---Ubuntu20.04(2021年)
  8. 双电阻差分电流采样_绝缘采样
  9. 数学建模题目和模型汇总(2000-2019 国赛本科组)
  10. 可汗学院:宏观经济学笔记
  11. UVALive 6198 A Terribly Grimm Problem
  12. 【详细教程·本人亲测】解决win10家庭版系统C:\Users用户名中有中文,更改为英文的问题
  13. 软考中级哪个值得考?详细解答来了
  14. c语言%hx输出大写,C语言输出函数printf
  15. TensorFlow 2.0深度学习算法实战---第13章 生成对抗网络
  16. 服务器usb驱动安装系统安装失败怎么办,win7系统安装USB3.0驱动程序失败的解决方法...
  17. nz-upload 文件上传 - Angular
  18. 电影文件长长的文件名是这个意思
  19. Linux进程间通信(七)---共享内存之shmget()、shmat()、shmdt()及其基础实验
  20. View onMeasure 方法

热门文章

  1. noip2016模拟赛day7
  2. 【20220108】【雷达】毫米波雷达(二)—— 毫米波雷达和激光雷达的区别及优缺点比较
  3. 行内元素与块级元素区别1.0
  4. 河北单招计算机的考试试题,河北单招试题
  5. 25.Flink监控\什么是Metrics\Metrics分类\Flink性能优化的方法\合理调整并行度\合理调整并行度\Flink内存管理\Spark VS Flink\时间机制\容错机制等
  6. Unity 3D 入门基础
  7. 【数据库】MySQL的sql语句详解
  8. uname -a输出内容分析
  9. SIM300-E GPRS模块硬件
  10. 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能