EROFS文件系统工具简介
文章目录
- 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文件系统工具简介相关推荐
- Computer:IPFS(星际文件系统)的简介、安装、使用方法之详细攻略
Computer:IPFS(星际文件系统)的简介.安装.使用方法之详细攻略 目录 IPFS的简介 1.IPFS的应用 IPFS的安装 IPFS的使用方法 1.下载文件 第一步,启动IPFS节点 第二步 ...
- 微软极品工具包各项工具简介
微软极品工具包各项工具简介 AccessChk 为了确保创建安全的环境,Windows管理员通常需要了解特定用户或用户组对文件.目录.注册表项和Windows服务等资源具有哪种访问权限.AccessC ...
- Monkey测试工具简介
最近依然还是那么忙,只不过慢慢总结,好几天出一篇总结,那也是在努力,加油,打工人 Monkey测试工具简介 一.Monkey 简介 二.Monkey 操作 2.1 Monkey支持的事件 2.2 Mo ...
- 《python 与数据挖掘 》一 1.2 工具简介
本节书摘来自华章出版社<python 与数据挖掘 >一书中的第1章,第1.2节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...
- 【Windows 逆向】OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )
文章目录 一.OD 工具简介 二.OD 工具与 CE 工具对比 三.博客资源 一.OD 工具简介 OD 全程是 PLLYDBG , 动态追踪工具 , 是目前最流行的 调试解密 工具 ; 该工具支持插件 ...
- 【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
文章目录 一.官方文档 二.Android 命令行工具简介 1.SDK 命令行工具 2.SDK 构建工具 3.SDK 平台工具 4.模拟器工具 5.Jetifier 工具 一.官方文档 Android ...
- 【音频处理】Melodyne 选择工具使用 ( 主工具简介 | 修改音高 | 自动吸附 | 音符长度修改 | 长度自动吸附 | 设置音符分离线 | 设置片段分离线 )
文章目录 一.主工具简介 二.选择工具 | 修改音高 三.自动吸附 四.修改音符长度 五.修改音符长度自动吸附 六.音符分离线设置 七.设置片段分离线 一.主工具简介 主工具 是 主工具栏 中的 66 ...
- Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略
Algorithm:机械优化设计的数学模型简介.常用优化方法.优化计算工具简介之详细攻略 目录 机械设计中基于算法模型的机械优化设计 1.优化设计的数学模型
- sysbench压力测试工具简介和使用(一)
sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...
最新文章
- 【Java基础】字符串与数组
- Python面试基础题-2018-12-26
- mysql查询并设置高亮_慢查询分析调优工具~mysqldumpslow
- 剑指Offer - 面试题10- II. 青蛙跳台阶问题
- Android mock单例对象,如何对Java单例模式进行mock
- python基础(17)之 JSON
- ORB-SLAM3配置安装及运行---Ubuntu20.04(2021年)
- 双电阻差分电流采样_绝缘采样
- 数学建模题目和模型汇总(2000-2019 国赛本科组)
- 可汗学院:宏观经济学笔记
- UVALive 6198 A Terribly Grimm Problem
- 【详细教程·本人亲测】解决win10家庭版系统C:\Users用户名中有中文,更改为英文的问题
- 软考中级哪个值得考?详细解答来了
- c语言%hx输出大写,C语言输出函数printf
- TensorFlow 2.0深度学习算法实战---第13章 生成对抗网络
- 服务器usb驱动安装系统安装失败怎么办,win7系统安装USB3.0驱动程序失败的解决方法...
- nz-upload 文件上传 - Angular
- 电影文件长长的文件名是这个意思
- Linux进程间通信(七)---共享内存之shmget()、shmat()、shmdt()及其基础实验
- View onMeasure 方法
热门文章
- noip2016模拟赛day7
- 【20220108】【雷达】毫米波雷达(二)—— 毫米波雷达和激光雷达的区别及优缺点比较
- 行内元素与块级元素区别1.0
- 河北单招计算机的考试试题,河北单招试题
- 25.Flink监控\什么是Metrics\Metrics分类\Flink性能优化的方法\合理调整并行度\合理调整并行度\Flink内存管理\Spark VS Flink\时间机制\容错机制等
- Unity 3D 入门基础
- 【数据库】MySQL的sql语句详解
- uname -a输出内容分析
- SIM300-E GPRS模块硬件
- 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能