当前位置:网站首页>在Ubuntu上体验最新版本EROFS
在Ubuntu上体验最新版本EROFS
2020-11-07 23:13:00 【写代码有信仰】
在Ubuntu上体验最新版本EROFS
目前Linux内核的已经迭代到5.9版本,同时EORFS文件系统驱动也做了特性和稳定性更新,一睹新版功能体验。
准备Linux内核代码,最好是和当前发行版内核一致
1. 获取Ubuntu内核版本
$ uname -a
Linux ubuntu 5.9.6-050906-generic #202011051230 SMP Thu Nov 5 17:35:33 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
2. 下载最新EROFS 源码
$ mkdir ~/erofs && cd erofs
$ git clone https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git linux-erofs
$ git checkout -b erofs-dev remotes/erofs/dev
$ git bra|grep erofs
* erofs-dev
erofs-master
remotes/erofs/dev
remotes/erofs/dev-test
remotes/erofs/fixes
remotes/erofs/master
3. 准备makefile
# SPDX-License-Identifier: GPL-2.0-only
EROFS_VERSION = "1.0"
ccflags-y += -DEROFS_VERSION=\"$(EROFS_VERSION)\"
CONFIG_EROFS_FS=y
CONFIG_EROFS_FS_DEBUG=y
CONFIG_EROFS_FS_XATTR=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_EROFS_FS_SECURITY=y
CONFIG_EROFS_FS_ZIP=y
CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
obj-m += erofs.o
erofs-objs := super.o inode.o data.o namei.o dir.o utils.o
erofs-$(CONFIG_EROFS_FS_XATTR) += xattr.o
erofs-$(CONFIG_EROFS_FS_ZIP) += decompressor.o zmap.o zdata.o
ifneq ($(KERNELRELEASE),)
# call from kernel build system
obj-m := erofs.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := ~/linux-erofs/fs/erofs
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
echo ${KERNELRELEASE}
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module.symvers modules.order
depend .depend dep:
$(CC) $(EXTRA_CFLAGS) -M *.c > .depend
ifeq (.depend,$(wildcard .depend))
include .depend
endif
4. 编译和安装erofs驱动
$ cd ~/erofs/linux-erofs
$ make
# 安装依赖模块
$ sudo modprobe libcrc32c
$ sudo insmod ~/erofs/linux-erofs/fs/erofs.ko
$ lsmod|grep erofs
erofs 33648640 0
libcrc32c 16384 1 erofs
5. 挂着打包好的EROFS镜像test.img
$ sudo mount -t erofs -o loop test.img erofsdir;md5sum erofsdir/*.* srcdir/*.*|sort;sudo umount erofsdir
[sudo] password for XX:
0a78b672c059739eaa1dd01cc846f685 erofsdir/dmesg.log
0a78b672c059739eaa1dd01cc846f685 srcdir/dmesg.log
52efd0d1126cd0dbf0e6b28b2cf85c3f erofsdir/inline.txt
52efd0d1126cd0dbf0e6b28b2cf85c3f srcdir/inline.txt
72b3924faa8f5801e2966c69ddaa7d99 erofsdir/file.list
72b3924faa8f5801e2966c69ddaa7d99 srcdir/file.list
7558009b9427ba921ea05e68c35e98b2 erofsdir/config.c
7558009b9427ba921ea05e68c35e98b2 srcdir/config.c
aa5ae2a4d5d71e32357159d9b32a5c2c erofsdir/dd_unrandom.bin
aa5ae2a4d5d71e32357159d9b32a5c2c srcdir/dd_unrandom.bin
c0f56976ed5e0fcf331d30e8d74053bc erofsdir/file_002.txt
c0f56976ed5e0fcf331d30e8d74053bc srcdir/file_002.txt
f127e2ae77c615cd7391c5b4d1194d2c erofsdir/dd_unrandom2.bin
f127e2ae77c615cd7391c5b4d1194d2c srcdir/dd_unrandom2.bin
fdd480f87d40828ecc561cfa9e371a78 erofsdir/liberofs_la-cache.o
fdd480f87d40828ecc561cfa9e371a78 srcdir/liberofs_la-cache.o
版权声明
本文为[写代码有信仰]所创,转载请带上原文链接,感谢
https://my.oschina.net/230/blog/4707752
边栏推荐
- C语言I博客作业03
- VC6兼容性及打开文件崩溃问题解决
- Delphi10's rest.json And system.json Step on the pit
- On the concurrency of update operation
- C/C++编程笔记:C语言相比其他编程语言,有什么不一样的优势?
- Using subprocess residue in supervisor and python multiprocessing
- 京淘项目知识点总结
- These core technology of object-oriented, after you master it, you can have a good interview
- Problems of Android 9.0/p WebView multi process usage
- 关于update操作并发问题
猜你喜欢
![A compilation bug brought by vs2015 Update1 update [existing solutions]](/img/3b/00bc81122d330c9d59909994e61027.jpg)
A compilation bug brought by vs2015 Update1 update [existing solutions]

The software in your host has terminated an established connection. resolvent

Android Basics - RadioButton (radio button)

ubuntu实时显示cpu、内存占用率

C/C++编程笔记:C语言相比其他编程语言,有什么不一样的优势?

Android 9.0/P WebView 多进程使用的问题

14000 word distributed transaction principle analysis, master all of them, are you afraid of being asked in the interview?
![[original] the influence of arm platform memory and cache on the real-time performance of xenomai](/img/cb/0395507ece572556b2bab373f013a5.jpg)
[original] the influence of arm platform memory and cache on the real-time performance of xenomai

Data transmission of asynchronous serial communication controlled by group bus communication

使用 Xunit.DependencyInjection 改造测试项目
随机推荐
android基础-RadioButton(单选按钮)
你的主机中的软件中止了一个已建立的连接。解决方法
Git code submission operation, and git push prompt failed to push some refs'xxx '
Face recognition: attack types and anti spoofing techniques
尾-递
Web Security (1) -- browser homology strategy
CPP (1) installation of cmake
CPP (3) what is cmake
ROS learning: remote start ROS node
Wechat applet request reported 400 error @ requestbody failed to receive
Reflection on a case of bus card being stolen and swiped
C/C++编程笔记:C语言相比其他编程语言,有什么不一样的优势?
Delphi10's rest.json And system.json Step on the pit
Cpp(三) 什么是CMake
2020-11-07:已知一个正整数数组,两个数相加等于N并且一定存在,如何找到两个数相乘最小的两个数?
supervisor和Python多进程multiprocessing使用 子进程残留问题
Thinkphp6中where条件中字段与字段比较条件的写法
16. File transfer protocol, vsftpd service
static+代码块+多态+异常
关于update操作并发问题