存储优化·实战目录
30章
🎯 Buildroot 文件系统选型与裁剪
1
存储选型全景:Flash vs EMMC vs NAND
介质对比
选型原则
→
2
Buildroot文件系统框架:BR2_TARGET_ROOTFS_* 配置体系
配置体系
文件系统类型选择
→
3
SquashFS深度解析:只读压缩文件系统
mkfs.squashfs
块大小对齐
→
4
UBIFS实战:UBI卷管理 & wear-leveling
LEB/PEB
ubinfo/ubiformat
→
5
JFFS2与YAFFS2:老牌NAND文件系统对比
碎片整理
GC开销分析
→
6
ext4在嵌入式中的取舍:日志模式选择
data=ordered
noatime·inode预分配
→
7
F2FS新贵:Flash-Friendly文件系统
overprovisioning
gc_urgent调优
→
8
tmpfs与ramfs:内存文件系统适用场景
size限制
swap协同策略
→
9
overlayfs叠加层:只读根+可写上层
docker镜像层
嵌入式移植
→
10
initramfs与initrd:早期用户空间构建
cpio优化
内核解压速度
→
11
文件系统大小估算:rootfs计算模型
ldd分析
strip工具链
→
12
Buildroot包裁剪:menuconfig依赖树
target瘦身
删除locales/doc
→
13
busybox替代方案:toybox vs coreutils
大小权衡
功能完整度
→
14
glibc vs musl vs uclibc-ng:C库选型
大小影响
兼容性测试
→
15
内核模块裁剪:localmodconfig
模块依赖
built-in vs module
→
16
设备树与驱动精简:dts裁剪
无用外设
关闭未用驱动
→
17
压缩算法选型:gzip/lz4/lzo/zstd
压缩比
解压速度权衡
→
18
双备份系统设计:A/B分区升级
冗余布局
回滚机制
→
19
OTA升级与文件系统:swupdate+ubifs+overlayfs
差分升级
增量包生成
→
20
只读根文件系统安全加固:dm-verity
签名验证
防篡改启动链
→
21
日志与持久化分离:syslogd配置
tmpfs日志
关键数据落盘
→
22
NFS根文件系统调试:Buildroot配置
网络挂载
热更新
→
23
文件系统性能基准测试:bonnie++/iozone/fio
嵌入式测试
指标解读
→
24
掉电保护机制:ext4 journal vs ubifs atomic
fsck修复
脏数据恢复
→
25
多分区布局设计:boot/rootfs/data/cache
容量规划
挂载参数
→
26
Buildroot post-build脚本:自定义后处理
权限设置
空目录创建
→
27
文件系统镜像生成自动化:GitLab CI集成
镜像版本管理
自动测试
→
28
生产烧录优化:dd vs fastboot vs mtd-utils
烧录速度
校验和验证
→
29
案例分析:IoT网关 ext4 → squashfs+overlayfs
存储寿命提升3倍
实战
→
30
未来趋势:EROFS、EMMC 5.1 HS400、ZNS SSD
只读文件系统
嵌入式前景
→