squashfs介绍和安装
文章目录
- squashfs介绍
- squashfs版本
- squashfs源码下载
- squashfs编译安装
- 支持XZ_SUPPORT
- xz安装
- 实例
- 参考资料
squashfs介绍
SquashFS 是一套基于Linux内核使用的压缩只读文件系统。该文件系统能够压缩系统内的文档,inode以及目录,文件最大支持2^64字节。
SquashFS是基于GPL协议的开源软件。初始的版本使用gzip压缩,2.6.34版本Linux内核增加了支持LZMA和LZO压缩,并且在2.6.38内核版本上增加支持XZ压缩。
squashfs版本
SquashFS有几个不同的版本,这里给出一些主要的信息
Squashfs 4.2 : 最新的版本,并适用于2.6.29版本以后的Linux内核。
Squashfs 4.1 : 支持XZ压缩,并适用于2.6.29版本以后的Linux内核。
Squashfs 3.4 : 该版本是3.X的最后一个版本,并适用于2.6.29版本之前的内核。
squashfs源码下载
下载地址:
https://sourceforge.net/projects/squashfs/
https://www.squashfs-lzma.org
我下载的版本squashfs4.2.tar.gz
https://www.squashfs-lzma.org/downloads/squashfs4.2.tar.gz
squashfs编译安装
tar -xvzf squashfs4.2.tar.gz
cd squashfs4.2/
cd squashfs-tools/
vim Makefile #没有root权限要修改安装路径,修改INSTALL_DIR为你有安装权限的目录,例如我修改的路径是/home/mayue/usr
make
make install
编译和安装成功后会在安装路径下生成mksquashfs
和unsquashfs
两个命令工具。mksquashfs
负责压缩只读文件系统,unsquashfs
负责解压文件系统。
注:Squashfs编译安装默认不支持xz。
支持XZ_SUPPORT
打开squashfs-tools目录下的Makefile文件,将XZ_SUPPORT = 1前面的注释去掉。
操作如下:
vi Makefile #修改XZ_SUPPORT = 1
make clean
make
结果报错,错误如下:
$ make
cc -O2 -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"gzip\" -Wall -DGZIP_SUPPORT -DXZ_SUPPORT -DXATTR_SUPPORT -DXATTR_DEFAULT -c -o xz_wrapper.o xz_wrapper.c
xz_wrapper.c:28:18: 致命错误: lzma.h:没有那个文件或目录
编译中断。
make: *** [xz_wrapper.o] 错误 1
根据下面链接提示是需要下载和安装xz源码包 https://blog.csdn.net/snowpiaop/article/details/52982997
xz下载地址:https://tukaani.org/xz/
我这里下载的是 xz-5.2.5.tar.gz
xz安装
tar xzvf xz-5.2.5.tar.gz
cd xz-5.2.5
./configure --prefix=/home/mayue/usr
make
make install
编译安装成功就会在/home/mayue/usr目录下生产bin、include、lib、local、share目录和子文件。bin目录下有xz等命令、include目录下有lzma相关的头文件、lib目录下有liblzma.a等库。
将include下的头文件lzma.h和子目录lzma目录拷贝到squashfs-tools目录下。
将lib下的liblzma.a库拷贝到squashfs-tools目录下,这里准备使用静态库。
直接make编译提示找不到liblzma.a库。
再次修改squashfs-tools目录下Makefile文件,添加如下内容
LIBS += -L./ #添加当前目录到lib库文件搜索路径,为了找到liblzma.a库
再次进行make编译,编译成功。
执行make install将mksquashfs
和unsquashfs
安装到指定路径下。
注:使用支持xz的mksquashfs
压缩得到的文件系统,用不支持xz的unsquashfs
不能解压。
注:若需要一直使用mksquashfs
和unsquashfs
,需要将对应路径添加到环境变量。
实例
有app目录,目录下有myapp、initrun.sh、cmdtool三个文件,操作如下图
默认解压到squashfs-root目录,可指定目录,命令如下:
./unsquashfs -d mydir app.squash #解压到mydir目录,mydir目录不允许存在
查看帮助手册:
mksquashfs -h
unsquashfs -h
参考资料
https://baike.baidu.com/item/squashfs/6036237?fr=aladdin
https://blog.csdn.net/lurayvis/article/details/10242441#_Toc240991115
https://blog.csdn.net/qq_27901091/article/details/97617505
https://blog.csdn.net/wuqingwei/article/details/79235210
squashfs介绍和安装相关推荐
- Scrapy-Splash的介绍、安装以及实例
scrapy-splash的介绍 在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...
- Springlake-01 介绍功能安装
Springlake-01 介绍&功能&安装 1. 简介与功能 1)Springlake 是一个企业内容平台SECP 2)是一个可配置的系统,80%内容可以配置 3)允许建立和配置垂直 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- SharpWebMail介绍和安装(转)
SharpWebMail介绍和安装 什么是:SharpWebMail SharpWebMail是一款C#开发的基于WEB应用程序的多语言的WEB邮件服务.它允许我们使用SMTP或IMAP服务来完成发送 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- Storm介绍及安装部署
本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...
- LNMP基础架构介绍与安装
1.LNMP架构介绍 LNMP==Linux+Nginx+Mysql+PHP nginx:省资源,省cpu,所以在高并发时能够处理更多的请求,高端能达到3万到5万的并发量. nginx和LAMP不 ...
- 2.1 DNS服务介绍和安装
DNS服务介绍和安装 一 DNS概述 通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而是用域名就可以访问网络中的站点:即平常我们上网输入的都是域名,www.baidu.c ...
- openresty开发系列10--openresty的简单介绍及安装
openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...
最新文章
- emc存储设备型号_图解EMC CLARiiON CX4系列主要型号
- Android 通过反射让SQlite建表
- Redis学习笔记--Redis数据过期策略详解
- 回流,重绘的概念,以及他们的区别?
- ubuntu下apache rewrite的设置
- 网页“console”输出图文信息
- storm和vgj vgj_VGJ改名J.Storm专注北美赛区 收编新队
- C++--第20课 - 函数模板
- 用EasyPoi导入Excel
- java stream list转map
- 淘宝/天猫获得淘口令真实url API
- LC振荡器的工作原理
- Win10(Windows)系统中窗口切换 最大最小化窗口等快捷键
- efl是什么意思_efl是什么意思
- hyperv创建ubuntu20.10 ubuntu18.04虚拟机
- Windows实现微信双开
- C语言实现扫雷小游戏 纯小白 非黑窗口
- 计算机系古生物学,超级计算机模拟生命起源
- 2021-2027全球及中国BIM对象软件行业研究及十四五规划分析报告
- Visual Studio Code(VSCODE)语言设置为中文