Linux - SquashFS文件系统

news/2024/12/29 1:58:41/

在构建Linux系统时,有时会有一个文件rootfs.squashfs,这个是linux的文件系统文件。另外还可能会有一个xImage的kernel文件和u-boot.bin的uboot文件。

===== ===== 

什么是SquashFS?

https://docs.kernel.org/filesystems/squashfs.html

Squashfs是一个用于Linux的压缩的只读文件系统。

它使用zlib、lz4、lzo或xz压缩算法来压缩文件、inodes和目录。文件系统中的节点占用空间非常小,所有的块都被打包,以尽量减少数据的开销。支持大于4K的块大小,最大支持1MB的块(默认块大小为128K)。

Squashfs旨在用于一般的只读文件系统,用于存档(即在可能使用.tar.gz文件的情况下),以及在需要降低存储开销的存储空间受限的块设备或存储系统(如嵌入式系统)。

squashfs是一个只读的文件系统,必须使用mksquashfs程序来创建被填充的squashfs文件系统。

当前最新版本是4.5.1,发布时间17th March 2022。

此文件系统的官网是:

http://www.squashfs.org/  (SQUASHFS - A squashed read-only filesystem for Linux)

squashfs-tools的开发分支在kernel.org上:

git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git

功能介绍:

支持的最大文件系统大小为2^64 Byte, 最大文件大小为2TiB,最大的块大小为1 MiB,支持软链接、硬链接等。

===== ===== 

什么是SquashFS?

https://zh.wikipedia.org/zh-cn/SquashFS

Squashfs(.sfs)是一套供Linux核心使用的GPL开源只读压缩文件系统。Squashfs能够为文件系统内的文件、inode及目录结构进行压缩,并支持最大1024KB的区段,以提供更大的压缩比。

Squashfs的设计是专门为一般的只读文件系统的使用而设计,它可应用于数据备份,或是系统资源紧张的电脑上使用。最初版本的Squashfs采用 gzip 的数据压缩。版本 2.6.34 之后的Linux内核增加了对 LZMA和 LZO 压缩算法的支持,版本 2.6.38 的内核增加了对LZMA2的支持,该算法同时也是xz使用的压缩算法。

版本 2.6.35 之后的内核包含的Squashfs增加了扩展文件属性支持。

Squashfs常被用于各Linux发行版的LiveCD中,也用于OpenWrt 和DD-WRT 的路由器固件。Chromecast也是该文件系统的用户。

发布时间:2009 (Linux 2.6.29),开发者:Phillip Lougher, Robert Lougher,最大文件尺寸16 EiB(Exbibyte, 1 PiB的1024倍),最大卷容量16 EiB,除了Linux系统支持也可跨平台使用。

===== ===== 

什么是SquashFS?

What is SquashFS

1.1. 简介

当创建微型和嵌入式Linux系统时,存储设备(软盘、闪存盘等)的每一个字节都是非常重要的,所以压缩被尽可能的使用。另外,压缩文件系统经常需要用于存档。对于巨大的公共存档,以及个人媒体存档,这是必不可少的。

SquashFS将这一切带到了一个新的高度。它是一个只读文件系统,可以让你压缩整个文件系统或单个目录,把它们写入其他设备/分区或普通文件,然后直接挂载(如果是设备)或使用回环设备(loopback device)(如果是文件)。SquashFS的模块化、紧凑型系统设计用起来很便利。用于文件存档时,SquashFS给你带来了比tarball归档更多的灵活性和速度性能。

SquashFS以Linux内核源码补丁(使SquashFS在你的内核中支持读取)、mksquashfs工具和unsquashfs工具的形式发布,前者用于创建压缩文件系统(在文件或块设备上),后者用于从现有的压缩文件系统中提取多个文件。

最新的SquashFS发布树是3.x,以前的是2.x。

1.2. SquashFS的概述

- 数据、节点和目录都可被压缩

- SquashFS存储完整的uid/gids(32位),以及文件创建时间

- 支持最大2^64字节的文件;文件系统可以达到2^64字节

- 节点和目录数据被高度压缩,打包单位为字节;每个压缩的节点平均长度为8字节(确切的长度因文件类型而异,即普通文件、目录、符号链接和块/字符设备的节点有不同的尺寸)。

