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

当一个 Live CD 启动时,它将加载整个 Linux 系统环境。Live CD 所使用的正是这种高度压缩的只读 squashfs 文件系统,其中的 root 文件系统就被压缩存放在这个文件系统之中。

squashfs 系统支持以回环(loopback)的方式挂载,然后便可以访问其上的文件了,在访问这些文件时,它们就会被解压缩并装载在 RAM 中,而不需要将整个文件解压缩后才去访问其中的文件,这样一来访问速度就快多了。

我们可以打开一个 Ubuntu 的 Live CD ISO 文件,在目录 ISO_ROOT/casper/ 目录下可以看到 filesystem.squashfs 这个文件。squashfs 在其内部使用了如gzip和lzma这些压缩算法。

如果想创建 squashfs 文件,那么需要安装 squashfs-tools 软件包。

下面是创建 squashfs 工具 mksquashfs 的基本用法:

# mksquashfs command script_compressedfs.squashfs

Parallel mksquashfs: Using 1 processor

Creating 4.0 filesystem on script_compressedfs.squashfs, block size 131072.

[==============================================================================================================|] 12/12 100%

Exportable Squashfs 4.0 filesystem, data block size 131072

compressed data, compressed metadata, compressed fragments

duplicates are removed

Filesystem size 0.96 Kbytes (0.00 Mbytes)

58.55% of uncompressed filesystem size (1.63 Kbytes)

Inode table size 199 bytes (0.19 Kbytes)

41.29% of uncompressed inode table size (482 bytes)

Directory table size 174 bytes (0.17 Kbytes)

70.16% of uncompressed directory table size (248 bytes)

Number of duplicate files found 1

Number of inodes 15

Number of files 12

Number of fragments 1

Number of symbolic links  0

Number of device nodes 0

Number of fifo nodes 0

Number of socket nodes 0

Number of directories 3

Number of ids (unique uids + gids) 1

Number of uids 1

root (0)

Number of gids 1

root (0)

接下来我们创建一个目录,用来挂载刚才创建的文件系统:

# mkdir /mnt/squash

挂载刚才生成的文件:

# mount -o loop script_compressedfs.squashfs /mnt/squash/

# ls /mnt/squash/

cut  hello.c  paste  ver1.txt  ver2.txt  ver.patch

使用 -e 选项可以排除不希望被压缩的文件,如:

# mksquashfs /root/command script_compressedfs.squashfs -e /root/command/hello.c /root/command/paste

# mount -o loop script_compressedfs.squashfs /mnt/squash/

# ls -l /mnt/squash/

total 2

drwxr-xr-x 2 root root  31 2012-04-04 09:48 cut

-rw-r--r-- 1 root root  35 2012-04-03 12:15 ver1.txt

-rw-r--r-- 1 root root  35 2012-04-03 10:08 ver2.txt

-rw-r--r-- 1 root root 178 2012-04-03 12:15 ver.patch

如果要排除的文件很多,那么可以将这些文件写到一个文本中,然后使用 -f 选项指出该文本,如:

# mksquashfs /root/command script_compressedfs.squashfs -ef exclud_list

linux下squashfs使用方法,squashfs 文件系统简介相关推荐

  1. Linux下Web服务器应用之基础简介

    Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...

  2. linux下gdb调试方法和技巧详解

    linux下gdb调试方法和技巧整理 简介 UNIX或者UNIX-like下调试工具 启动gdb # 1. 在可执行程序不需要输入参数时,我们可以使用 gdb + 可执行程序 gdb ./typeid ...

  3. linux cpu uuid 查看,Linux下查看UUID方法介绍

    Linux下查看UUID方法介绍. 1. sudo blkid /dev/sda1: UUID="9ADAAB4DDAAB250B" TYPE="ntfs" / ...

  4. Linux下文件加密方法总结

    Linux下文件加密方法总结 为了安全考虑,通常会对一些重要文件进行加密备份或加密保存,下面对linux下的文件加密方法做一简单总结: 方法一:gzexe加密 这种加密方式不是非常保险的方法,但是能够 ...

  5. linux服务器新装hba卡,EmulexHBA卡在Linux下的安装方法

    EmulexHBA卡在Linux下的安装方法 Redhat 9.0+Emulex9002L+lpfc.gcc3.i386.tar 驱动的安装包括了3个部分: 1. 安装驱动程序 2. 编译驱动程序为驱 ...

  6. linux下安装teamviewer方法

    如题:linux下安装teamviewer方法 1:下载teamviewer安装包 2:在终端上进入放teamviewer安装包的目录下 3:执行命令:yum  install  teamviewer ...

  7. linux grep 去重_GPS卫星同步时钟(北斗授时设备)LINUX下配置NTP方法 - NTP校时服务器...

    GPS卫星同步时钟(北斗授时设备)LINUX下配置NTP方法 GPS卫星同步时钟(北斗授时设备)LINUX下配置NTP方法 京准电子科技官微--ahjzsz 第一种方法: 系统使用命令行配置: 在 L ...

  8. LINUX 下安装软件方法命令方法

    LINUX 下安装软件方法命令方法 怎么安装应用软件? 我的软件安装在什么地方? 如何删除不要的应用软件? -- 下面,我们就一起来认识一下这些方面的问题. 一. 解析Linux应用软件安装包: 通常 ...

  9. crontab的用法 linux,linux下定时执行任务的方法及crontab 用法说明(收集整理)

    linux下定时执行任务的方法 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时 ...

  10. linux下dns配置方法与常用dns

    linux下dns配置方法: 1.修改网卡配置文件 echo 'DNS1="114.114.114.114" ' >> /etc/sysconfig/network-s ...

最新文章

  1. 02.elasticsearch-meta-field元字段
  2. 网络流--最大流--POJ 1273 Drainage Ditches
  3. CF720C Homework(构造)(暴力)
  4. aws lambda使用_使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存
  5. mysql goldengate_goldengate同步mysql
  6. sqlserver导入execl数据ACE.OLEDB.12.0错误
  7. iOS模拟器上NSHomeDirectory和resourcePath的根路径不同
  8. android颜色表
  9. WEB2.0概念诠释
  10. python语音识别_Python语音识别终极指南
  11. hp 交换机远程连接_HP交换机简单配置方法
  12. Python xlsx转xls xls文件修复
  13. office2019_word_多级标题(四级以上heading的配置)/自定义样式heading style
  14. 20135323符运锦---信息安全系统设计基础第一周学习总结
  15. 讲明白——K8S各核心架构组件
  16. [ java ] 坦克大战 5.0 ~ 最终完整版
  17. 团队Github实战训练
  18. XILINX K7 DDR3引脚验证总结
  19. Java Robocode 以示例wall为基准的一个坦克
  20. DOS下打开3389端口

热门文章

  1. SELECTED联手微软小冰,推出人工智能系列服装
  2. springboot供应商管理系统 毕业设计-附源码121518
  3. 为什么打印文档一张却多打出两张、三张、多张
  4. 怎么处理文字和背景色相近
  5. Golang net/http包 同时监听多个端口
  6. python print函数中空格删除
  7. jqery图片展示效果
  8. 当 AI 踢进世界杯......
  9. 多大仇,这个离职证明大家怎么看?
  10. 详解汽车数字钥匙(Digital Key)规范