Linux - SquashFS文件系统

news/2024/4/27 13:22:35/文章来源:https://blog.csdn.net/guoqx/article/details/127245531

在构建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.luyixian.cn/news_show_398815.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经典面试题-LeetCode69/剑指 Offer II 072:x 的平方根 (Python3实现)】

x 的平方根一、题目描述1.题目内容2.样例二、解决方案1.基本代码(成功提交)2.略微拓展一、题目描述 这是一道经典的面试题,需要我们在不使用任何内置函数的前提下,手动实现求指定整数的算术平方根。 1.题目内容 给你一个非负整数…

Android开发——底部导航栏设计

底部导航栏设计1.依赖配置2.tabbar的UI实现3.tabbar的逻辑绑定4.tabbar的滑动与点击联动其实,常见的Android和微信小程序一样,通常最下面一排需要有一排导航栏,可以通过点击导航栏图标和滑动实现页面跳转,具体实现使用的是Android的 ViewPage…

在MUI框架中对于事件绑定与取消和监听的触发自定义的深入运用与实战

事件绑定 除了使用addEventListener()方法侦听特定元素上的事件外,还可以使用。on()方法实现批元素的事件绑定。 event Type: String 需监听的事件名称,例如:‘tap’ selector Type: String 选择…

MySQL集群搭建——主从同步(一主二从)

一、安装MySQL数据库 Centos7安装MySQL5.7 目前准备了三台服务器作为主从配置数据库 #主 192.168.159.100:3306 #从 192.168.159.101:3306 #从 192.168.159.102:3306二、修改主数据库配置文件 vim /etc/my.cnf #在mysqld模块中添加如下配置信息 #开启二进制日志 log-binmast…

Win10家庭版利用Hyper-V虚拟机安装Kali Linux

目录 安装Hyper-V 批处理安装 重启电脑 下载Kali镜像 Kali官网下载 Hyper-V虚拟机 创建虚拟机 启动虚拟机 安装Kali 安装前配置 磁盘分区 系统安装 登录系统 近期学习网络安全的相关内容,需要用到很多的安全工具。偶然得知Kali Linux就是专门为网络安…

SD-WAN是面向分支机构的新兴、不断发展的解决方案

在过去的二十年里,人们的工作方式发生了很大变化。共享办公空间、移动性和云现在很常见。业务分散,分支机构得到授权。 当然,这个新功能是一件好事。但是,与此同时,它提出了一个巨大的挑战:多协议标签交换(…

【潮流计算】基于matlab粒子群算法优化电力系统潮流计算【含Matlab源码 2157期】

一、粒子群算法简介 1 标准粒子群优化(PSO)算法 PSO算法根据对环境的适应度将群体中的个体移动到好的区域,将每个个体看作是D维搜索空间中的一个粒子,根据粒子本身的飞行经验和群体中其他同伴的飞行经验调整下一步飞行方向,从而搜索到最好的空间位置解。设第i个粒子的位置表示…

什么是 IoT App SDK?

目录 为什么要开发 IoT App? IoT App SDK 的优势 IoT App SDK 分类 智能生活 App SDK 商用照明 App SDK 智慧社区 App SDK 智慧居住 App SDK 行业 App SDK 其他概念 IoT 设备 通信过程 IoT 云平台 智能面板 名词解释 涂鸦 IoT App SDK 是专为物联网移…

沉睡者IT:你理解的元宇宙是怎样呢?

这半年来关于元宇宙的话题成为了一场舆论的热点,很多即使是从事与其毫无相关职业的人,也多少有些耳闻。 ​ 编辑 但是对于元宇宙,它是什么,为什么需要元宇宙,怎样才能建立元宇宙以及大家对元宇宙的看法,…

Hack The Box靶机——Ambassador

文章目录前言一、Web部分二、提权部分前言 难度:中等,Hack The Box网站在线靶机。本文涉及知识点有:Grafana系统任意文件读取,CURL下载文件,SSL本地端口转发,Consul命令执行。 靶机地址:1…

【windows kernel源码分析】对初学者友好的底层理解,让你对计算机内核不再迷茫

文章目录🍃概念梳理windows kernel引导加载程序完成后的RAM内容🍑实现过程--还是看原文吧 🌸参考原文链接对市面上的文章再做一次整合。给渴望得到内核知识的人提供一些帮助。 🍃博主昵称:一拳必胜客 博主主页面链接&a…

各种平均值:算术平均值,几何平均值,调和平均值等

平均值概述 平均数反映了一组数据的一般水平,最常见的平均数是算术平均数,除了算数平均数外,还有几何平均数,调和平均数,加权平均数等。 算术平均值(Arithmetic Mean) 公式解读:表…

list全部功能模拟实现

目录&#xff1a; list的深度剖析及模拟实现 list底层是双向循环链表 ------而实现list最重要的就是迭代器类的实现 下面我们会重点学习迭代器 list整体接口函数罗列 //模拟实现list底层---全部功能 namespace std {//结点类模拟实现template<class T>struct list_node…

java数据结构-------栈和队列

文章目录1、栈(Stack)1、什么是栈2、栈中常使用的方法3、栈的应用场景1、逆序打印链表2、有效的括号2、队列(Queue)1、什么是队列2、队列的使用3、循环队列目标&#xff1a;1、 栈的概念及使用&#xff0c;2、 队列的概念及使用&#xff0c;3.、相关OJ题1、栈(Stack) 1、什么是…

FISCO BCOS(十五)——— Windows下的go环境配置及beego环境配置并解决bee run报错问题

1、下载地址 https://golang.google.cn/dl/2、双击打开下载的文件&#xff0c;一路按照默认点击下一步&#xff0c;&#xff08;安装位置可选&#xff0c;默认安装在c盘&#xff09; 3、go环境配置&#xff08;很重要的&#xff09; 在系统变量名中新建变量名&#xff1a;GOP…

Java如何生成花里胡哨的二维码

目录一、序言二、找资料1、寻觅文档2、寻觅代码三、代码示例1、简单的二维码2、带颜色的二维码3、带logo的二维码四、工具类封装一、序言 之前在做头马演讲俱乐部哼哈官可视化汇报报告时&#xff0c;为了方便大家移动端查看可视化报告&#xff0c;而不是通过点击链接这种生硬的…

Android 面试java知识小结

1.-1的二进制是多少&#xff0c;怎么算出来的&#xff1f; 1111 1111 在计算机里是以补码的形式存在的&#xff0c;那为什么要使用补码呢&#xff1f; 计算机中的有符号数有三种表示方法&#xff0c;即原码、反码和补码。三种表示方法均有符号位和数值位两部分&#xff0c;符号…

如何使用界面控件DevExpress WinForms自带的UI模板?其实很简单

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

科研工具总结

科研工具总结 1、论文检索网站2、自己收集数据集----并构建数据集2.1数据集来演方式:3种3、怎么进行一个算法的调研?泛读论文:精读论文:1、论文检索网站 Connected papers:一个基于知识图谱的论文检索网站 特点:圆圈的半径越大表示论文越经典,引用数量比较多; 论文的新…

python与人工智能:KNN近邻法识别手写数字

机器学习分类&#xff1f; 1 特征&#xff08;feature&#xff09; 数据是区分事物和事物的关键。 举例&#xff1a;不同类型的书&#xff0c;我们用书的内容来对它进行分类 2 标签&#xff08;label&#xff09; 数据的标签&#xff0c;显示的分类结果。 举例&#xff1a;书属…