移动存储卡仍然用FAT32文件系统的真相
微软在2001年就为自家的XP系统的本地磁盘默认使用了NTFS文件系统,但是12年之后,市面上的USB可移动设备和SD卡等外置存储器仍然在用着FAT32文件格式,这是什么理由让硬件厂商选择过时的文件系统格式?
很显然,这不是硬件厂商自身的问题,但是对于用户而言,用过NTFS格式后,会发现FAT32文件系统格式带来诸多不便。

FAT32文件系统的不足之处:
• FAT32文件系统不支持4G及以上单文件的存储,FAT32文件系统最大支持的储存空间为2TB。例如高清电影,几乎无法往FAT32格式的磁盘里面拷贝或者写入。
• FAT32不是一个日记型的文件系统,也意味着该文件系统更容易发生问题。但是NTFS就添加了对文件系统的检查功能,降低了磁盘的数据风险问题。
• FAT32不支持文件的权限功能。借助NTFS文件系统,可以进一步增强磁盘存储文件的安全权限能力。
因此,对于Windows的系统盘,最佳的方式是使用NTFS格式的文件系统进行管理,NTFS格式也更安全、可靠以及支持更大的文件体积和驱动设备。

但是对于可移动存储设备的情况,却不同了。
以下是详细原因:
1、U盘/SD卡的容量都低于2TB,因此不用担心磁盘容量有上限的问题。偶尔会用拷贝移动体积在4G左右的文件。
2、无论U盘还是SD卡,不需要使用类似系统盘的日记型磁盘管理功能,最主要的功能在于便携,可移动性,如果U盘使用NTFS格式,也会带来更大的读写量,降低U盘闪存的寿命。
3、对于文件权限功能,U盘或者SD卡也不大会用上。只有当在不同的机器设备之间移除可移动设备时,才会遇到类似的问题。
例如在A机器本地磁盘,由于本地驱动和管理,并分配了唯一的特殊的用户ID号码,就可以一直正常工作,但是对于U盘和SD卡设备而言,由于需要在不同的机器设备之间变更,因此每次都会生成不同的ID识别号码,因此也不存在文件权限安全的问题。
因此,除非是需要使用4G以上的单文件的写入时,才需要将U盘/SD卡格式化为NTFS文件系统,在其余的使用环境下,FAT32文件系统也足够使用了。
最后谈一下所有桌面系统对FAT32和NTFS两种文件系统的兼容性:
• Win平台:两者都兼容
• Mac平台:Mac OS X全面支持读取NTFS文件系统,无法写入;对于FAT32可以正常读写
• Linux平台:可以正常读写NTFS文件格式,但并不完美,一般使用Linux自家的文件系统格式
因此,对于可移动设备,经常会连接到不同的桌面系统上,如果使用FAT32文件系统,都可以正常操作和读写,如果使用可NTFS文件系统,不能保证正常工作。因此对于硬件厂商而言,只能选择一种通用性更强的文件系统,即FAT32,用于U盘或者SD卡等可移动存储设备中。
同时微软也提供了一种exFAT的文件格式,但通用性更低。
移动存储卡仍然用FAT32文件系统的真相的更多相关文章
- FAT32文件系统
 - U盘FAT32文件系统
		
一.FAT文件系统分为四个部分 参考别人的博客 1.http://blog.163.com/ourhappines@126/blog/static/121363154201311811495492/ ...
 - FAT32文件系统--For TF卡
		
1. TF卡空间是如何分配的? 下面以4GB TF卡为例,通过WinHex工具进行分析,其空间分配如下图所示: FAT32把目录当做文件来管理,所以没有独立的目录区,所有的文件目录项都是在数据区里面的 ...
 - SD卡FAT32文件系统格式
		
一.声明 1.本文来源和主旨 2.本文测试环境 二.SD卡FAT文件系统 1.SD卡FAT32文件系统的整体布局 2.FAT文件系统简介 ① 文件分配表 ② 目录项 三.DBR(DOS BOOT RE ...
 - 使用hexdump追踪FAT32文件系统中的一个文件
		
最近在看文件系统基础结构等知识,本来重点是想看EXT4文件系统,但是目前没有找到比较详细说明EXT4文件系统详细结构的,用EXT3的对应着找结果有点出入,在想是不是我用hexdump的参数有问题,于是 ...
 - FAT32文件系统的存储组织结构(二)
		
前面已经基于一个格式化的空U盘分析了一下FAT32文件系统存储的组织结构,下面我们从文件操作的角度来分析一下文件系统的运作机制.由于换了个U盘,所以仍然贴出刚格式化的空U盘的几个重要的数据区如下: ...
 - FAT32文件系统的存储组织结构(一)
		
对磁盘的物理结构,逻辑结构和存储结构有了比较深入的了解后,我们来仔细探讨FAT32文件系统的存储组织结构.说到文件系统的组织结构,我们应该马上意识到,这指的是文件系统在同一个分区内的组织结构,在这个话 ...
 - FAT32文件系统学习(3) —— 数据区(DATA区)
		
FAT32文件系统学习(3) —— 数据区(DATA区) 今天继续学习FAT32文件系统的数据区部分(Data区).其实这一篇应该是最有意思的,我们可以通过在U盘内放入一些文件,然后在程序中读取出来: ...
 - FAT32文件系统学习(上)
		
2011-06-02 22:30:48 目的:需要编写SD读图片的底层驱动程序.所以要了解一个SD卡常用文件系统基本概念.累计学习用时2.5小时. 一,FAT32的保留区 1,引导扇区 :引导扇区是F ...
 
随机推荐
- MVC中HttpContext, HttpContextBase, HttpContextWrapper联系
			
HttpContext // // 摘要: // 封装有关个别 HTTP 请求的所有 HTTP 特定的信息. public sealed class HttpContext : IServicePro ...
 - 解决 TortoiseGit 诡异的 Bad file number 问题
			
http://blog.csdn.net/renfufei/article/details/41648061 问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一 ...
 - Android增加监听的三种实现方式
			
在Android中,为一个按钮增加监听的方式有五种 1.匿名内部类 @Override protected void onCreate(Bundle savedInstanceState) { sup ...
 - C# 之【线程与进程】
			
1. 引言 先来个比喻手法: 如果把上课的过程比作进程,那么每个学生就是一个线程,他们共享教室,即线程共享进程的内存空间.每一个时刻,只能一个学生问老师问题,老师回答完毕,轮到下一个.即线程在一个时 ...
 - JS常用的7中跨域方式总结
			
javascript跨域有两种情况: 1.基于同一父域的子域之间,如:a.c.com和b.c.com 2.基于不同的父域之间,如:www.a.com和www.b.com 3.端口的不同,如:ww ...
 - C++文件操作详解(ifstream、ofstream、fstream)
			
C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ...
 - php 常用几个函数
			
function foo($arg){ $arg_num = func_num_args(); // 获取函数参数的个数 $args = func_get_args(); // 获取 ...
 - node初步一:HTTP请求
			
一. 创建pathtest.js文件 var http= require('http' ); var url= require('url' ); function start (){ function ...
 - android sdk api的层次结构
			
一.系统级:android.accounts android.app 1.OS 相关 android.os android.os.storage ...
 - C# C/S系统软件开发平台架构图(原创)
			
企业版V4.0 - 架构图 企业版V4.0 - 桥接功能.后台连接策略 桥接功能是指应用策略模式,由用户配置本地INI文件选择ADO直连(ADO-Direct)或者调用WCF服务接口访问远程服务器后台 ...