引子

拷贝一个大文件(大于4G)到8GU盘时,报存储空间不足,查看u盘属性,发现空间足够,原因是FAT32文件系统支持的最大单文件大小为4G。需要重新格式化u盘为NTFS格式,但发现居然木有NTFS选项,多了一个exFAT文件系统选项,这个还是头一次见,于是查了一下资料。现把几种U盘常用的文件系统做一下归纳比较。本文只介绍windows操作系统下文件系统,linux上使用的文件系统要多一些,这里不做介绍。

本文将对比总结一下几个文件系统:FAT16、FAT32、NTFS和exFAT。

FAT16

FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格。FAT16使用16位的簇寻址空间,因此最多可寻址65536个簇。簇(簇是磁盘空间分配的最小单元)大小随文件系统所在的磁盘分区空间的增大而增大。FAT16文件系统分区大小与簇大小的关系如下表:

分区大小 FAT16簇大小
16MB-127MB 2KB
128MB-255MB 4KB
256MB-511MB 8KB
512MB-1023MB 16KB
1024MB-2047MB 32KB

FAT16文件系统有3个最大的缺点:

  1. 磁盘分区最大只能到2GB(2^16 * 32KB = 2GB)。
  2. 空间浪费。例如,簇大小为32KB时,即使文件只有1Byte,也将使用32KB的存储空间。
  3. FAT文件系统的通病。当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入,长期使用后会使档案资料变得逐渐分散,而减慢了读写速度。为了保持FAT文件系统的效率必须经常进行磁盘碎片整理。

现今u盘容量不断增大,由于以上两个原因,u盘很少再使用FAT16文件系统了,而更多使用FAT32。

FAT32

FAT32文件系统采用32位的簇寻址空间,使其对磁盘的管理能力大大增强,突破了FAT16对每一个分区的容量只有2 GB的限制。FAT32文件系统最大大单文件大小为4 GB;最多268,435,437个文件。

FAT32相比于FAT16,有如下优点:

  1. 可支持大于2GB的分区。最大可达2TB(windows 2000和windows XP能够读写任何大小的FAT32文件系统,但是这些平台上的格式化程序只能创建最大32GB的FAT32文件系统。)。
  2. 空间利用率更高。FAT32采用了更小的簇,可以更有效率的保存数据。
  3. 更稳定FAT32文件系统可以重新定位根目录和使用备份副本。另外FAT32分区的启动记录被包含在一个含有关键数据的结构中,减少了计算机系统崩溃的可能性
  4. 活性更高FAT32分区上的根文件夹是普通的簇链,因此它可以位于驱动器上的任何位置。以前对根文件夹数量的限制不复存在。此外,可以禁用文件分配表镜像,这样就可以让文件分配表的副本而不是让第一个文件分配表处于活动状态。这些功能允许您动态重调FAT32分区的大小。不过要注意,虽然FAT32的设计允许这一功能,但微软自己的分区软件不支持此功能,需要使用第三方分区软件。

FAT32有以下缺点:

  1. 单个文件大小不能超过4GB。如果想用u盘拷贝高清电影,就不要格式化为FAT32格式。
  2. FAT文件系统的通病。当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入,长期使用后会使档案资料变得逐渐分散,而减慢了读写速度。为了保持FAT文件系统的效率必须经常进行磁盘碎片整理。

NTFS

NTFS(New Technology File System)是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008、Windows Vista和Windows 7的标准文件系统。NTFS已经取代了FAT文件系统,为Microsoft的Windows系列操作系统提供文件系统。NTFS的目标是提供比FAT32更高的可靠性,并消除FAT文件系统中的种种限制。

NTFS尽管是windows系列操作系统的主流文件系统,但其不适合作为u盘等闪存卡的文件系统。

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

NTFS这些额外的功能无论对SSD硬盘和U盘都会造成不同程度的伤害,因此新一代windows7操作系统专门针对SSD进行优化,通过各种手段减少读写次数和碎片的产生。而对于U盘来说,本身USB的带宽就有限,NTFS文件系统频繁读写占据通道会让磁盘性能降低,为此微软专门针对移动存储设备开发了ExFAT文件系统。exFAT

exFAT

exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。

exFAT相较于FAT文件系统,有以下优势“

  1. 增强了台式电脑与移动设备的互操作能力。
  2. 单文件大小最大可达16EB(18 446 744 073 709 551 616字节,就是(理论值,16×1024×1024TB),1TB=1024G)。
  3. 簇大小可高达32MB。
  4. 采用了剩余空间分配表,剩余空间分配性能改进。
  5. 同一目录下最大文件数可达65 536个。
  6. 支持访问控制。
  7. 支持TFAT。

需要强调的一点是:exFAT只是一个折中的方案,只为U盘而生

结论

许多操作系统上默认的大容量U盘格式化文件系统默认为NTFS,但这种日志文件系统对U盘的伤害比较大,不推荐使用。建议使用exFAT格式化大容量U盘。尽管exFAT格式可能存在兼容性问题,但其不失为目前大容量u盘的一个最好解决方案。

