纯属好奇能力有限,大神请无视,个人愚见,不喜一起共同学习思考啊 由于能力和时间关系没有搞定解包之后封包还原错误问题,只是简单写下过程。期待大神出现解决心理纠结.
squashfs文件介绍
当创建微小尺寸和嵌入式[Linux]系统中,存储设备(如u盘,闪存盘,路由器固件等)的每个字节是非常重要的,因此,使用压缩到处可能的。 此外,经常需要存档的目的压缩文件系统。 对于庞大的公共档案馆,以及用于个人媒体档案,这是必不可少的工具目前压缩能力最强大的工具(不知是否有之一,能力有限)
squashfs是一个只读文件系统(压缩内部文件目录结构权限可以自定义),可以压缩整个文件系统或单个目录,并将其写入到其他设备/分区或普通文件,然后直接安装squashfs文件(如果设备)或使用回送设备(如果是一份文件)。 的squashfs的模块化,紧凑的系统设计是福。 为了存档,squashfs的为您提供了更多的灵活性和性能的速度比压缩包存档。
Squashfs的分布作为Linux内核源代码的补丁(使Squashfs的阅读你的内核支持).
下载squashfs
squashfs官网http://squashfs.sourceforge.net/ 它包含了最新版本的消息,它的更新日志,以及有关的squashfs的一些常用信息。 Squashfs的最新版本的项目主页在SourceForge。
安装Squashfs文件
下载squashfs-tools命令:
wget下载
wget http://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.2/squashfs4.2.tar.gz/download
apt-get安装
apt-get install squashfs-modules-4.2 squashfs-tools
解压刚下载的squashfs
(刚才下载的文件名是download直接修改为):
tar -zxvf squashfs4.2.tar.gz
进入squashfs-tools
cd squashfs4.2/squashfs-tools
安装命令
make &&make install
mksquashfs的一些注意事项:
当新的文件添加到新的文件系统或添加到现有的,mksquashfs将自动重复名称重命名文件:如果两个或多个文件命名文本将出现在同一个生成的目录,第二个文件将被重新命名为文本1 ,第三个到文本_2等。 重复的文件将被删除,这样就会有只有一个物理实例(通过的squashfs 4.x中,您可以禁用与-no-重复选项检测/去除重复的)。
如果目标上有一个预先存在的squashfs文件系统,默认情况下,新中源项目将被附加到现有的根目录。 检查下面的选项表强制mksquashfs覆盖整个目标及/或更改添加了新的源项目的方式。
如果一个源文件或目录,就变成了在一个新创建的文件系统的根。 如果两个或多个源文件和/或目录中给出,它们都将成为新的文件系统的根目录的子项。
由此产生的文件系统将被填充到4 KB的倍数:这是必需的块设备上所使用的文件系统。 如果你非常肯定你没有这个定义,使用-nopad选项来禁用此操作。
mksquashfs工具的命令行选项
创建打包squashfs文件:
mksquashfs工具,它创建压扁的文件系统(在文件或块设备) 命令如下:
mksquashfs src/ src.013
/*mksquashfs 文件目录/文件目录 文件名.任意后缀*/(反正是二进制文件)
解压squashfs文件
unsquashfs工具,从提取的多个文件现有压扁的文件系统。
-v[ersion] 打印版,许可证和版权信息
-i[nfo] 打印的文件都是从文件系统中提取
-l[ist] 列出文件系统没有被解压文件
-li 他们的属性,他们是unsquashed文件列表(3.3)
-ll 没有任何提取属性的压扁的文件系统中的文件列表(3.3)
-d[estination] path 指定unsquashed项目的目标路径
-f[orce] 显示文件系统的超级块信息(它可以发现用于压缩文件系统版本和选项)(3.3)
-s[tat] 提取的目录或文件的列表(条目每行一个)(3.3)
-e[f] [extract file] 对提取物的名称作为POSIX正则表达式(3.3)
-r[egex]
unsquashfs src.013
/home/ro.fs /mnt squashfs loop 0 0
unionfs /home/user1 unionfs dirs=/home/rw.fs=rw:/mnt=ro 0 0
这个未知不知道什么原因 直接输入文件夹目录下面的文件一直保存 目录不存在 能力有限 原因未知 我只好把文件拖到home下面用unsquashfs src.013来解压(尴尬)
最新的squashfs版本树是3.x中,前者是2.x版本 本文档介绍给予适当的笔记都这些版本。 例如,如果某些功能或参数,在这些发行的树木不同,它会被写入如下: 新值(3.X)或旧值(2.X)目前最新版本是4.3但是官网好像不是原因未知。
Squashfs的概述
数据显示,i节点和目录被压缩
Squashfs的文件充满UID /导报(32位),以及文件的创建时间
文件达到2 ^ 64字节的支持; 文件系统可以达到2 ^ 64字节
索引节点和目录数据是高度压缩,并在包装字节边界; 每个压缩索引节点是平均长度为8个字节(确切长度文件类型,即普通文件,目录,符号链接,和块/字符设备的inode大小不同而异)
Squashfs的可使用的块大小最多可达64 KB(2.X)以及1MB(3.X)。 默认大小为128KB(3.X),达到更高的压缩率比正常4K块大小
按在4.x版本据介绍片段块的概念:加入多个文件小于块大小小到一个单一的块的能力,实现更大的压缩比
被检测到并删除重复文件
既大和little endian架构的支持; Squashfs的可以安装在不同的字节顺序的机器创建的文件系统
本文由 liberxue 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2016-03-10 00:00:00