Hello! 欢迎来到小浪云!


exFAT 文件系统指南


在国庆假期中,我拍摄了一些手机视频,打算将它们存到刚买的移动硬盘上。然而,我发现我的mac电脑无法向移动硬盘写入数据,因为移动硬盘的文件系统是ntfs,而mac默认不支持写入ntfs。

exFAT 文件系统指南虽然可以购买软件来解决这个问题,但我不想为此付费。经过一番研究,我发现将移动硬盘的文件系统转换为exFAT就能解决这个问题,因为Mac原生支持读写exFAT。

由于这个问题普遍存在,我在这里分享一些关于exFAT文件系统的知识。

一、文件系统的概念 文件系统是文件存储的方式,简单来说,它就像一个门牌系统,为存储设备分配门牌号,每个文件都有自己的门牌号,这样就能精确定位文件。

没有文件系统的硬盘就像一块荒地,无法精确定位文件的位置。只有通过文件系统划分门牌,才能找到文件的具体位置,比如“人民路15号”。文件系统就是这种门牌划分的方法。

exFAT 文件系统指南所有存储设备都需要指定文件系统,计算机才能进行读写操作。所谓“格式化”,就是为硬盘安装文件系统。不同的操作系统有不同的文件系统,Linux使用ext4,OSX使用HFS+,Windows使用NTFS,Solaris和unix使用ZFS。如果计算机不认识某个文件系统,就会显示该盘无法读写。

目前的问题是,NTFS文件系统是Windows的专有系统,Mac可以读取但默认无法写入。

二、Windows的文件系统 Windows系统主要有三种文件系统:FAT32、NTFS和exFAT。在格式化硬盘时,Windows会提供这三种选项。应该选择哪一种呢?

exFAT 文件系统指南FAT32是最老的文件系统,所有操作系统都支持,兼容性最佳。然而,它是为32位计算机设计的,文件大小不能超过4GB,分区不能超过8TB。对于大文件来说,这个文件系统已经过时了。

NTFS是Windows的默认文件系统,用来替代FAT32。Windows的系统盘只能使用这个系统,移动硬盘通常也默认使用它。

exFAT可以看作是FAT32的64位升级版,ex是extended的缩写(表示“扩展的FAT32”)。虽然功能不如NTFS,但它解决了文件和分区的大小限制,最大可达128PB。由于Mac和Linux电脑可以读写这种系统,所以移动硬盘的文件系统可以改成exFAT。

三、解决方案 将移动硬盘格式化为exFAT文件系统,就可以解决这个问题。

在Windows中,可以通过资源管理器或“我的电脑”进行格式化。

exFAT 文件系统指南在Mac上,可以在“磁盘工具”中进行格式化。

exFAT 文件系统指南格式化完成后,问题就解决了。如果使用Linux系统,可能需要安装exFAT支持。在UbuntuDebian上,可以执行以下命令

$ sudo apt-get install exfat-utils exfat-fuse

对于一般读者,到这里就足够了。如果你像我一样,想在Linux上进行exFAT格式化,请继续阅读。

四、Linux的exFAT格式化 在Linux上进行硬盘格式化,首先需要找到设备路径。

$ sudo fdisk -l

上述命令会列出所有存储设备,移动硬盘通常是/dev/sdX1的形式,例如/dev/sdc1。这里需要了解sdX1的含义,sd表示可移动设备和SATA设备,X表示设备的序号,依次为a、b、c等,最后的1表示这是该设备的第一个分区。

然后,使用下面的命令进行格式化。

$ sudo mkfs.exfat /dev/sdX1

如果你的存储设备只显示为/dev/sdX,没有最后的数字,表示这个设备没有分区。exFAT只能用来格式化硬盘的一个分区,所以必须先分区,再格式化。下面介绍如何分区。

五、分区表 硬盘分区指的是一块硬盘上同时存在多个文件系统,每个文件系统管理的区域称为一个分区。例如,一块100GB的硬盘可以一半是NTFS分区,另一半是exFAT分区。

硬盘必须先分区,才能指定每个区的文件系统。分区大小、起始位置、结束位置、文件系统等信息,都存储在分区表中。

分区表有两种格式:MBR和gpt。前者是传统格式,兼容性好;后者更现代,功能更强大。一般推荐使用GPT。gdisk命令用于分区操作。

$ sudo gdisk /dev/sdX GPT fdisk (gdisk) version 0.8.8 Partition table scan:   MBR: not present   BSD: not present   APM: not present   GPT: not present Creating new GPT entries. Command (? for help):

上述命令表示对/dev/sdX进行分区。输出结果表明,这个设备还没有分区表。

第一步,使用o命令创建GPT分区表。

Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): Y

第二步,使用n命令新建一个分区。

Command (? for help): n Partition number (1-128, default 1): First sector (34-16326462, default = 2048) or {+-}size{KMGTP}: Last sector (2048-16326462, default = 16326462) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 0700 Changed type of partition to 'Microsoft basic data'

上述代码中,分区号(Partition number,默认为1)、起始扇区、结束扇区,都可以接受默认值,直接按回车。这时整个硬盘只建一个分区,占据所有空间。文件系统的类型要设成0700,代表exFAT。

第三步,使用w命令写入所有变更。

Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdX. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully.

到了这一步,分区表应该已经建立了。然后,使用上一节的命令,建立exFAT文件系统。

$ sudo mkfs.exfat /dev/sdX1 mkexfatfs 1.0.1 Creating... done. Flushing... done. File system created successfully.

六、参考链接 Formatting a Universal Drive What’s the Difference Between FAT32, exFAT, and NTFS? How to Mount and Use an exFAT Drive on Linux

相关阅读