嵌入式文件系统
jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
nfs
setenv bootargs 'root=/dev/nfs nfsroot=192.168.22.50:/home/rootfs init=/linuxrc console=ttySAC0,115200 ip=192.168.22.107:192.168.22.50:192.168.22.1:255.255.255.0::eth0:off'
/dev/nfs:网络文件系统
ttySAC0:串口终端 (如果指定错,内核无打印信息)
eth0:对应网卡
off:网络参数静态指定
网络文件系统
:https://blog.csdn.net/zhangxuechao_/article/details/51779590
cramfs
只读压缩的文件系统。不需要全部解压到ram中;解压缩时有延迟
# mkfs.cramfs /home/rootfs rootfs.cramfs
# setenv bootargs 'root=/dev/mtdblock0 init=/linuxrc console=ttyPS0,115200 rootfstype=cramfs'
mtdblock0:flash第一个分区 (根据分区设定)
ramdisk
划出一部分内存做文件系统。文件访问速度快;内存容量有限
# dd if=/dev/zero of=/tmp/ramdisk bs=1k count=8192
# /sbin/mke2fs -F -v -m0 /tmp/ramdisk
# sudo mount -t ext2 -o loop /tmp/ramdisk /mnt/
# sudo cp -a ./rootfs/* /mnt //拷贝文件系统
# sudo umount /mnt //需要卸载再压缩
# gzip -v9 /tmp/ramdisk //压缩
# mkimage -n 'Simple Ramdisk Image' -A ppc -O linux -T ramdisk -C gzip -d /tmp/ramdisk.gz /tmp/rootfs.ramdisk //制作启动映像
setenv bootargs 'root=/dev/ram rw init=/linuxrc initrd=0x20008000,10M console=ttyS0,115200'
/dev/ram:内存文件系统
initrd:内存位置
mkimage参考
:https://blog.csdn.net/zhangxuechao_/article/details/52029114
jffs2
闪存日志型文件系统
jffs2安装方式见jffs2小结
# mkfs.jffs2 -r /home/rootfs -o rootfs.jffs2 -e 0x20000 -p 0xa00000 -s 0x800 -n -l
e:每一块要擦除的block size,默认是64KB。要注意,不同的flash,block size不一样,三星的K9F2G08U0A的block size为0x20000。在没有加-e选项是,启动会出现以下错误:at91sam user.warn kernel: Empty flash at 0x00f0fffc ends at 0x00f10000。若有类似的错误,加上-e选项
p:输出文件大小。如果实际大小不足此设定的大小,则用0xFF补足
n:指明不添加清除标记(nandflash有自己的校检块,存放相关的信息)。如果挂载后会出现类似:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0的警告,加上-n就会消失
l:使用小端格式
# mkfs.jffs2 -r /home/rootfs -o rootfs.jffs2 -e 0x20000 --pad=0xa00000 -s 0x800 -n -l
经测试,发现一个问题。-p指定输出文件大小不正确,使用–pad才可以
# setenv bootargs 'root=/dev/mtdblock3 console=ttyPS1,115200 rootfstype=jffs2'
yaffs2
# git clone git://www.aleph1.co.uk/yaffs2
# mkyaffs2image /home/rootfs rootfs.yaffs2
如果出现错误:
Not enough space in object array
解决办法:
# vi utils/mkfsyaffs2image.c
#define MAX_OBJECTS 100000
# nand write[.yaffs[1]] addr off size
内存文件系统
:https://blog.csdn.net/zhangxuechao_/article/details/45060639
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!