首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏linux驱动个人学习

    squashfs文件系统

    一、Squashfs文件系统简介  squashfs是以linux 内核源码补丁的形式发布,附带mksquashfs工具,用于创建squash文件系统。 squashfs可以将整个文件系统或者某个单一的目录压缩在一起, 存放在某个设备, 某个分区或者普通的文件中. 如果你将其压缩到一个设备中, 那么你可以将其直接mount起来使用; 而如果它仅仅是个文件,你可以将其当为一个loopback 设备使用. squashfs文件系统的设计令人欣喜.  · squashfs可以允许块大小(block size)达32Kb(1.x)和64kb(2.x), 这样可以达到比4K块大小更大的压缩率。 squashfs是一个只读压缩文件系统,对嵌入式来说,可以减少成本,在使用nand flash作为存储设备的开发板来说,要使用squashfs首先内核当中要有对squashfs的支持,同时还要有对mtd

    5.3K70发布于 2018-03-07
  • 来自专栏文件系统知识

    【文件系统】如何在ubi之上运行squashfs

    如何在ubi之上运行squashfs 在UBI之上运行squashfs文件是openwrt系统中常见的方式: rootfs运行squashfs (只读) roootfs_data运行ubifs (读写) ubi block device,使用该block device 挂载 squashfs 使用vloume 1挂载ubifs 注意:如果不需要运行ubifs,那么只创建一个volume运行squashfs 制作squashfs需要用到mksquashfs工具,使用说明参见mksquashfs 创建fs目录内容如下: $ ls apps this_is_squashfs.txt 执行如下命令:根据fs目录创建 squashfs,输出的squashfs镜像文件为 squashfs.img mksquashfs fs/ squashfs.img -b 256k -nopad -noappend -root-owned (ro,relatime) 参考 Squashfs 4.0 Filesystem mksquashfs SquashFS HOWTO UBIFS

    1.1K10编辑于 2025-02-19
  • 来自专栏嵌入式、安防、流媒体、AI分析

    【君正T31】只读rootfs文件系统squashfs的解压和打包

    查看squashfs压缩信息 # 安装mksquashfs工具 apt install mtd-utils # 查看压缩信息 unsquashfs -s root-glibc-toolchain4.7.2 -1.1.squashfs # 显示 Found a valid SQUASHFS 4:0 superblock on root-glibc-toolchain4.7.2-1.1.squashfs. of inodes 313 Number of ids 2 可以看到压缩方式xz,blocksize131072 解压 unsquashfs root-glibc-toolchain4.7.2-1.1.squashfs 会解包到当前目录下的squashfs-root文件夹 unsquashfs root-glibc-toolchain4.7.2-1.1.squashf 打包 mksquashfs rootfs[输入文件加 ] rootfs.squashfs[输出文件名] -comp xz

    2.9K20编辑于 2023-01-04
  • 来自专栏嵌入式、安防、流媒体、AI分析

    【君正T31】squashfs格式只读rootfs文件系统的解压和打包

    先来安装工具: # 安装mksquashfs工具 apt install mtd-utils # 查看压缩信息 unsquashfs -s root-glibc-toolchain4.7.2-1.1.squashfs # 显示 Found a valid SQUASHFS 4:0 superblock on root-glibc-toolchain4.7.2-1.1.squashfs. of fragments 5 Number of inodes 313 Number of ids 2 解压 unsquashfs root-glibc-toolchain4.7.2-1.1.squashfs //会解包到当前目录下的squashfs-root文件夹 重新打包 mksquashfs rootfs[输入文件加] rootfs.squashfs[输出文件名] -comp xz

    2K40编辑于 2022-11-03
  • [Ubuntu][Shell]make_ubuntu_sd.sh注释解读

    -ne 0 ]];then         echo "Failed: Unsquashfs 'filesystem.squashfs' fail!"         -d {LogPath}squashfs-root/{MINIRC_LOGROTATE_DIR} ];then         mkdir -p {LogPath}squashfs-root/{MINIRC_LOGROTATE_DIR /cdtmp     umount ${LogPath}squashfs-root/cdtmp     # 删除${LogPath}squashfs-root/cdtmp     rm -rf $ {LogPath}squashfs-root/cdtmp     # 删除脚本     rm ${LogPath}squashfs-root/chroot_install.sh     return     # 复制squashfs-root所有文件到分区1     cp -a {LogPath}squashfs-root/* {TMPDIR_SD_MOUNT}     if [[ ?

    18400编辑于 2025-07-18
  • 来自专栏物联网IOT安全

    物联网安全|手把手带你制作恶意固件

    信息,该引导程序告诉了我们很多关于固件的信息,例如架构MIPS、创建时间、系统类型还包括了CRC校验等等 根据第二部分中的uImage头信息,可以发现内核为Linux-3.10.14 第三部分为两个SquashFS 文件系统,SquashFS是一种只读文件系统 第四部分是一个JFFS2文件系统。 -d squashfs_2_out squashfs_2 对于jffs2文件系统的提取,我们使用jefferson来实现: jefferson -d jffs2_out jffs2 提取之后检查一下敏感信息 我们使用unsquashfs查看一下原来的文件系统信息: unsquashfs -s squashfs_1 接下来使用mksquashfs命令将更改后的新文件系统打包 mksquashfs squashfs _1_out/ squashfs_1_new -comp xz -b 131072 我们再将之前的程序加上一个打包功能,这样我们就可以把这两个squashfs文件系统和jffs2文件系统打包起来。

    1.8K20发布于 2020-06-23
  • 嵌入式根文件系统详解与对比

    嵌入式根文件系统详解与对比 核心对比总览 特性 initramfs jffs2 yaffs2 cramfs squashfs romfs 读写支持 读写 读写 读写 只读 只读 只读 压缩支持 支持( (Squash File System) 概念:比cramfs更先进的压缩只读文件系统 squashfs vs cramfs对比: ┌──────────────┬─────── (系统) + jffs2(配置区) 原因: • 系统部分只读,用squashfs节省空间 • 配置需要频繁更新,用jffs2保证掉电安全 场景2:工业控制器 推荐:cramfs或romfs 原因: • 只读 → cramfs/squashfs/romfs 读写 → jffs2/yaffs2 空间有多紧张? 非常紧张 → cramfs/romfs 一般紧张 → squashfs 不紧张 → 考虑读写文件系统 启动速度要求?

    15110编辑于 2026-02-02
  • 来自专栏linux驱动个人学习

    盘点只读压缩文件系统

    SquashFS 2.x版本的chunk size最大为64KB, SquashFS 3.x版本的chunk size最大可达1MB。 SquashFS还支持fragment block,即多个小文件存入一个block,极大的提升了压缩率。SquashFS支持大端和小端对齐方式,可以在不同的字节序机器上创建和挂载。 同CramFS和SquashFS的详细特性对比如下表: ? EROFS带来哪些新变化? 对于SquashFS来说,达到同样的压缩收益可能需要比EROFS多读几倍的数据块。 默认压缩输出块大小为4KB,其他特性支持上均对标SquashFS。这里不再一一赘述。

    4.1K20发布于 2020-10-29
  • 来自专栏Article

    转移阵地-OpenWrt to Ubuntu Server

    LABEL UUID FSAVAIL FSUSE% MOUNTPOINT loop0 squashfs 0 100% /snap/lxd/21029 loop5 squashfs 0 100% /snap/lxd/21835 loop7 squashfs LABEL UUID FSAVAIL FSUSE% MOUNTPOINT loop0 squashfs 0 100% /snap/lxd/21029 loop5 squashfs

    1.4K50编辑于 2022-06-15
  • 来自专栏技术文章-云服务器服务部署

    ubantu 修改android12 系统镜像

    在终端中运行以下命令以安装所需的软件包:sudo apt updatesudo apt install \ gparted \ squashfs-tools \ genisoimage 说明: 上述命令将安装一些工具,gparted用于分区管理,squashfs-tools用于处理SquashFS文件,genisoimage用于生成ISO镜像。 运行以下命令:sudo mksquashfs ~/android ~/android/my_custom_android12.img -no-exports说明: mksquashfs命令用于创建SquashFS

    55010编辑于 2025-03-06
  • 来自专栏爱研究的小生

    【Linux】挂载硬盘并设置开机自动挂载

    -adef-4e4c-90cf-2aa29d0eefdf" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0b46eacc-05"/dev/loop1: TYPE="squashfs "/dev/loop6: TYPE="squashfs"/dev/loop13: TYPE="squashfs"/dev/loop4: TYPE="squashfs"/dev/loop11: TYPE= "squashfs"/dev/loop2: TYPE="squashfs"/dev/loop0: TYPE="squashfs"/dev/loop9: TYPE="squashfs"/dev/loop7 : TYPE="squashfs"/dev/nvme1n1p2: UUID="6990-AB1E" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="0b46eacc-02" "/dev/loop12: TYPE="squashfs"/dev/loop3: TYPE="squashfs"/dev/loop10: TYPE="squashfs"/dev/nvme0n1p2: PARTLABEL

    5.5K10编辑于 2024-08-22
  • 来自专栏小陈运维

    Proxmox VE镜像分析与定制

    pve-base.squashfs:安装的根系统,也就是最终的系统 pve-installer.squashfs:安装时需要的系统 Proxmox VE安装流程 PVE安装流程主要分为以下4个步骤: ( drwxr-xr-x 17 root root 4096 Apr 27 04:23 squashfs-root/ ... 解压完成后会出现pve-installer.squashfs镜像盘的squashfs-root/ 文件夹,进入该文件夹即可看到安装时的引导系统 $ ll total 68 drwxr-xr-x 11 使用命令解压完成后会出现pve-base.squashfs镜像盘的squashfs-root/ 文件夹 $ sudo unsquashfs pve-base.squashfs Parallel unsquashfs / pve-installer.squashfs Parallel mksquashfs: Using 16 processors Creating 4.0 filesystem on pve-installer.squashfs

    3.5K31发布于 2021-10-13
  • BusyBox与嵌入式根文件系统的关系详解

    制作squashfs mksquashfs rootfs rootfs.squashfs -comp xz # 3. 动态编译,中等功能 支持擦写,磨损均衡 大容量复杂 ubifs 动态编译,完整功能 性能好,支持大容量 恢复系统 initramfs 静态编译,救援功能集 独立运行,无需存储 低成本 jffs2 + squashfs 动态编译,分区域配置 jffs2便宜,squashfs节省空间 成本-性能-功能平衡图 功能丰富度 ↑ ubifs+完整BusyBox | jffs2+中等 ──┼── squashfs+核心 | cramfs+最小 ↓ 成本/体积 实际选择: 根据项目在三角形中找平衡点 最佳实践建议 原型阶段:使用initramfs + BusyBox快速验证 小批量生产:squashfs + overlayfs + BusyBox平衡成本与功能

    19610编辑于 2026-02-02
  • 来自专栏机器人课程与技术

    Ubuntu启动镜像制作资料分享(sourceforge或github)

    所以要创建一个比这更大的squashfs是不可能的。另一个限制因素是USB闪存驱动器,它们通常是格式化的fat32(vfat),其文件大小限制为4 GiB。 从技术上讲,我可以将大型squashfs分成4个GiB块,但Ubiquity(Ubuntu安装程序)只能处理在一个squashfs文件中具有整个文件系统。所以即使这样做也行不通。 如果Ubiquity能够安装split filesystem.squashfs,那么将来有可能使ISO大于4.2 GB。在此之前,事实并非如此。 如果Ubiquity能够安装split filesystem.squashfs,那么将来有可能使ISO大于4.2 GB。在此之前,事实并非如此。 如果Ubiquity能够安装split filesystem.squashfs,那么将来有可能使ISO大于4.2 GB。在此之前,事实并非如此。

    2.6K30编辑于 2022-04-29
  • 来自专栏LINUX开源玩家

    [pve][openwrt]PVE下虚拟机安装OpenWRT

    镜像 wget https://archive.openwrt.org/releases/19.07.2/targets/x86/64/openwrt-19.07.2-x86-64-combined-squashfs.img.gz 导入镜像作为虚拟机磁盘,下面的200是虚拟机的vmid gunzip openwrt-19.07.2-x86-64-combined-squashfs.img.gz mv openwrt-19.07.2 -x86-64-combined-squashfs.img openwrt.img qm importdisk 200 openwrt.img local-lvm 启动虚拟机 修改ip地址,以便通过web

    3.7K10编辑于 2022-05-20
  • 来自专栏Rust语言学习交流

    【Rust 日报】2024-01-14 Linux Kernel加入了第一个Rust写的有用模块

    argmin-rs.org/ GitHub: https://github.com/argmin-rs/argmin [new ver] backhand v0.14.0发布 backhand 用来读取、创建、修改SquashFS Squashfs(.sfs)是一套供 Linux 核心使用的 GPL 开源只读压缩文件系统。 Squashfs 能够为文件系统内的文件、 inode 及 目录结构进行压缩,并支持最大 1024 千字节的块大小,以提供更大的压缩比。 Squashfs 的设计是专门为一般的只读文件系统的使用而设计,它可应用于数据备份,或是系统资源紧张的电脑上使用。最初版本的 Squashfs 采用 gzip 的数据压缩。 [3] ——来自维基百科:https://zh.wikipedia.org/wiki/SquashFS 更新日志:https://github.com/wcampbell0x2a/backhand/releases

    43910编辑于 2024-01-19
  • 来自专栏全志嵌入式那些事

    全志V853芯片swap功能简介与tina上swap分区使用方法

    对于ubi nand来说,tina系统默认使用squashfs+ubifs来获得一个可读写的overlay,其中squashfs就依赖于块设备,但对于ubi nand来说,提供给squashfs的ubiblock 必须是只读的,只读的ubiblock+只读文件系统squashfs的搭配。 (2)不使用tina squashfs+overlay的做法,直接使用mkfs.ubifs制作一个可读可写的rootfs,内核关闭readonly-ubi块的配置,让系统可以顺利创建出可读可写的ubiblock

    62610编辑于 2024-02-02
  • 来自专栏kali blog

    路由器固件解包打包与后门防御

    Flattened 目录树、LZMA压缩数据、 Squashfs文件系统。 解包 我们可以通过binwalk -e命令对固件进行解包,效果如下。 因为这两个数据是不能修改的,只有Squashfs的数据是可以修改的。 Merlin_v1.3.2.trx of=head.bin bs=1 skip=0 count=2139456 命令说明 if是原固件,of是输出文件,bs是单位长度,skip是偏移量,count是分区大小(一般为Squashfs mksquashfs squashfs-root rootfs.bin -comp xz 最后将编译好的rootfs.bin的文件和切好的head.bin文件放到一起 cat head.bin rootfs.bin

    1.1K10编辑于 2025-07-28
  • 来自专栏宸机笔记

    MIPS-DIR645手动提取固件

    检索squashfs文件系统 标志的squashfs文件头大致有七种,分别为: sqsh、hsqs、 qshs、 shsq、 hsqt、 tqsh、 sqlz ❯ strings DIR645A1_FW102B08 进一步确定是否为squashfs文件 使用hexdump判断其文件头所在的地址 ❯ hexdump -C DIR645A1_FW102B08.bin|grep -n sqsh ? 使用dd命令提取该地址为始向后的100字节,最后用file工具对提取出来的文件进行检测来确定是否为squashfs文件系统 ❯ dd if=DIR645A1_FW102B08.bin bs=1 count

    1.2K30发布于 2021-04-02
  • 来自专栏MUM笔记

    OpenWrt国内源配置和使用

    Ext4格式 generic-kernel.bin 单一的内核文件 generic-squashfs-combined-efi.img.gz squashfs格式的,带efi引导的镜像,可以一键恢复出厂设置 generic-squashfs-combined.img.gz squashfs格式的,非efi引导的镜像,恢复出厂设置 generic-squashfs-rootfs.img.gz rootfs的镜像 的固件基础上升级,或者无刷机引导限制的机器上直接刷入此格式文件 factory:用于从设备的原厂固件刷入factory,再刷入breed之类不死使用 ext4 :ext4文件系统,可以扩展磁盘空间大小 squashfs 怎么选择这些固件,说下我这里的思路 最简单的,选择squashfs,一键还原,还是非常好用的 是否选择efi,看你的固件的支持。

    15.7K51编辑于 2024-11-12
领券