今天会有这篇分享,是因为我定制的linuxmintliveos最新版可以支持通过挂载.squashfs 文件来安装系统了,所以提前做个科普。
经常玩 Linux 的朋友,大概率在制作 Live 启动盘、下载系统镜像包时,见过 .squashfs 这个后缀的文件——它不像 zip、rar 那样普及常见,初次见到难免会心生疑惑:这到底是个啥?和普通压缩包有区别吗?又能用来做什么?比如我们下载 Linux Mint 22.3 镜像,解压后就能在 casper 目录下找到一个名为 filesystem.squashfs 的文件,这就是整个 Linux Mint Live 系统的核心。
其实不用做复杂联想,它和 Windows 系统里大家熟悉的 .wim、.esd 文件是妥妥的“同门兄弟”,专门为 Linux 系统量身打造,用途远比我们想象中更重要,更是 Linux 生态里不可或缺、应用广泛的核心文件之一。就像我们装 Windows 时,install.wim 是系统安装的核心,.squashfs 就是 Linux 系统启动和分发的“核心载体”。
今天就抛开晦涩的技术术语,用最直白、最接地气的话,把 .squashfs 讲得明明白白,哪怕是刚接触 Linux 不久的新手,也能一眼看懂、轻松理解~
一句话搞懂:.squashfs 是什么?
简单来说,.squashfs 是 Linux 专属的高压缩只读文件系统镜像,通俗点理解就是「Linux 版的系统压缩包 + 只读虚拟硬盘」,它的核心优势的是不用复杂操作就能直接“使用”,而非像普通压缩包那样,必须全部解压后才能查看和使用里面的内容。比如我们把一个完整的 Linux Mint 系统打包成 .squashfs 文件,不用解压,就能直接挂载查看里面的 /etc、/usr 等系统目录,甚至能直接基于这个文件启动系统。
对应到 Windows 系统,它的作用和我们装系统时见过的 install.wim、install.esd 文件完全一致——本质就是把整个 Linux 系统的核心文件、预装软件、各类自定义配置,一次性打包压缩成一个文件,方便用户用来安装系统、制作可直接启动的 Live 启动盘,或是批量分发系统镜像,大大降低操作难度和传输成本。比如运维人员给几十台服务器部署相同的 Linux 系统,不用逐台安装,只需分发 .squashfs 镜像,挂载后就能快速部署,效率大幅提升。
3个核心特点,一眼分清它和普通压缩包
很多刚接触 Linux 的朋友,很容易把 .squashfs 和 zip、rar 这类普通压缩包混淆,但其实二者的差别很大,用途也完全不同。.squashfs 有3个独有的核心优势,这也是它能成为 Linux 系统标配格式的关键原因:
✅ 超高压缩,省空间:它是专为 Linux 系统文件优化设计的压缩格式,压缩效率比普通 zip、rar 压缩包更高,能把几 GB 大小的完整 Linux 系统,压缩到更小的体积,不管是制作 Live U 盘节省存储空间,还是在线分发系统镜像节省流量,都特别实用。举个例子,一个约 8GB 的 Linux Mint 完整系统,打包成 .squashfs 后,体积可压缩到 2-3GB 左右,而用 zip 压缩只能压缩到 4-5GB,差距很明显。
✅ 天生只读,更安全:打包完成后的 .squashfs 文件,默认处于只读状态,只能读取里面的内容,无法随便修改、删除其中的文件。这样的设计既能避免误操作导致系统核心文件被篡改、删除,也能防止分发的系统镜像被恶意植入垃圾软件或恶意程序,安全性直接拉满。比如我们制作的 Linux Mint Live 启动盘,基于 .squashfs 运行,哪怕在 Live 环境下误删了系统文件,重启后也会恢复原样,不会损坏镜像本身。
✅ 无需解压,直接挂载:这是它和普通压缩包最核心的区别之一,不用像 zip、rar 那样必须全部解压才能使用。它能像插入一块虚拟硬盘一样,直接“挂载”到 Linux 系统中,而且 Linux 内核原生就支持这种格式,不用额外安装任何工具,就能轻松读取里面的所有系统文件和配置。比如我们想提取 .squashfs 里的某个配置文件,只需执行 mount 命令挂载,直接找到文件复制即可,不用解压整个几 GB 的镜像,节省时间和空间。
平时在哪能见到它?
其实 .squashfs 离我们并不远,只要你接触 Linux 相关的设备或操作,大概率会遇到它,常见的应用场景主要有这4种,覆盖日常使用和专业场景:
1. 各种 Linux Live 启动 U 盘(比如大家常用的 Linux Mint、国产信创系统的启动盘,其核心系统文件基本都是 .squashfs 格式,确保 U 盘能直接启动并运行系统);比如我们用 Rufus 制作 Linux Mint Live U 盘,解压镜像后,casper/filesystem.squashfs 就是整个 Live 系统的“灵魂”,没有它 U 盘就无法启动。
2. 定制封装的 Linux 系统镜像(比如企业根据自身需求定制的专属系统、精简版 Linux 系统,打包成 .squashfs 格式后,体积小、易分发,还能保证系统的纯净性);比如某互联网公司定制的服务器专用 Linux 系统,删除了无用组件,打包成 .squashfs 后,体积仅 1GB 左右,方便批量部署到数百台服务器。
3. 路由器、机顶盒等嵌入式设备的固件(.squashfs 体积小、只读的特性,刚好适配嵌入式设备有限的存储空间,同时能防止固件被恶意篡改,保障设备稳定运行);比如我们常用的家用路由器,其固件核心就是 .squashfs 文件,里面包含了路由器的操作系统和管理程序,只读特性能防止固件被篡改,避免路由器被入侵。
4. 系统备份与精简封装(比如我们自己制作纯净版 Linux Mint 系统,或是对现有系统进行备份时,打包成 .squashfs 格式,既能节省备份空间,也方便后续复用、恢复系统);比如我们给个人电脑的 Linux Mint 系统做备份,打包成 .squashfs 后,既能节省硬盘空间,后续电脑系统出问题,只需挂载镜像,就能快速恢复系统配置和文件。
不用记复杂的技术术语,也不用纠结繁琐的原理,记住一句话就够了:
.squashfs 就是 Linux 生态里,集高压缩、只读保护、可直接挂载于一身的系统镜像格式,等同于 Windows 里的 .wim/.esd 文件,是制作 Live 启动盘、封装 Linux 系统、分发系统镜像的核心关键,也是 Linux 生态中不可或缺的重要组成部分。无论是日常使用的 Linux Mint Live 启动盘,还是企业部署的服务器系统,或是家里的路由器固件,都能看到它的身影。