• 只读文件系统


    在有些项目中,我们不希望系统的文件的被修改,如路由器的系统文件等等.我们就需要使用只读文件系统来保护我们的系统文件不被修改.

    常见的只读文件系统有:cramfs文件系统和squashfs文件系统(cramfs文件系统的继任者)

    一、cramfs文件系统: http://sourceforge.net/projects/cramfs/
    1. compressed ROM filesystem
    主要用于嵌入式Linux系统中,简单与空间高效

    2. 特性:
    支持最大分区:272MB (256MB + 16MB)
    支持最大文件:16MB
    压缩格式: Zlib,压缩比一般可以达到1:2,每页单独进行压缩处理 ————> 支持随机读取
    动态解压:访问数据时实时解压访问到的页到内存,节省内存空间
    使用透明:解压缩以及解压缩之后的内存中数据存放位置都是由cramfs文件系统本身进行维护,对外部使用透明

    二、squashfs文件系统: cramfs的替代
    1. http://www.squashfs.org
    为通用只读文件系统等设计

    2. 特性:
    支持最大分区: 16EB
    支持最大文件: 2TB
    支持多种压缩格式:GZIP LZMA/LZMA2(XZ) LZO

    三,cramfs文件系统的制作

    1,安装制作工具

    sudo apt-get install cramfsprogs

    安装成功以后会有2个命令

    mkcramfs:创建文件系统镜像
    cramfsck:对文件系统镜像的一些操作

    2,制作文件系统

    mkcramfs 选项(可以没有) 目录名 镜像名称

    cramfsck 镜像名 :验证是否正确

    cramfsck -x 镜像名:解压该镜像

    四,squashfs文件系统制作

    1,制作工具的安装

    sudo apt-get install squashfs-tools

    mksquashfs:制作镜像
    unsquashfs:对镜像的一些操作

    2,制作文件系统

    mksquashfs source1 source2 ... dest [options] [-e list of exclude dirs/files]
    主要选项:
    -comp <comp> 指定压缩算法:gzip (default)/lzo/xz
    -b <block_size> 设置块大小,单位 Bytes,默认 131072 bytes (1MB)
    -no-exports 不支持NFS文件系统导出
    -no-sparse 不检测稀疏文件
    -no-xattrs 不存储扩展文件属性(XATTR)
    -xattrs 存储扩展文件属性(default)
    -noI 不压缩Inode节点表
    -noD 不压缩数据块
    -noF 不压缩片段块
    -noX 不压缩扩展文件属性
    -no-fragments 不使用片段管理
    -always-use-fragments 对比块大小大的文件也是用片段块
    -no-duplicates 不对文件重复进行检查
    -all-root 修改所有的文件拥有者为root
    -force-uid uid 设置所有文件的uid为指定的uid
    -force-gid gid 设置所有文件的gid为指定的gid
    -nopad 不对文件系统进行4K字节对齐
    -keep-as-directory 如果指定的源中有目录,在文件系统中创建根目录包含该目录,而不是包含目录内容


    mksquashfs 目录名 镜像名 -no-exports -no-xattrs -all-root

    内容提取:
    unsquashfs [options] filesystem [directories or files to extract]
    主要选项:
    -d[est] <pathname> 解压到指定目录,默认为"squashfs-root"
    -n[o-progress] 不显示进度条
    -no[-xattrs] 不提取xattr属性,默认提取
    -l[s] 列出文件系统内容,不进行解压缩提取

    因为有些文件涉及到了管理员权限,所以建议使用管理员权限来制作和解压文件系统镜像以避免一些权限错误.

  • 相关阅读:
    SpringBoot整合SpringDataJPA,今天没啥事情就看了一下springboot整合springdataJPA,实在是香啊,SQL语句都不用写了
    SpringMVC+Spring+Mybatis整合
    开源的分布式事务框架 springcloud Alibaba Seata 的搭建使用 一次把坑踩完。。。
    spring cloud Alibaba --sentinel组件的使用
    springcloud整合config组件
    springcloud整合geteway网关服务
    springcloud组件之hystrix服务熔断,降级,限流
    干货 springcloud之 poenFeign的使用
    springcloud组件之注册中心eureka学习
    面试题---->线程的入门,读完可以应付一般的面试(管理员不要移除我的随笔啊)
  • 原文地址:https://www.cnblogs.com/CHYI1/p/5573366.html
Copyright © 2020-2023  润新知