在构建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文件系统相关推荐

  1. linux下squashfs使用方法,squashfs 文件系统简介

    squashfs 是一个高度压缩的只读文件系统,它可以将高达 2-3GB 的数据压缩到一个只有 700M 的文件中.如果你有使用到 Linux 的 Live CD ,那么你会看到 squashfs 的 ...

  2. Linux根文件系统的制作

    1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(moun ...

  3. Linux虚拟文件系统

    从文件 I/O 看 Linux 的虚拟文件系统 1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux ...

  4. DM365 linux内核文件系统的烧写步骤及其uboot参数配置

    DM365 linux内核&文件系统的烧写步骤及其uboot参数配置     目录 源文档下载:http://download.csdn.net/detail/zhangjikuan/6443 ...

  5. Linux——根文件系统的制作(jffs2 and ubifs)

    一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的第一个文件系统,系统引导启动程序 ...

  6. 嵌入式Linux根文件系统制作

    嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...

  7. Linux flash 文件系统剖析

    文章出自:http://www.ibm.com/developerworks/cn/linux/l-flash-filesystems/ 您之前可能听说过 Journaling Flash File ...

  8. 全面详细介绍Linux 虚拟文件系统(VFS)原理

    一. 通用文件模型 Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式.Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存 ...

  9. Linux 虚拟文件系统(VFS)介绍

    1. 通用文件模型 Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式.Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存 ...

最新文章

  1. 别在迷恋正则表达式解析html了,好吗?
  2. 高斯-赛德尔迭代法简介
  3. Stanford机器学习笔记-6. 学习模型的评估和选择
  4. 化验室计算机系统验证风险评估,计算机化系统验证风险评估报告.doc
  5. android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包
  6. java fragment_初步认识Fragment 之一 编写简单的fragment代码
  7. 学完Linux之后学什么语言,学习C语言一段时间后我们能做什么?
  8. 联想g500网卡linux驱动,联想g500无线网卡驱动下载-lenovog500无线网卡驱动v10.0.0.225 官方版 - 极光下载站...
  9. React.js小书
  10. 出去计算机写保护,u盘写保护怎么去掉
  11. 浅谈CSS calc()函数的用法
  12. CentOS 根目录下目录介绍
  13. 关于设置系统声音的方法
  14. python经典书记必读:Python编程快速上手 让繁琐工作自动化
  15. h3cr4900g3安装系统_H3C R4900 G2服务器通过HDM安装系统
  16. 雨听 | 英语学习笔记(五)~作文范文:学生退学
  17. hbuildx中文乱码
  18. Odoo免费开源ERP高级实施个性化定制请假单示例教程
  19. 【重要】有三AI-终极VIP会员首次发布,除课程外还享有5大权益
  20. 操作系统概述及各类操作系统特点

热门文章

  1. vue或者react的css样式初始(css样式重置)——reset.css与normalize.css
  2. 防火墙、网关、路由器
  3. 超全的PHP进阶知识点
  4. Python 批量将 Word 转换为 PDF
  5. java di是什么_Spring IOC和DI的理解有什么区别
  6. IOC和DI有什么区别
  7. 计算机小发明,第六届科技创新小发明设计大赛
  8. 计算机系统多媒体扩展指令集,计算机系统结构.ppt
  9. Namo for Mac(DNS服务器配置工具)
  10. HtmlEncode、HtmlDecode、UrlEncode、UrlDecode