linux中创建压缩文件系统----squashfs
简介squashfs程序能够创建出一种具有超高压缩率的只读型文件系统。它能够将2GB~3GB的数据压缩成一个700MB的文件。Linux LiveCD(或是LiveUSB)就是使用squashfs创建的前情提要所有的现代Linux发行版都支持挂载squashfs文件系统。但是创建squashfs文件的话,则需要使用包管理器安装squashfs-tools:可以使用apt或者yum安装实战演练(1)
简介
squashfs程序能够创建出一种具有超高压缩率的只读型文件系统。它能够将2GB~3GB的数据压缩成一个700MB的文件。Linux LiveCD(或是LiveUSB)就是使用squashfs创建的
前情提要
所有的现代Linux发行版都支持挂载squashfs文件系统。但是创建squashfs文件的话,则需要使用包管理器安装squashfs-tools:
可以使用apt或者yum安装
实战演练
(1)使用mksquashfs命令添加源目录和文件,创建一个squashfs文件:
SOURCES可以是通配符、文件或目录路径。
例如:
root@fff-PC:~# sudo mksquashfs /var/log test.squashfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on test.squashfs, block size 131072.
[====/ ] 150/2984 5%
Unrecognised xattr prefix system.posix_acl_access
[========| ] 315/2984 10%
Unrecognised xattr prefix system.posix_acl_access
[==============/ ] 534/2984 17%
Unrecognised xattr prefix system.posix_acl_access
[====================| ] 729/2984 24%
Unrecognised xattr prefix system.posix_acl_access
[=====================/ ] 773/2984 25%
Unrecognised xattr prefix system.posix_acl_access
[=======================- ] 846/2984 28%
Unrecognised xattr prefix system.posix_acl_access
[=========================/ ] 943/2984 31%
Unrecognised xattr prefix system.posix_acl_access
[=============================/ ] 1073/2984 35%
Unrecognised xattr prefix system.posix_acl_access
[========================================/ ] 1466/2984 49%
Unrecognised xattr prefix system.posix_acl_access
[==================================================\ ] 1827/2984 61%
Unrecognised xattr prefix system.posix_acl_access
[====================================================| ] 1926/2984 64%
Unrecognised xattr prefix system.posix_acl_access
[======================================================/ ] 1994/2984 66%
Unrecognised xattr prefix system.posix_acl_access
[========================================================- ] 2069/2984 69%
Unrecognised xattr prefix system.posix_acl_access
[==========================================================\ ] 2140/2984 71%
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_access
[===============================================================| ] 2314/2984 77%
Unrecognised xattr prefix system.posix_acl_access
[=================================================================/ ] 2384/2984 79%
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_access
[=====================================================================- ] 2520/2984 84%
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_access
[=========================================================================| ] 2658/2984 89%
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_default
Unrecognised xattr prefix system.posix_acl_access
Unrecognised xattr prefix system.posix_acl_default
Unrecognised xattr prefix system.posix_acl_access
File /var/log/messages changed size while reading filesystem, attempting to re-read
[===========================================================================/ ] 2761/2984 92%
File /var/log/syslog changed size while reading filesystem, attempting to re-read
File /var/log/user.log changed size while reading filesystem, attempting to re-read
[==================================================================================-] 2984/2984 100%
Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 31756.07 Kbytes (31.01 Mbytes)
8.58% of uncompressed filesystem size (370210.63 Kbytes)
Inode table size 7576 bytes (7.40 Kbytes)
43.45% of uncompressed inode table size (17438 bytes)
Directory table size 2034 bytes (1.99 Kbytes)
41.86% of uncompressed directory table size (4859 bytes)
Xattr table size 182 bytes (0.18 Kbytes)
33.09% of uncompressed xattr table size (550 bytes)
Number of duplicate files found 10
Number of inodes 165
Number of files 147
Number of fragments 12
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 18
Number of ids (unique uids + gids) 5
Number of uids 2
root (0)
www-data (33)
Number of gids 4
root (0)
adm (4)
utmp (43)
systemd-journal (101)
root@fff-PC:~#
(2)利用环回形式挂载squashfs文件:
root@fff-PC:~# mkdir /mnt/squash
root@fff-PC:~# sudo mount -o loop test.squashfs /mnt/squash/
root@fff-PC:~# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
udev devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 391M 3.1M 388M 1% /run
/dev/sda3 ext4 121G 7.2G 107G 7% /
tmpfs tmpfs 2.0G 14M 1.9G 1% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 ext4 1.5G 107M 1.3G 8% /boot
tmpfs tmpfs 391M 40K 391M 1% /run/user/1000
tmpfs tmpfs 391M 0 391M 0% /run/user/0
/dev/loop0 squashfs 32M 32M 0 100% /mnt/squash
补充内容
可以指定其他选项来定制squashfs文件系统。在创建squashfs文件时排除部分文件选项-e可以排除部分文件和目录:
其中,选项-e用于将文件/etc/passwd和/etc/shadow排除在外。也可以将需要排除的文件名列表写入文件,然后用选项-ef指定该文件:
如果希望在排除文件列表中使用通配符,需要使用-wildcard选项。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)