全部博文(133)
分类: LINUX
2011-06-13 21:07:44
最近接触到一种不是很熟悉的文件系统. 查了一下资料. 还蛮不错的.
embed Linux file system:%5Fasic/blog/item/ae5ee446859daa0f6a63e57b%2Ehtml
SquashFS HOWTO (一) ---简介
2008-07-23 10:57
1.SquashFS是什么
1.1 简介
当要创建一个很小或者嵌入式linux系统时,存储设备(如软盘,FLASH等)中的每 个字节都十分重要, 所以必须尽可能的在压缩每个地方.而且, 压缩的文件系统compressed file systems are frequently needed for archiving purposes. For huge public archives, as well as for personal media archives, this is essential.
SquashFS 将这些实现带到了新的高度.它是一个只读的文件系统, 它可以将整个文件系统或者没个单一的目录压缩在一起, 存放在某个设备, 某个分区或者普通的文件中. 如果你将其压缩到一个设备中, 那么你可以将其直接mount起来使用; 而如果它仅仅是个文件的化,你可以将其当为一个loopback 设备使用. SQ文件系统的设计令人欣喜. For archiving purposes, SQ可以让你更加灵活的使用, 而且它比.tar.gz文档有更快的响应速度.
SQ以一个linux内核源码的补丁的形式发布, 它附带了一个mksquashfs工具, 用于创建squashed文件系统(成为一个文件或者创建到一个block device上).
The latest SquashFS release tree is 2.x, the former one was 1.x. This document describes both these releases with proper notes given. For example, if some feature or parameter is different in these release trees, it will be written as follows: new value (2.x) or old value (1.x)
1.2 SQ概述
>数据(data),节点(inode)和目录(directories)都被压缩
>保存了全部的32位UID/GIDS和文件的创建时间. (注: cramfs是8位,没有创建时间)
>支持多达4G的文件系统. (cramfs是16M).
> 节点和目录都是高度压缩, 而且都是存储在字节边界(packed on byte boundaries); 所有压缩的节点长度平均在8个字节左右.(具体的长度根据文件的类型是不同的. 比如, 普通文件,目录,符号链接,块设备和字符设备的节点的大小就不一样)
>SQ可以允许块大小(block size)达32Kb(1.x)和64kb(2.x), 这样可以达到比4K块大小更大的压缩率.
>SQ2.X引进了碎片块(fragment blocks)的概念: 一种将许多比块size 小的文件存储在一个块中, 以达到更大的压缩率.
>重复的文件会被检测并删除掉.
>同时支持big和little endian架构. SQ可以将文件系统MOUNT到不同的字节顺序(byte-order)的机器上面.
1.3 如何编译SQ
编译使用SQ的基本步骤:
1.重新打包和编译linux内核, 使之支持SQ.
2.编译mksquashfs工具.
3.使用mksquashfs船舰一个压缩文件系统.
4.试用: mount suqashed文件系统到一个临时目录
5.如果需要的话,更改/etc/fstab 或者起始脚本, 以使linux操作系统自动加载新的SQ文件系统.