U盘常用文件系统比较相关推荐

  1. 使用内存盘 格式化文件系统以及部署ceph-osd

    文章目录 创建RAMDISK 使用内存盘 使用内存盘格式化文件系统 使用内存盘部署ceph-osd 删除内存盘 为了测试内存盘类型的磁盘做ceph osd的io性能,将内存部分空间取出来用作普通物理磁 ...

  2. linux系统挂载(卸载)U盘(文件系统)

    Linux跟windows系统在插入u盘时有点差别,windows是即插即用,而linux即使你将u盘插入电脑,也需要挂载u盘,不然,可能无法使用. 对linux系统而言,对一个文件系统,如果想要使用 ...

  3. linux用u盘上传文件,linux如何挂载U盘和文件系统(或需要用到).doc

    linux如何挂载U盘和文件系统(或需要用到) 侯狞朔曙据旺顿比属两厩柔办伙鞍靡钢旺家吾琳冤筏哩自蚊械榴革煮疹谐兜拓舀串寸翼醚名镜咽阔听掉屯启挖弯正火个纶恭节锯健腻茁膝溺曼捷嵌肮抽切市佐朱臆梢钮嫡竣陕 ...

  4. ubuntu修改u盘权限_Ubuntu下U盘只读文件系统,图标上锁,提示无法修改

    资料来源于网络,自己总结 问题 Ubuntu下有时候插入U盘,发现不能修改其中的内容.例如不能新建文件和文件夹,不能向U盘中复制文件等,系统提示:只读文件系统. 原因大概是U盘的文件系统信息出错(保存 ...

  5. ubuntu修改u盘权限_Ubuntu下的U盘只读文件系统,该图标已锁定,表明无法对其进行修改...

    有时在Ubuntu下插入U盘,发现其内容无法修改. 例如,您不能创建新文件和文件夹,也不能将文件复制到USB闪存驱动器等. 系统提示: 只读文件系统. 原因可能是U盘的文件系统信息错误(存储在硬盘或U ...

  6. Ubuntu下U盘只读文件系统,图标上锁,文件无法写入

    一.问题 Ubuntu16.04上有时候插入U盘,发现不能修改其中的内容.例如不能新建文件和文件夹,不能向U盘中复制文件,可以复制出来,在其他系统就没事,打开属性显示提示:只读文件系统. 原因应该是U ...

  7. 硬盘、移动硬盘或U盘的文件系统变成了RAW格式的解决办法

    硬盘.移动硬盘或U盘的文件系统变成了RAW格式的解决办法 1.系统权限的问题1(原系统是NTFS格式出现问题) 在RAW格式盘符上点右键,选 属性,再选安全,将无用的用户删除,添加自己的用户名,再改一 ...

  8. linux系统怎么访问u盘文件系统,linux如何挂载U盘及文件系统(或需要用到的).doc

    linux如何挂载U盘及文件系统(或需要用到的) 把U盘插到PC机上之后,利用fdisk -l命令看看U盘在linux的盘符.然后利用mount命令,将U盘(在linux下为设备文件)挂载到/tmp( ...

  9. 银河麒麟Linux操作系统报错:U盘---只读文件系统

    银河麒麟Linux操作系统报错:U盘-只读文件系统 1.问题描述: 将桌面文件复制到U盘或者在U盘创建文件时无法实现创建,报文件系统只读! 2.问题解决过程: 2.1 将U盘重新挂载 尝试将U盘重新挂 ...

最新文章

  1. 「Web2.0」的创造者表示:为Web3.0喝彩还为时尚早
  2. 计算机视觉 | 优秀实用的OpenCV开源项目汇总
  3. update语句的返回值是什么
  4. python-数据结构-栈
  5. mysql引擎测试_MySQL MyISAM引擎和InnoDB引擎的性能测试
  6. 优秀程序员的开发效率是普通程序员的 10 倍,那么如何提升呢?
  7. linux改变磁盘顺序,Linux上磁盘顺序混乱的情况
  8. C/C++[codeup 2080]整数奇偶排序
  9. json对象转map集合(json转map最快的方法)
  10. 年会抽奖程序,开箱即用
  11. php被挂马,近日报网站被挂马的解决方法
  12. Android 吸顶布局的写法
  13. 以影像技术为“桨“,荣耀如何讲好高端“新故事”?
  14. No executable file specified.Use the “file“ or “exec-file“ command.
  15. rvm的安装, 使用rvm, 安装ruby, 以及gem的使用
  16. 小学计算机社团活动简报,多彩社团活动幸福校园生活——南街小学社团活动报道...
  17. nasm纠正性训练指南pdf_书籍NASMCES美国国家运动医学学会纠正性训练指南
  18. 147 completion机制基本概念
  19. java入门基础-数组
  20. Cocos2dx 使用obb扩展包

热门文章

  1. MySQL中concat函数
  2. python如何爬取文献_这个工具,可全网爬取科研圈中外文献!
  3. hbase基础命令学习
  4. Photoshop CS6常用快捷键
  5. 520情人节到了,作为程序猿的我用代码给女朋友送了一个礼物「可以拿去送给自己喜欢的人」
  6. 魔兽地图编辑器触发音效无法播放
  7. 《我的世界》Python编程入门(3)检测玩家所在位置
  8. Unity学习笔记:fps游戏玩家射击模块(2)
  9. 路由器重温——OSPF路由(很重要的协议)-3
  10. C++筑器 引用生死唯一