最近在做的事情,设涉及到稀疏文件相关的知识。同时这个稀疏的东西是ext4。

ext4这个东西是我以前装虚拟机的时候留下的映像,但是具体是什么,我也不是很了解。这里来进行个扫盲。

都是文件系统。知道这个就行了,具体的单个内容,需要了可以针对性学习。

EXT3、EXT4

文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,其中包含:EXT2、EXT3、EXT4、FAT、FAT32等。那么Linux系统中ext3和ext4有什么不同

1、更大的文件系统和更大的文件

ext3:16TB文件系统和最大2TB文件;

ext4:1EB文件系统和最大16TB文件。

2、无限数量的子目录

ext3:32000个子目录;

ext4:无限数量的子目录。

3、Extents

ext3:采用间接块映射,当操作大文件时,效率极其低下。比如一个100MB大小的文件,在ext3中要建立25600个数据块的映射表。

ext4:引入了Extents概念,每个Extent为一组连续的数据块,上述文件则表示为该文件数据保存在接下来的25600个数据块中,提高了不少效率。

4、多块分配

ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25600次数据块分配器,而ext4的多块分配器multiblock allocator支持一次调用分配多个数据块。

5、延迟分配

ext3的数据块分配策略是尽快分配,而ext4是尽可能地延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。

6、inode相关特性

ext3:128byte;

ext4:256byte。

FAT、FAT32、NTFS、exFAT

FAT、FAT32、NTFS和exFAT是U盘的常见分区格式,一般情况下,U盘格式是FAT和FAT32。

随着技术的进步,文件所占内容越来越大,FAT和FAT32格式已经不能满足用户的需求,越来越多用户选择将U盘格式转为NTFS或exFAT。

一、FAT(FAT16)文件系统

   这是MS-DOS和最早期的WIN95操作系统中最常见的硬盘分区格式。它采用16位的文件分配表,能支持最大为2GB的硬盘分区。

FAT文件系统优点:FAT(FAT16)是目前应用最为广泛和获得操作系统最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从DOS WINDOWS95/98/NT/ME/2000/XP,甚至LINUX都支持这种分区格式。

FAT文件系统缺点:最大只支持2GB的分区,而且每个分区最多只能有65525个簇。因此磁盘利用效率非常 低。因为在DOS和WINDOWS系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一 个文件很小的话,它也要占用一个簇,剩余的空间便全部闲置在那里,形成了磁盘空间的浪费。由于分区表容量的限制,FAT的分区越大,磁盘上每个簇的容量也 越大,造成的浪费也越大。

    FAT文件系统,目前除了一些特殊应用之外,基本上已经不再使用了。试想下,目前主流的硬盘容量已经达到1TB(1TB=1024GB)了,假如使用FAT格式的话,每个分区最大只能2GB,那么电脑里面会有多少个盘符呀!

二、FAT32文件系统

   相信大家对FAT32文件系统不会太陌生,毕竟从Win98开始,FAT32就已经的到了广泛的应用。FAT32格式采用32位的文件分配表,使其对磁盘 的能力大大增强,突破了FAT16对每一个分区的容量只有2GB的限制。Win95以上的操作系统都支持FAT32格式。

FAT32文件系统优点:突破了FAT对每一个分区的容量只有2GB的限制,可以支持大到2TB(2048G)的分区。在不超过8GB的分区容量下,每个簇的容量都固定为4KB,与FAT16相比,可以大大减少磁盘的浪费,提高磁盘利用率。

FAT32文件系统缺点:用 FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢,且DOS系统和某些早期的应用软件不支持这种分区格式。 另外还有一个致命的缺点让FAT32逐渐被淘汰,这就是FAT32的单个文件最大只能支持4GB。现在已经进入高清时代,720P和1080P高清视频文 件都很容易超过4GB,因此FAT32已经走向没落。

三、NTFS文件系统

   NTFS是从Windows XP系统开始逐渐成为主流的磁盘格式,是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。支持NTFS磁盘格式的操作系统有:WINDOWS NT、WINDOWS2000、WINDOWS2003、WINDOWS XP、WINDOWS vista、WINDOWS7等。因此NTFS目前仍是主流的磁盘格式,有大量用户在使用。

