超高压缩率的squashfs文件系统

转:http://blog.itechol.com/space-752-do-blog-id-5801.html

简介:
    squashfs是一种只读型的超高压缩率文件系统,这种文件系统能够将2GB-3GB的数据压缩成一个700MB的文件。你有没有想过Linux Live CD是怎样运行的?当Live CD启动后,它会加载一个完整的linux环境。这就是利用了一种被称为squashfs的制度型压缩文件系统。它将根本文件系统保存在一个压缩过的文件系统文件中。这个文件可以使用环回的形式来挂载并对其中的文件进行访问。因为当进程需要某些文件,可以将它们解压,然后载入内存中使用。如果需要构建一个定制的Live OS,或是需要使用超高压缩率的文件并且无需解压就可以访问文件,那么squashfs的相关只是就能派的上用场。要解压个头较大的压缩文件,那可得花上一阵功夫。但如果将文件以环回形式挂载,速度就会飞快,因为只有出现访问请求的时候,对应的部分压缩文件才会被解压缩。而普通压缩方式是首先解压缩所有的数据。让我们来看看如何使用squashfs。 
1.1 预备知识
    如果你有一张Ubuntu CD,可以在CDRom ROOT/casper/filesystem.squashfs中找到文件.squashfs。squashfs在内部采用了gzip和lzma这类压缩算法。所有最新的linux发行版本都支持squashfs。但要想创建squashfs文件,需要额外安装squshfs-tools软件包。该包在系统盘内有。 
1.2 实战演练
    通过添加源目录和文件,创建一个squashfs文件:
    $ mksquashfs SOURCES test.squashfs
    SOURCES部分可以使用通配符或文件、目录路径。
    例如:
    $ mksquashfs /var/ var.squashfs
    Creating little endian 3.0 filesystem on var.squashfs, block size 65536.
    Little endian filesystem, data block size 65536, compressed data, compressed 
    metadata,compressed fragments   
    还有更多细节信息会出现在终端上。犹豫版面的限制,这里就不在列出这些信息了。详情自查。
    要挂载squashfs文件,利用环回形式进行挂载:
    $ mkdir /mnt/squashfs
    $ mount -t squashfs -o loop var.squashfs /mnt/suqashfs
    你可以通过/mnt/squashfs复制其中的内容。 
1.3 补充内容
    可以指定额外参数来创建squashfs文件系统。让我们来看一些其他的命令选项。
    在创建squashfs文件时排除部分文件
    创建squashfs文件时,我们可以排除部分文件,这些文件可以用文件列表形式指定,也可以用通配符来指
定。
    使用选项-e,将需要排除的文件列表以命令行参数的方式来指定。例如:
    $ mksquashfs /etc test.squashfs -e /etc/passwd /etc/shadow
其中,选项-e用于排除文件passwd和shadow。
    也可以将需要排除的文件名写入文件,然后用-ef指定该文件:
    $ cat excludelist
    /etc/passwd
    /etc/shadow    
    $ mksquashfs /etc/ test.squashfs -ef excludelist
    如果希望在排除文件列表中使用通配符,那么可以使用-wildcard选项。

    A+
发布日期:2014年05月01日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: