Linux - SquashFS文件系统
在构建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等工具,也可以打开。
Linux - SquashFS文件系统相关推荐
- linux下squashfs使用方法,squashfs 文件系统简介
squashfs 是一个高度压缩的只读文件系统,它可以将高达 2-3GB 的数据压缩到一个只有 700M 的文件中.如果你有使用到 Linux 的 Live CD ,那么你会看到 squashfs 的 ...
- Linux根文件系统的制作
1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(moun ...
- Linux虚拟文件系统
从文件 I/O 看 Linux 的虚拟文件系统 1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux ...
- DM365 linux内核文件系统的烧写步骤及其uboot参数配置
DM365 linux内核&文件系统的烧写步骤及其uboot参数配置 目录 源文档下载:http://download.csdn.net/detail/zhangjikuan/6443 ...
- Linux——根文件系统的制作(jffs2 and ubifs)
一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的第一个文件系统,系统引导启动程序 ...
- 嵌入式Linux根文件系统制作
嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...
- Linux flash 文件系统剖析
文章出自:http://www.ibm.com/developerworks/cn/linux/l-flash-filesystems/ 您之前可能听说过 Journaling Flash File ...
- 全面详细介绍Linux 虚拟文件系统(VFS)原理
一. 通用文件模型 Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式.Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存 ...
- Linux 虚拟文件系统(VFS)介绍
1. 通用文件模型 Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式.Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存 ...
最新文章
- 别在迷恋正则表达式解析html了,好吗?
- 高斯-赛德尔迭代法简介
- Stanford机器学习笔记-6. 学习模型的评估和选择
- 化验室计算机系统验证风险评估,计算机化系统验证风险评估报告.doc
- android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包
- java fragment_初步认识Fragment 之一 编写简单的fragment代码
- 学完Linux之后学什么语言,学习C语言一段时间后我们能做什么?
- 联想g500网卡linux驱动,联想g500无线网卡驱动下载-lenovog500无线网卡驱动v10.0.0.225 官方版 - 极光下载站...
- React.js小书
- 出去计算机写保护,u盘写保护怎么去掉
- 浅谈CSS calc()函数的用法
- CentOS 根目录下目录介绍
- 关于设置系统声音的方法
- python经典书记必读:Python编程快速上手 让繁琐工作自动化
- h3cr4900g3安装系统_H3C R4900 G2服务器通过HDM安装系统
- 雨听 | 英语学习笔记(五)~作文范文:学生退学
- hbuildx中文乱码
- Odoo免费开源ERP高级实施个性化定制请假单示例教程
- 【重要】有三AI-终极VIP会员首次发布,除课程外还享有5大权益
- 操作系统概述及各类操作系统特点
热门文章
- vue或者react的css样式初始(css样式重置)——reset.css与normalize.css
- 防火墙、网关、路由器
- 超全的PHP进阶知识点
- Python 批量将 Word 转换为 PDF
- java di是什么_Spring IOC和DI的理解有什么区别
- IOC和DI有什么区别
- 计算机小发明,第六届科技创新小发明设计大赛
- 计算机系统多媒体扩展指令集,计算机系统结构.ppt
- Namo for Mac(DNS服务器配置工具)
- HtmlEncode、HtmlDecode、UrlEncode、UrlDecode