NTFS文件系统优点:NTFS分区具有极高的安全性和稳定性,在使用中不易产生文件碎片。它能对用户的操作 进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。另外对大部分用户而言,NTFS 最直观的优点是,单个文件的大小突破了FAT32的4GB的限制。

NTFS文件系统缺点:NTFS虽然有诸多优点,但这些都是针对传统机械硬盘而设计的,对于新兴的Flash 闪存材料不一定适用。NTFS分区是采用“日志式”的文件系统,因为要记录磁盘的详细读写操作,对U盘这种闪存储介质会造成较大的负担,比如同样存取一个 文件或目录,在NTFS系统上的读写次数就会比FAT32来得多,理论上NTFS格式的U盘比较容易损坏,而且400MB以下的分区也比FAT16更浪费 空间。

四、exFAT文件系统

exFAT是近年才出现的格式,主要针对移动存储设备,什么闪存、U盘等。因为FAT32格式单个文件不能超过4G,使用NTFS格式又容易损坏闪存芯片,所以才开发EXFAT格式来解决这些问题。

exFAT文件系统优点:分区大小和单文件大小最大可达16EB(16×1024×1024TB);簇大小非 常灵活,最小0.5KB,最高达32MB;采用了剩余空间分配表,空间利用率更高;同一目录下最大文件数可达65536个;支持访问控制;支持 TFAT(WINCE早期文件系统)。可以看出,ExFAT就是闪存专用的文件系统,只有U盘和存储卡才能格式化成exFAT,传统硬盘是无法格式化成 exFAT格式的,因为exFAT的特性其实并不比NTFS强,但却比NTFS及FAT32更适合闪存使用。

exFAT文件系统缺点:exFAT作为一种全新的文件系统,在电脑上的兼容性却不太好,目前主流的XP和Vista默认都不支持ExFAT,XP需升级至SP3补丁、Vista需升级至SP1补丁才能支持它。当然微软也提供了exFAT的单独更新文件,Win7默认支持。

Sparse、Raw

系统镜像是地址ROM最常使用的一个镜像,用于存储Android系统的核心文件,System.img就是设备中system目录的镜像,里面包含了Android系统主要的目录和文件。

一般这些文件是不允许修改的。系统镜像对应的文件名一般叫system.img,当然,系统镜像的文件可以任意命名,之所以叫system.img,是为了与生成镜像文件之前的system目录保持一致,这样比较容易与其他类型的镜像文件区分。

但是该文件经常以两种格式出现:raw和sparse。

一种是raw ext4 image,即经常说的raw image,使用file观察它: 其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大(一般1G左右)。

另外一种是sparse ext4 image,即常常说的simg,就是说是一个很是普通的dat文件(DAT文件,可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义)。因为它将raw ext4进行稀疏描述,所以尺寸比较小(没有全零的无效填充区,通常在300到500M之间)。

android自己提供了源代码工具在二者之间转换,源代码位于:

system/core/libsparse/simg2img.c // 将sparse image转换为raw image;system/core/libsparse/img2simg.c // 将raw image转换为sparse image;

两种文件,sparse是对raw压缩后进行传输,这也提升了速度。

参考资料:

https://www.php.cn/linux-491663.html

https://blog.csdn.net/zjy764219923/article/details/106764765

https://www.jianshu.com/p/a686b6c63675

https://blog.csdn.net/weixin_35823048/article/details/117846394

