关于squashfs压缩挂载

嵌入式常用的一种压缩方式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操作;

 

posted on 2026-04-02 15:01  邗影  阅读(2)  评论(0)    收藏  举报

导航