- SquashFS可以使用高达64KB(2.x)和1MB(3.x)的块大小。默认的大小是128KB(3.x),这比正常的4K块大小实现了更大的压缩率。

- 在2.x版本中,引入了片段区块(fragment blocks)的概念:能够将小于区块大小的多个文件连接成一个区块,实现更大的压缩率。

- 检测并删除文件的重复部分

- 支持big和little endian架构;SquashFS可以挂载在不同字节序的机器上创建的文件系统。

1.3. Making it clear, 其他说明

为了理解的更加清楚,现在让我们加入一些进一步的讨论。让SquashFS工作的过程基本上包括以下几个步骤:

1,对目标Linux内核增加此SquashFS的patch并重新编译,以使SquashFS得到支持

2,编译mksquashfs和unsquashfs工具

3,用mksquashfs创建一个压缩的文件系统

4,测试:挂载一个压缩文件系统到一个临时位置

5,修改目标Linux系统的/etc/fstab或启动脚本,以便在需要时加载新的压缩文件系统

===== =====

如何查看SquashFS文件系统文件?

能够识别其压缩方式的软件都可以打开此类型文件,比如我用beyondCompare软件比较时,就能看到压缩内容。使用7zip等工具,也可以打开。


http://www.ppmy.cn/news/630805.html

相关文章

【uniapp 开发小程序】购物车功能,实现全选、反选、单选、计算总价

小程序购物车功能&#xff1a; <template><view><view class"goodlistItem" v-for"(item,index) in goodList" :keyindex><view class"group"><checkbox-group change"changeitem(item)" checked class&q…

uniapp 实现带参数跳转页面

文章目录 带参数跳转页面实现1. 触发跳转事件2. 跳转事件方法3. 跳转页面接收参数 带参数跳转页面实现 1. 触发跳转事件 <view click"click1"><view>跳转</view> </view>2. 跳转事件方法 click1() {uni.navigateTo({url: /xxx/xxx/xxx?i…

css样式自适应手机+平板+PC

css适配三端&#xff0c;head头部添加 <meta name"viewport" content"widthdevice-width,initial-scale1.0,maximum-scale1.0, user-scalableno"/> <meta http-equiv"X-UA-Compatible" content"IEEdge">css样式: 设备的…

select苹果手机样式设置

移动端界面中需要写一个select下拉框&#xff0c;但是苹果手机样式不兼容。 解决方法&#xff1a;是直接把原始样式去掉&#xff0c;自己设置了一个背景图片。 -webkit-appearance: none; appearance:none; -moz-appearance: none; -webkit-appearance: none; background: url…

去掉手机浏览器默认的按钮样式

最近做个小东西&#xff0c;一个手机项目。 里面要做一个按钮&#xff0c;设计稿如下&#xff0c; 很简单吧&#xff1f;代码就不贴了&#xff0c;反正Chrome模拟手机浏览是很OK的。 但是用手机真机测试&#xff0c;一脸蒙蔽&#xff0c;这个什么鬼&#xff1f;&#xff08; …

bootstrap框架写手机端app模板也很漂亮

通用的移动端电子商务模板&#xff0c;基于Bootstrap框架编码的购物商城app模板。很不错的设计与编码用最新的web技术&#xff0c;页面功能方面也很全面&#xff0c;包含常见的手机商城页面。 立即下载 在线预览 手机移动端电商App静态模板&#xff0c;UI用户体验很棒的手机…

手机怎么看html文档,手机怎么查看HTML

回答&#xff1a; 使用浏览器。 首先&#xff0c;需要打开.HTML文档需要使用浏览器打开才行。 解决方法&#xff1a;将文件拖到系统浏览器中进行打开。 下载手机百度&#xff0c;把文件放到手机百度中打开。 下载其它浏览器进行打开。 Iphone 6s可以使用默认的浏览器直接打开。…

html 手机端的meta,H5手机端网站开发meta参数全解析

先看看标准化H5移动端顶部meta 参数设置是如何&#xff1a;web_mobile 1、 指定的iphone中safari顶端的状态条的样式 &#xff0c;仅限苹果端。 参数&#xff1a;默认值为default(白色)&#xff0c;可以定为black(黑色)和black-translucent(灰色半透明) 2、 苹果设备中的safa…