Ext3、Ext4、FAT、FAT32、NTFS、exFAT、Sparse、Raw相关推荐

  1. U盘一般有三种常见的格式:FAT32,NTFS和exFAT

    U盘一般有三种常见的格式:FAT32,NTFS和exFAT. 现在超过4GB的U盘格式化时默认是NTFS分区,但是这种格式是很伤U盘的,因为NTFS分区是采用"日志式"的文件系统, ...

  2. FAT32转换NTFS格式的命令

    1.什么是NTFS? 想要了解NTFS,我们首先应该认识一下FAT.FAT(File Allocation Table)是"文件分配表"的意 思.对我们来说,它的意义在于对硬盘分区 ...

  3. 磁盘分区格式FAT32与NTFS

    FAT32和NTFS的区别: 1.什么是NTFS-新(N)技术(T)文件(F)系统(S)? 想要了解NTFS,我们首先应该认识一下FAT.FAT(File Allocation Table)是&quo ...

  4. FAT32和NTFS的区别

    2019独角兽企业重金招聘Python工程师标准>>> FAT32和NTFS的区别: 1.什么是NTFS-新(N)技术(T)文件(F)系统(S)? 想要了解NTFS,我们首先应该认识 ...

  5. FAT32转NTFS命令

    开始-运行-cmd-输入 convert c:/FS:NTFS 同理 D盘 convert d:/FS:NTFS ---------- 1.什么是NTFS? 想要了解NTFS,我们首先应该认识一下FA ...

  6. linux ntfs 转换 无损,怎么无损数据地转换FAT32到NTFS分区

    NTFS分区相比于FAT32有更多的优越性,例如NTFS文件系统支持EFS加密,支持单个文件的大小超过4GB,支持分区的大小超过2TB等等.但FAT32最明显的缺点就是任何文件的大小不能超过4GB,F ...

  7. 【Windows数据恢复】Fat32和NTFS文件系统文件恢复

    目录 一.磁盘存储结构 (一)分区表 1.MBR 分区表(主引导记录Master Boot Record , mbr) 小实验:将磁盘改为活动分区 2.GPT 分区表(全局唯一标识分区表GUID Pa ...

  8. ext4 ntfs mysql_文件系统类型FAT16、FAT32、NTFS、EXT3、EXT4、XFS说明和对比

    FAT16.FAT32.NTFS FAT(File Allocation Table)文件分配表.顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上 ...

  9. linux 文件系统 xfs、ext4、ext3 的区别

    前言 centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3 ext3介绍 ext3和ext4的最大区别在于,ext3在fsck时需要耗费大量时间(文件越多,时 ...

最新文章

  1. 吴恩达:无监督学习很重要!
  2. 【新手向】什么是“框架”?
  3. sql not in 用法_SQL 语法速成手册
  4. 数学建模学习笔记——相关性分析
  5. Hibernate框架整合DM数据库
  6. Android启动流程
  7. Linux 本地密码正确无法登录,记一次无法正常本地登陆Linux服务器(确定密码正确)...
  8. Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术
  9. Ubuntu failed to fetch ... hash sum mismatch
  10. (五)C语言之二维数组
  11. python激光扫描雷达_rospy中的实时2D激光扫描仪数据
  12. 使用Oracle SQL Developer 编写运行 PL/SQL 块
  13. k8s springboot 文件_30分钟无痛上云——springboot项目部署到kubernetes
  14. 电信光纤猫虚拟服务器设置方法,电信光纤无线路由器(光猫)的设置方法
  15. (转)所谓“降维打击”到底什么意思?
  16. Istio学习笔记-熔断实验
  17. 从零开始F28069M launchPAD板的点灯
  18. ProcesingJoy ——连线成画【JAVA】
  19. 两级运算放大器设计与仿真
  20. OpenCV学习笔记(Python)———— 画轮廓

热门文章

  1. Celery介绍--手机短信异步发送
  2. 即时编译器的中间表达形式(IR)
  3. 无线打印服务器纸张格式,怎么在打印机中添加纸张格式。
  4. 经纬度5位数和6位数差多少_经纬度小数点后5位是多少米 经纬度小数点后4位精确到...
  5. 多径效应和多普勒效应
  6. 独立思考Justic:Free to Choose and Who owns me
  7. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
  8. 【AI视野·今日CV 计算机视觉论文速览 第159期】Tue, 24 Sep 2019
  9. 基于Web SCADA平台构建实时数字化产线 - 初篇
  10. 在python中import什么意思_python的import是什么意思