exFAT

较适合于闪存的文件系统

exFATExtensible File Allocation Table),是微软公司(Microsoft)开发的一种较适合于闪存文件系统。最先从该公司的Windows Embedded CE 6.0操作系统引入这种文件系统,后又延伸到Windows Vista Service Pack 1操作系统中[3]。exFAT在微软发布其规范之前一直是专有的,微软在其设计的几个要素上拥有专利[4]exFAT 文件系统是 FAT 系列文件系统中 FAT32 的后继系统[5]

exFAT
开发者微软
全称Extended File Allocation Table
发布2006年11月 (Windows Embedded CE 6.0)
分区标识0x07 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
结构
目录内容Table
文件分配位数组链接串列
坏块集群标记
限制
最大文件尺寸64 ZiB,建议512 TiB[1]
最大文件数量单一目录最多2,796,202[2]
最长文件名255个字符(UTF-16)
最大卷容量64ZiB,建议512TiB[1]
功能
日期范围1980年1月1日至2107年12月31日
属性只读、隐藏、系统、卷标签、子目录、封存
文件系统权限
操作系统支持

整个FAT家族(包括exFAT)都适合应用在较少存储器与需要省电的嵌入式装置,FAT32文件系统有单一文件大小不能超过4 GB的限制,在不适合应用NTFS的情况,可以考虑使用exFAT。

Windows 8及更高版本的系统原生支持exFAT启动,同时支持以特殊方式安装在exFAT分区中运行。[6]

优点

exFAT相较于之前FAT文件系统的优势在于:

  • 可拓展至更大磁碟大小,理论上64ZiB,推荐最大512TiB,相较32位限制的FAT32分区的2TB(每扇区512字节)。
  • 理论的文件大小限制为264 - 1字节(16 exbibytes - 1),而FAT32文件系统中单一文件限制大小为232 - 1字节(4 GiB)。对于单档超过4 GB的用户来说,exFAT提供了很好的解决方案。
  • 大小最大可为每扇区225字节,最大32 MB。
  • 由于采用了空余空间寻址,空间分配和删除的性能得以改进。
  • 在单一文件夹内支持超过216个文件。
  • 支持存取控制清单(但在Windows Vista SP1中尚未支持)[7]
  • 提供给OEM的可定义参数可以使这个文件系统适应不同特色的装置。
  • 支持热插拔资料完整无损机制Transaction-Safe FAT(TFAT,在WinCE中可选的功能)。
  • 时间戳记能够使用UTC[8]时间而不仅仅是所在时区(从Vista SP2开始)

缺点

exFAT比过去的FAT文件系统的劣势在于:

  • 某些旧装置(如个人数码助理(PDA)和数码相机)无法使用exFAT格式的存储卡。
  • 使用exFAT的装置将不能用Windows VistaReadyBoost功能。(Windows 7 以上版本中的新的exFAT系统支持ReadyBoost[9]
  • 专利授权方式不明确。夏普RIM[10]任天堂分别和微软达成了exFAT授权协议。存在专利费。微软曾经为FAT的一部分申请专利。[11]曾经有用户从三星的Android中分离出不基于FUSE实现的exFAT内核模块代码并按照Linux的GPL协议释放出来,被认为三星得到微软支持下开发的。[12]之后三星也正式释放了相应模块代码。
    • 2019年8月,微软公开了exFAT的技术文档,并支持将exFAT功能集成到Linux内核[13]。Linux内核将于版本5.4中提供初步支持[14][15]
  • Windows XP SP3之前的旧版Windows暂时不支持exFAT,Windows XP可以安装修改更新KB955704来支持exFAT[16],Linux操作系统需要通过第三方开发的文件系统驱动来支持exFAT(例如,谷歌公司的exfat工具[17]、FUSE exfat、exfat-nofuse[18]、sdfat),Mac OS X可透过升级至10.6.5来全面支持exFAT[19]
  • UEFI不支持exFAT,只支持FATFAT32NTFS,格式化为exFAT的EFI启动磁碟将无法被识别。然而现今支持EFI引导安装的主流操作系统,其安装文件都存在单个文件大于4GB的情况(如Windows 10install.wimLinux发行版放置系统文件的SquashFS映像)仅能使用NTFS,显然不能再使用FATFAT32

参见

参考资料

  1. ^ 1.0 1.1 KB955704. 2009-01-27 [2009-01-28]. (原始内容存档于2011-05-24). Description of the exFAT file system driver update package [for 32-bit XP] 
  2. ^ US application 20,090,164,440  contains Microsoft exFAT specification (revision 1.00)
  3. ^ Brandon LeBlanc. Vista SP1白皮書. 微软. 2007-08-28 [2007-08-28]. (原始内容存档于2007-09-02). 
  4. ^ Microsoft. exFAT Specification. August 28, 2019 [2021-01-02]. (原始内容存档于2020-07-19). 
  5. ^ exFAT 文件系统规范. [2021-12-13]. (原始内容存档于2021-12-13). 
  6. ^ 在exFAT分区中安装并启动Windows系统 - IT之家. www.ithome.com. 2019-06-23 [2019-06-23] (中文). 
  7. ^ Anandtech - Second Shot: Windows Vista SP1. [2009-01-28]. (原始内容存档于2008-12-02). 
  8. ^ Mike Nash: Windows Vista Service Pack 2 Beta页面存档备份,存于互联网档案馆),The Windows Blog
  9. ^ exFAT Versus FAT32 Versus NTFS. [2008-07-06]. (原始内容存档于2013-02-02). 
  10. ^ RIM获微软exFAT专利授权协议:用于存储技术. [2012-09-19]. (原始内容存档于2012-09-20). 
  11. ^ Elizabeth Montalbano. Microsoft FAT patents upheld. Computerworld. 2006-01-11 [2008-02-22]. (原始内容存档于2012-06-05). 
  12. ^ Samsung Properly Open-Sources exFAT File-System - Phoronix. www.phoronix.com. [2019-04-03]. (原始内容存档于2019-04-03). 
  13. ^ Microsoft wants to bring exFAT to the Linux kernel. TechCrunch. [2019-09-11]. (原始内容存档于2019-10-16) (美国英语). 
  14. ^ cnBeta. [图]Linux Kernel 5.4正式版发布:支持exFAT 引入内核锁定功能 - Linux. cnBeta.COM. [2019-11-26]. (原始内容存档于2019-11-25) (中文(中国大陆)). 
  15. ^ Prakash, Abhishek. Linux Kernel 5.4 Released! Brings ExFAT & Lockdown to Linux. https://itsfoss.com/. [2019-11-26]. (原始内容存档于2019-12-08) (美国英语). 
  16. ^ KB955704. [2009-01-28]. (原始内容存档于2011-05-24). 
  17. ^ exfat - Free exFAT file system implementation. [2012-09-19]. (原始内容存档于2012-09-22). 
  18. ^ exfat-nofuse 的 GitHub 项目主页. [2019-09-14]. (原始内容存档于2019-03-26). 
  19. ^ Mac OS X 10.6.5 正式支援 exFAT-蘋果中文知識網. [2011-03-05]. (原始内容存档于2011-02-27). 

外部链接