惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
WordPress大学
WordPress大学
小众软件
小众软件
IT之家
IT之家
腾讯CDC
月光博客
月光博客
量子位
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 邗影

TOF传感器 opengl渲染YUV的波浪百叶窗效果 3D融合场景demo 传感器 关于音频PA结构腔体 球面渲染 关于linux和shi脚本常用的通配符 关于fread读不满一块和读不满count的返回值 如何去掉merge UBI的覆盖写和擦除 DTSI 多个模块共用同一个 GPIO 引脚冲突 问题汇总 debug比release程序启动的快 关于CPU占用优先级的调整 关于蜂鸣器发声 麦序与声源定位 软连接生成 线程退出未定义行为 linux文件查找 C语言弱函数 数据传输报错port unreachable D3D11绘制三角形 关于延迟测试 v4l2检测 关于数据库的性能 流媒体小记包含一些面试问题 v4l2视频采集 流媒体ZLM配置vscode远程开发 关于SPS中的帧率问题 Linux编译问题 SSl冲突问题
关于squashfs压缩挂载
邗影 · 2026-04-02 · via 博客园 - 邗影

嵌入式常用的一种压缩方式squashfs;

一、squashfs优缺点
(1)优点
高压缩率:SquashFS 使用 gzip、lzma、lz4、xz 等压缩算法,能够显著减少文件系统的大小,节省存储空间。

只读特性:适合用于需要保护数据完整性的环境,如嵌入式系统和操作系统的只读镜像。

高效的随机访问:SquashFS 支持高效的随机读取访问,适合读取频繁的场景。

碎片处理: 通过 Fragment Table,SquashFS 能有效处理小文件,减少存储碎片,提高存储效率。

存储和性能优化: 支持文件、目录和 inode 的压缩,减少了存储占用和 I/O 操作,提高了性能。

数据完整性:SquashFS 可以包含校验和,用于确保数据的完整性和防止数据损坏。

(2)缺点
只读特性:SquashFS 是只读的,不能直接修改文件系统中的文件或目录。这意味着需要更新或更改文件系统时,必须重新生成整个文件系统镜像。

压缩开销:虽然读取速度较快,但解压缩过程仍然需要一定的 CPU 资源。在低性能的嵌入式系统中,这可能会对系统性能产生一定影响。

内存消耗:在读取大文件时,解压缩过程可能会消耗大量内存,尤其是在资源受限的嵌入式系统中,这可能会成为一个瓶颈
(来源:https://blog.csdn.net/li_wen01/article/details/157354547)

二、挂载sqfs的方式方法

1、mount方式

挂载源(/dev/***),挂载点(/mnt/***):df -h 可查看     /dev/***/abc(实物磁盘名称)------/mnt/****/abc(相当于一个快捷方式)

将sqfs用fwrite写入挂载源(即下边函数的参数1)对应的具体实际磁盘位置,然后执行mount:mount(挂载源, 挂载点, squashfs, 0, NULL);

mount(
    "/opt/xxx.sqfs",   // 1. __special_file  要挂载的文件/设备
    "/custom/audio",   // 2. __dir          挂载到哪个目录
    "squashfs",        // 3. __fstype       文件系统类型
    MS_RDONLY | MS_LOOP,//4. __rwflag       只读+loop挂载
    NULL               // 5. __data         额外参数
);

2、ubi方式

通过df -h检查挂载,状况umount旧的挂载

然后将文件写入分区不再使用fwrite而是使用(ubiupdatevol);ubiupdatevol会自动获得文件的大小,再完成ioctl和写入;

然后继续执行挂载mount操作;