只读文件系统

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

常见的只读文件系统有: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] 列出文件系统内容,不进行解压缩提取

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

时间: 2024-10-31 16:28:23

只读文件系统的相关文章

树莓派变成了只读文件系统

今天当我想用ssh连接树莓派时,发现连不上了,树莓派没有开启ssh服务 我没有显示器,没有外接键盘. 于是乎,我将树莓派的硬盘(内存卡)拔下来插电脑上,在/etc/rc.local中exit 0 前面添加 /etc/init.0/ssh start 然后内存卡插回树莓派,重新启动树莓派,ssh可以连接了 但是树莓派却变成了只读文件系统 百度了一下,根据百度的方法,并没有什么卵用 以下为百度的方法,供以后参考 一 1.mount: 用于查看哪个模块输入只读,一般显示为: /dev/hda1 on

Linux报错-------ln: 无法创建符号链接&quot;***&quot;: 只读文件系统

对u-boot源码进行平台选择时输入: make am335x_evm_config 报错: ln: 无法创建符号链接"asm": 只读文件系统 make: *** [am335x_evm_config] 错误 1 拿到u-boot源码后放到虚拟机的共享share文件夹中,解压,然后配置.没注意我犯了一个很低端的错误... windows下是没有连接文件的,使用ln来创建连接文件时当然会出错,将所有代码放到Linux的文件系统中就没问题了. 所以以后凡是带链接文件的项目是不能放到虚拟机

Linux文件系统,ntfs分区显示只读文件系统,提示超级快损坏

背景:某天当我打开自己的设备,突然发现ntfs分区无法写入任何文件,提示为只读文件系统,具体现象如下: 修复过程:排除权限问题,使用fsck进行修复无果后,使用e2fsck进行修复 显示超级快损坏,这样就好做了,重新修复即可: 解决方案: 一下列举的是Ubuntu安装过程,本人使用的archlinux系统,这里不做赘述,如果不会安装,请自行解决 用sudo apt-get install ntfs-3g安装ntfs-3g.然后在NTFS分区上运行ntfsfix命令. [email protect

ubuntu下解决u盘成只读文件系统问题

Ubuntu下U盘出现文件系统只读的问题了.症状为无法删除U盘中现有文件,无法向U盘拷贝新的文件.但不知道是什么原因.今天下决心解决这个问题. 解决方法: 1. 在Ubuntu终端运行如下命令 tail -f /var/log/syslog      2. 插入有只读文件系统故障的U盘 3. 观察命令行输出 输出局部如下: Jul  8 16:44:50 cslouis-pc kernel: [15595.155904] FAT: Filesystem error (dev sdb4) Jul 

如何删除/mnt/cdrom?|如何删除只读文件系统(Read-only files ystem)? failed !bh ? 挂载光盘?挂载usb?

root权限下 : 首先用umount /mnt/文件夹 卸载文件系统,必要时可以用umount -f(可能丢失数据)然后rm -rf /mnt/cdrom mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom  #/dev/cdrom 是个块设备. /mnt/cdrom 是个文件夹. mkdir  /mnt/usb moutn /dev/sdb4 /mnt/usb#每个系统的设备识别名可能不一样. 用fdisk -l 查看

一旦rhel5.8造成只读文件系统ORA-00354: corrupt redo log block header

Wed Jun 03 03:31:24 CST 2015 Thread 1 advanced to log sequence 396 (LGWR switch) Current log# 3 seq# 396 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log Wed Jun 03 19:05:48 CST 2015 Thread 1 advanced to log sequence 397 (LGWR switch) ----------------

解决linux写入ntfs盘时报错:只读文件系统

# 卸载已挂载的设备 sudo umount /dev/sda5 mount -o rw /run/***# ***为具体哪个盘 原文地址:https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/12248687.html

RedHat5.9下搭建NFS文件系统

注:NFS文件系统是Linux.Unix等之间共享的文件系统,和windows是不能实现共享的. 实验要求: 1.在 / 目录下创建一个jwl文件夹,将/jwl 共享给主机192.168.1.19,使其对/jwl文件夹具有可写.同步.允许以root权限访问. 2.将/jwl 共享给192.168.1.17,权限为只读访问.异步写入.访问权限均降为nfsnobody用户. 操作步骤: 1.安装软件包 [[email protected] ~]# rpm -q portmap nfs-utils  

CentOS 7 下挂载NTFS文件系统并实行开机自动挂载

CentOS 7 下想要挂载NTFS的文件系统该怎么办呢? 我们需要一个NTFS-3G工具,并编译它之后在mount就可以了,就这么简单. 首先要进入官网下载NTFS-3G工具 http://www.tuxera.com/community/ntfs-3g-download/ 1.下载之后进行解压 wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2014.2.15.tgz tar  -xvf  ntfs-3g_ntfsprogs-2014.