首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 嵌入式根文件系统详解与对比

    NOR闪存 → jffs2 NAND闪存 → yaffs2 ROM/EEPROM → romfs/cramfs 需要读写吗? 只读 → cramfs/squashfs/romfs 读写 → jffs2/yaffs2 空间有多紧张? 要求快 → 避免jffs2(扫描时间长) 不要求 → 都可以 掉电安全重要吗? 重要 → jffs2/yaffs2 不重要 → 其他 性能对比总结 启动时间对比: romfs < cramfs < squashfs < yaffs2 < initramfs < jffs2 压缩率对比 : squashfs > cramfs > jffs2 > yaffs2 > romfs = initramfs(依赖配置) 内存占用对比: initramfs > jffs2 > yaffs2 >

    14610编辑于 2026-02-02
  • 来自专栏文件系统知识

    【NAND文件系统】UBIFS介绍

    请注意,尽管 UBI 可扩展性是线性的,但无论如何它的可扩展性都比 JFFS2 好得多,JFFS2 最初是为小型 ~32MiB NOR 闪存设计的。 JFFS2 在“文件系统级别”上存在可伸缩性问题,而 UBI/UBIFS 堆栈仅在较低的“原始闪存级别”上存在可伸缩性问题 快速挂载 与 JFFS2 不同,UBIFS 在挂载时不必扫描整个flash,UBIFS 相比之下,JFFS2 不支持回写,所有 JFFS2文件系统更改都同步到闪存中。嗯,这并不完全正确,JFFS2 确实有一个 NAND 页面大小的小缓冲区(如果底层闪存是NAND)。 当在运行 JFFS2 的嵌入式系统中使用此类应用程序时,它们可以正常工作,因为 JFFS2 几乎是同步的。 当然,这些应用程序有问题,但它们似乎与 JFFS2 一起工作得很好。 性能的良好性能;请记住,在同步 I/O 方面与 JFFS2 竞争非常困难,因为 JFFS2 不在闪存上维护索引数据结构,因此它没有维护开销,而 UBIFS 有;但是 UBIFS 仍然很快,因为 UBIFS

    1.8K10编辑于 2025-02-19
  • 来自专栏韦东山嵌入式

    U-boot常用命令汇总

    bootcmd ‘nand read.jffs2 0x30007FC0 kernel ; bootm 0x30007FC0’ // 使用flash中的文件系统启动,默认为yaffs2文件系统,如果是jffs2 文件系统,添加 rootfstype=jffs2 // yaffs2 setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console /xxxx // 使用nfs网络文件系统启动,默认为yaffs2文件系统,如果是jffs2文件系统,添加rootfstype=jffs2 // yaffs2 ,注意是一行 setenv bootargs /work/nfs_root/xxxx ip=192.168.1.3:192.168.1.2:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc // jffs2 文件系统启动时记得修改 bootargs 添加 rootfstype=jffs2 打开 tftpd32.exe 软件,将 fs_mini.jffs2 拷贝至工作目录 在SecureCRT中依次输入:

    1.2K30发布于 2020-09-30
  • 来自专栏鸿蒙开发笔记

    OpenHarmony 内核源码分析(根文件系统) | 先挂到/上的文件系统

    谁做根文件系统只决于内核在启动阶段想让谁做.文件系统可存在于诸多介质上,例如:硬盘(mmc),闪存(flash),内存(RAM).每种介质上有其最合适配套的文件系统,mmc一般是(fat,ext),flash包括(jffs2 )其中第七项 make rootfs, FSTYPE支持 jffs2,vfat文件格式系统本篇跟踪敲下 make rootfs FSTYPE=jffs2后发生了什么查看 kernel/liteos_a/ Makefile#执行 make rootfs FSTYPE=jffs2 一切从这里开始$(ROOTFS): $(ROOTFSDIR)#依赖于 ROOTFSDIR$(HIDE)$(LITEOSTOPDIR /musl/* endiftools/scripts/make_rootfs/rootfsimg.sh 生成镜像文件 rootfs_jffs2.img , 调用 mkfs.jffs2来制作 jffs2 _TOOL=mkfs.jffs2.exe #windows 下 制作 jffs2镜像文件的工具 chmod -R 755 ${ROOTFS_DIR} if [ -f "${ROOTFS_DIR

    62520编辑于 2025-03-28
  • BusyBox与嵌入式根文件系统的关系详解

    │ │ ├──────────────────────────────────┤ │ Linux Kernel │ initramfs / jffs2 不同文件系统中BusyBox的配置差异 文件系统 BusyBox存储特点 配置注意事项 initramfs 完全在内存中 可以精简,快速启动优先 jffs2 存储在闪存,运行时加载 考虑磨损均衡,可完整配置 体积:~500KB 包含命令:init, sh, mount, ls, cat, echo 优点:极简、启动快、占用资源少 方案2:通用嵌入式设备(智能家居) 文件系统:squashfs(系统) + jffs2 制作jffs2(需要知道闪存参数) mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x20000 -s 0x800 # 4. 挂载jffs2: 2.5秒(扫描时间长) 2. 加载动态库: 0.3秒 3. BusyBox init: 0.1秒 总时间: ~2.9秒 方案B:ubifs + 静态BusyBox 1.

    19110编辑于 2026-02-02
  • 来自专栏全栈程序员必看

    Linux文件系统类型[通俗易懂]

    5 ISO 9660文件系统 光盘使用的标准文件系统, 6 jffs2文件系统 JFFS2是一个可读写的、压缩的、日志型文件系统,并提供了崩溃/掉电安全保护,克服了JFFS的一些缺点:使用了基于哈希表的日志节点结构 这些特点使JFFS2文件系统成为目前Flash设备上最流行的文件系统格式,它的缺点就是当文件系统已满或接近满时,JFFS2运行会变慢,这主要是因为碎片收集的问题 它是在闪存上使用非常广泛的读/写文件系统 方法一: mkfs.jffs2 –r rootfs –o rootfs.bin –pad=0x1000000 –e=0x20000 –n 将rootfs制作为jffs2镜像文件并拷贝到/tftpboot 烧写 –pad指定最终的jffs2镜像被填充的大小,若不用该选项制作的可能不是页对其的 -e 指定擦除的大小, jffs2文件系统烧写 #tftp 30008000 filesys.jffs2 #nand 和JFFS2相比它减少了一些功能,所以速度更快,而且对内存的占用比较小。

    8.5K20编辑于 2022-07-22
  • UBIFS:新一代嵌入式闪存文件系统详解

    │ 不适用于闪存 ┌──────▼───────┐ │ 第一代闪存 │ │ 文件系统 │ │ (jffs2 ───┘ ↓ ↓ ↓ "原材料" "加工处理" "成品应用" UBIFS vs JFFS2 vs YAFFS2 详细对比 特性 UBIFS JFFS2 YAFFS2 架构层级 两层(UBI+UBIFS) 单层 单层 挂载时间 ⚡ 非常快(O(1)) 慢(扫描全分区) 中等 内存占用 中等 ├─ NOR闪存 → 考虑 JFFS2 ├─ 小容量NAND(<256MB) → YAFFS2 或 JFFS2 └─ 大容量NAND(>256MB) → 继续判断 ↓ 问:性能要求优先级 ├─ 需要 → UBIFS 或 JFFS2 └─ 不需要 → YAFFS2 最终推荐: • 现代大容量设备:UBIFS • 传统小容量设备:JFFS2/YAFFS2 • 只读系统:SquashFS

    26710编辑于 2026-02-02
  • 来自专栏全栈程序员必看

    文件系统的类型简介「建议收藏」

    在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, ramdisk, ramfs等。 JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux,uCLinux中。 JFFS2 Jffs2: 日志闪存文件系统版本2 (Journalling Flash FileSystem v2)主要用于NOR型flash,基于MTD驱动层,特点是:可读写、支持数据压缩的日志型文件系统 缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。 与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。

    1.4K10编辑于 2022-09-29
  • 来自专栏嵌入式与Linux那些事

    S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统

    打印信息表示不支持该内核不支持yaffs文件系统,然后尝试使用ext3 ext2 cramfs vfat msdos iso9660等来挂载 烧写jffs2文件系统    在.config中搜索JFFS2 ,发现支持JFFS2文件系统 ?    write.jffs2 30000000 260000 $filesize set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2 dev/console c 5 1 sudo mknod –m 660 dev/null c 1 3   2)创建其它目录 mkdir mnt tmp root proc sys root 制作jffs2 的每页为2k,-e: NAND的每块为128kb //-d fs_mini_mdev_new:表示要制作的根文件系统文件 //-o fs_mini_mdev_new.jffs2:表示生成的映像文件   烧写jffs2

    2.1K30发布于 2021-05-20
  • 来自专栏公众号:Lucifer三思而后行

    电信-华为HS8145C光猫如何配置桥接模式

    echo sh.SendKeys "shell{ENTER}" >>tmp.vbs echo WScript.Sleep 1000 >>tmp.vbs echo sh.SendKeys "cp /mnt/jffs2 /hw_ctree.xml /mnt/jffs2/mycfg.xml.gz {ENTER}" >>tmp.vbs echo WScript.Sleep 1000 >>tmp.vbs echo sh.SendKeys "cd /mnt/jffs2{ENTER}" >>tmp.vbs echo WScript.Sleep 1000 >>tmp.vbs echo sh.SendKeys "aescrypt2 1 mycfg.xml.gz telnet cscript //nologo tmp.vbs del tmp.vbs 2.手敲代码获取 telnet 192.168.1.1 root adminHW su shell cp /mnt/jffs2 /hw_ctree.xml /mnt/jffs2/mycfg.xml.gz cd /mnt/jffs2 aescrypt2 1 mycfg.xml.gz tem gzip -d mycfg.xml.gz

    38.1K30发布于 2021-08-17
  • 来自专栏物联网IOT安全

    物联网安全|手把手带你制作恶意固件

    系统类型还包括了CRC校验等等 根据第二部分中的uImage头信息,可以发现内核为Linux-3.10.14 第三部分为两个SquashFS文件系统,SquashFS是一种只读文件系统 第四部分是一个JFFS2 "squashfs_1",0x200040,0x350000), Firmwarepart("squashfs_2",0x550040,0xa0000), Firmwarepart("jffs2 文件系统的提取,我们使用jefferson来实现: jefferson -d jffs2_out jffs2 提取之后检查一下敏感信息,shadow文件如下: 使用john破解一下 现在我们知道了root mksquashfs squashfs_1_out/ squashfs_1_new -comp xz -b 131072 我们再将之前的程序加上一个打包功能,这样我们就可以把这两个squashfs文件系统和jffs2 "squashfs_1",0x200040,0x350000), Firmwarepart("squashfs_2",0x550040,0xa0000), Firmwarepart("jffs2

    1.7K20发布于 2020-06-23
  • 来自专栏hank

    AMD PetaLinux 2022.1中部分语法改变,不支持IMAGE_CLASSES_remove、IMAGE_FSTYPES_DEBUGFS_remove、PREMIRRORS_prepend

    IMAGE_FSTYPES_remove = " .bin tar.gz tar.bz2 ext4 ext4.gx ext4.gz ext3 ext3.bz2 jffs2 cpio.bz2 cpio.xz cpio.lzma cpio.lz4" IMAGE_FSTYPES_DEBUGFS_remove = " .bin tar.gz tar.bz2 ext4 ext4.gx ext4.gz ext3 ext3.bz2 jffs2 PetaLinux 2022.1中,可以更改为如下: IMAGE_FSTYPES:remove = " .bin tar.gz tar.bz2 ext4 ext4.gx ext4.gz ext3 ext3.bz2 jffs2 cpio.lzma cpio.lz4" IMAGE_FSTYPES_DEBUGFS:remove = " .bin tar.gz tar.bz2 ext4 ext4.gx ext4.gz ext3 ext3.bz2 jffs2

    63810编辑于 2022-08-23
  • 来自专栏linux驱动个人学习

    各种根文件系统

    (1) jffs2   JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。 JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。    Jffs2: 日志闪存文件系统版本2 (Journalling Flash FileSystem v2)主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统 缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。目前jffs3正在开发中。 与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。

    3.2K80发布于 2018-03-07
  • 来自专栏韦东山嵌入式

    dnw驱动更新,支持全系统(xp,win7,win8/win10)

    ⑤ 烧写JFFS2文件系统映象:注意,烧了yaffs就不再需要烧jffs2,这是二选一! a. 在u-boot菜单界面输入“j”; b. 烧写了jffs2映象,就不需要再烧写yaffs映象 b. 烧写了jffs2映象后,还需要在串口中设置bootargs,添加:rootfstype=jffs2 设置bootargs方法: a. 执行命令: set bootargs root=/dev/mtdblock3 console=ttySAC0,115200 rootfstype=jffs2 save 新dnw驱动已经更新到jz2440

    3.5K20发布于 2020-09-30
  • 来自专栏嵌入式与Linux那些事

    S3C2440移植uboot之支持烧写yaffs映像及制作补丁

    烧写文件系统   尝试使用如下命令烧写JFFS2文件系统 tftp 30000000 fs_mini_mdev.jffs2 nand erase.part rootfs nand write.jffs2 30000000 0x00260000 5b89a8   修改启动参数 set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2   烧写JFFS2文件系统没问题   尝试使用如下命令烧写YAFFS文件系统 tftp 30000000 fs_mini_mdev.yaffs2 nand erase.part rootfs nand

    65730发布于 2021-05-20
  • 来自专栏Linux驱动

    第1阶段——uboot分析之硬件初始化start_armboot函数(5)

    bootcmd命令 s= getenv ("bootcmd"); } ... } /*bootcmd:启动命令 */ /*在uboot里输入print就会有这么一行"boodcmd=nand read .jffs2 0x30007FC0" */ /*当在开机bootdelay秒内未有串口输入,则会执行bootcmd命令: */ /*1.从NAND FLASH中读出内核到SDRAM的0x30007FC0中(nand read .jffs2

    1K50发布于 2018-01-03
  • 来自专栏韦东山嵌入式

    JZ2440在U-boot中通过网络方式烧录镜像的几种方法

    - show available NAND devices nand device [dev] - show or set current device nand read[.jffs2 ] - addr off|partition size nand write[.jffs2] - addr off|partiton size - read/write `size' bytes nand erase root nand write.jffs2 0x30008000 root $(filesize) #$(filesieze) 是 fs_mini.yaffs2 的大小 使用 jffs2 文件系统启动时记得修改 bootargs 添加 rootfstype=jffs2 Yaffs2: setenv bootargs console=ttySAC0,115200 root=/dev/mtdblock3 Jffs2: setenv bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2 最后执行保存更改、重启开发板就可进入新烧录的系统了

    2.3K40发布于 2020-11-03
  • 来自专栏全栈程序员必看

    生成initramfs_windows引导文件

    在嵌入式linux应用中,主要的存储设备为ram和flash,常用的基于存储设备的文件系统类型包括:jffs2,yaffs,cramfs,ramdisk,ramfs等。 jffs2:主要用于nor型flash,特点是可读写,支持数据压缩的日志型文件系统。 yaffs/yaffs2:主要用于nand型flash,支持跨平台。 cramfs:只读的压缩文件系统。 估计大家很少又听说过的,我也一样,但是我这次调试板子的时候用的NFS文件系统,发现固化文件系统时,没有什么好选择的,u-boot不能直接支持yaffs2,需添加补丁;ramdisk不能直接固化到flash上,jffs2

    1.1K10编辑于 2022-09-22
  • 来自专栏瓜大三哥

    集中索引文件系统

    主要有常用于磁盘存储器的Windows的FAT[26](File Allocation Table)系列和Linux的EXT[27](E-xtended File System)系列;另一种是日志闪存文件系统,主要有JFFS2

    98360发布于 2018-02-24
  • 来自专栏Linux驱动

    第4阶段——制作根文件系统 (4)

    9 mkfs.jffs2制作jffs2文件系统(参考linux应用手册375页) 9.1 安装zlib(压缩动态库) cd /work/GUI/xwindow/X/deps tar -xzf zlib- work/tools tar -xjf mtd-utils-05.07.23.tar.bz2 cd mtd-utils-05.07.23/util make sudo make install 9.3制作jffs2         */ 9.4 烧入板子中,并设置bootags参数为yaffs启动 在uboot中输入: set bootargs noinitrd  root=/dev/mtdblock3 rootfstype=jffs2  init=/linuxrc console=ttySAC0 // rootfstype:将root file system type(根文件系统类型)强制设为jffs2 然后save保存后重新启动内核

    3K100发布于 2018-01-03
领券