EXT4文件系统特性说明

在嵌入式设备中,针对EMMC使用的文件系统,很多都使用了EXT4格式,下面介绍几个实用的功能。

首先获取EXT4的特性:

复制代码
root@test:~# dumpe2fs /dev/mmcblk0p15 
dumpe2fs 1.46.5 (30-Dec-2021)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          64783e92-dd8f-4eed-bd6d-58dbce16e654
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         unsigned_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              708528
Block count:              2833920
Reserved block count:     0
Free blocks:              2762800
Free inodes:              708514
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8144
Inode blocks per group:   509
Flex block group size:    16
Filesystem created:       Thu Jan  1 08:00:39 1970
Last mount time:          Mon Dec  8 22:16:37 2025
Last write time:          Mon Dec  8 22:16:37 2025
Mount count:              2
Maximum mount count:      -1
Last checked:             Thu Jan  1 08:00:39 1970
Check interval:           0 (<none>)
Lifetime writes:          177 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

这是读的EXT4超级块的信息,从这里我们可以得到好多信息,挑几个说明一下:

1、Filesystem features:

文件系统支持的特性,比如has_journal large_file等

2、Errors behavior:

文件系统出错时采用的方式,有以下几个选择:

continue:忽略错误,继续运行

remount-ro:将文件系统重新挂载为只读

panic:触发内核 panic(系统崩溃)

一般推荐使用remount-ro的方式

这个特性可以通过tune2fs工具来修改,如下:

1)查看当前特性

bash 复制代码
root@test:~# tune2fs -l /dev/mmcblk0p15 | grep "Errors behavior"
Errors behavior:          Continue

2)修改remount-ro

bash 复制代码
root@test:~# tune2fs -e remount-ro /dev/mmcblk0p15
tune2fs 1.46.5 (30-Dec-2021)
Setting error behavior to 2
root@test:~# tune2fs -l /dev/mmcblk0p15 | grep "Errors behavior"
Errors behavior:          Remount read-only 

重启后生效

3)手动破坏分区进行试验

bash 复制代码
root@test:~# dd if=/dev/zero of=/dev/mmcblk0p15 count=3
3+0 records in
3+0 records out
1536 bytes (1.5 kB, 1.5 KiB) copied, 0.000317058 s, 4.8 MB/s 
root@test:~# echo 11111 > /second/2.txt
[   95.782427] EXT4-fs error (device mmcblk0p15): ext4_map_blocks:601: inode #2: block 9203: comm bash: lblock 0 mapped to illegal pblock 9203 (length 1)
[   95.801136] Aborting journal on device mmcblk0p15-8.
[   95.806432] EXT4-fs (mmcblk0p15): Remounting filesystem read-only
-bash: /data/2.txt: Structure needs cleaning
root@test:~# 

可以看到分区检测到错误后,就被重新挂载为read-only了,避免进一步被破坏。

3、Lifetime writes:

记录自文件系统创建以来(对应镜像烧录以来)总写入数据量的持久化计数器(单位 KB),主要用于评估闪存设备的磨损程度。

相关推荐
Joren的学习记录2 小时前
【Linux运维进阶知识】Nginx负载均衡
linux·运维·nginx
Jtti3 小时前
服务器防御SYN Flood攻击的方法
运维·服务器
2501_941982053 小时前
RPA 的跨平台部署与统一自动化策略
运维·自动化·rpa
b***25113 小时前
电池自动分选机:精密分选保障新能源产业质量核心
运维·自动化·制造
数数科技的数据干货3 小时前
游戏流失分析:一套经实战检验的「流程化操作指南」
大数据·运维·人工智能·游戏
蒟蒻要翻身4 小时前
在同一局域网内共享打印机设置指南
运维
chem41114 小时前
魔百盒 私有网盘seafile搭建
linux·运维·网络
早睡的叶子4 小时前
VM / IREE 的调度器架构
linux·运维·架构
兄台の请冷静4 小时前
linux 安装sentinel 并加入systemctl
linux·运维·sentinel