squashfs文件系统

1、Squashfs文件系统简介

 squashfs是以linux 内核源码补丁的形式发布,附带mksquashfs工具,用于建立squash文件系统。squashfs能够将整个文件系统或者某个单一的目录压缩在一块儿, 存放在某个设备, 某个分区或者普通的文件中. 若是你将其压缩到一个设备中, 那么你能够将其直接mount起来使用; 而若是它仅仅是个文件,你能够将其当为一个loopback 设备使用. squashfs文件系统的设计使人欣喜.  For archiving purposes, 它可让你更加灵活的使用, 并且它比.tar.gz文档有更快的响应速度。node

 

  如下是squash文件系统的特色:
· 数据(data),节点(inode)和目录(directories)都被压缩。

· 保存了所有的32位UID/GIDS和文件的建立时间. (注: cramfs是8位,没有建立时间)。linux

· 支持多达4G的文件系统. (cramfs是16M)。架构

· 节点和目录都是高度压缩, 并且都是存储在字节边界(packed on byte boundaries); 全部压缩的节点长度平均在8个字节左右.(具体的长度根据文件的类型是不一样的. 好比, 普通文件,目录,符号连接,块设备和字符设备的节点的大小就不同)。工具

· squashfs能够容许块大小(block size)达32Kb(1.x)和64kb(2.x), 这样能够达到比4K块大小更大的压缩率。oop

·  squashfs 2引进了碎片块(fragment blocks)的概念: 一种将许多比块size 小的文件存储在一个块中, 以达到更大的压缩率。spa

· 重复的文件会被检测并删除掉。操作系统

· 同时支持big和little endian架构. SQ能够将文件系统MOUNT到不一样的字节顺序(byte-order)的机器上面。设计

 

 编译使用SQ的基本步骤:
  1.从新打包和编译Linux内核, 使之支持SQ.
  2.编译mksquashfs工具.
  3.使用mksquashf建立压缩文件系统.
  4.试用: mount suqash文件系统到一个临时目录.
  5.若是须要的话,更改/etc/fstab 或者起始脚本, 以使linux操做系统自动加载新的 squashfs 文件系统.开发

 

 squashfs是一个只读压缩文件系统,对嵌入式来讲,能够减小成本,在使用nand flash做为存储设备的开发板来讲,要使用squashfs首先内核当中要有对squashfs的支持,同时还要有对mtd字符设备和块设备的支持。文档

通常能够用于制做Android的ROM分区;

2、构建squash文件系统

 https://www.ibm.com/developerworks/cn/linux/1306_qinzl_squashfs/

相关文章
相关标签/搜索