博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 下exfat分区,exFAT 文件系统指南
阅读量:5253 次
发布时间:2019-06-14

本文共 3189 字,大约阅读时间需要 10 分钟。

国庆假期,我拍了一些手机视频,打算存到新买的移动硬盘。

然后,就傻眼了。我的 Mac 电脑无法写入移动硬盘,因为移动硬盘的默认文件系统是 NTFS,Mac 不支持写入 NTFS。

8acd038eccb807209daf71bce4feca4d.png

虽然可以买一个软件解决这个问题,但是我不想为这种功能付钱。经过一番研究,我发现把移动硬盘的文件系统改成 exFAT,就可以解决问题,Mac 原生支持读写 exFAT。

由于这个问题很普遍,下面我就来写一写跟 exFAT 相关的知识。

一、文件系统

所谓文件系统,就是文件的储存方式。简单说,它就是一个门牌系统,为储存设备划分门牌号,每个文件分配一个门牌,然后就能按照门牌找到文件。

没有文件系统的硬盘,就是一块荒地。如果有人住在那里,你只能说那里有人住,精确位置你说不出来。只有划分了路牌,你才能说出,这个人住在"人民路15号",这样才能精确定位。文件系统就是路牌的划分方法。

cc0f267567259af3277c5dad403c9182.png

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

现在的问题就是,NTFS 文件系统是 Windows 的专有系统,Mac 可以读,但是默认不能写入。

二、Windows 的文件系统

Windows 系统主要有三种文件系统。

FAT32

NTFS

exFAT

格式化硬盘的时候,Windows 系统会提供这三种文件系统让你选。这时应该选哪一种呢?

f66296a2aecce957928e51f3880fecf5.png

FAT32 是最老的文件系统,所有操作系统都支持,兼容性最好。但是,它是为32位计算机设计的,文件不能超过 232 - 1 个字节,也就是不能超过 4GB,分区不能超过 8TB。目前来看,这个文件系统有点过时了,只适合小文件,如果有大的视频文件,就不能使用它。

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

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

三、解决方案

移动硬盘买来后,你把它格式化成 exFAT 文件系统,问题就解决了。

Windows 在资源管理器或我的电脑里面,都可以进行格式化。

982aabd0aa190205d1b1821d45133282.png

Mac 在磁盘工具进行格式化。

8f132f82a6b14fd02d34462d9ed432be.png

格式化完成后,就 OK 了。如果你使用 Linux 系统,可能需要装一下 exFAT 支持,Ubuntu 和 Debian 执行下面的命令。

$ 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 只能用来格式化硬盘的一个分区,所以必须先分区,再格式化,下面介绍如何分区。

五、分区表

所谓硬盘分区,就是指一块硬盘上面,同时存在多个文件系统。每个文件系统管理的区域,就称为一个分区(partition)。比如,一块 100 GB 的硬盘,可以一半是 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.

六、参考链接

(完)

转载地址:http://bzrav.baihongyu.com/

你可能感兴趣的文章
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>