Linux挂载NTFS分区的操作指南

 更新时间:2025年10月12日 08:25:38   作者:依赖倒不置  
在使用Windows和Linux双系统的电脑上,通常我们可能也需要在Linux上 访问NTFS分区,虽然Linux用户一般来说不一定会有分区的习惯,但是在双系统情况下,两个系统复用NTFS分区也是很常见的,今天,就来讨论如何正确地在Linux挂载NTFS分区,需要的朋友可以参考下

引言

在使用Windows和Linux双系统的电脑上,通常我们可能也需要在Linux上 访问NTFS分区。虽然Linux用户一般来说不一定会有分区的习惯,但是在双系统情况下,两个系统复用NTFS分区也是很常见的。

今天,就来讨论双系统复用分区的场景下,如何正确地在Linux挂载NTFS分区。

1,Linux的NTFS驱动

事实上,老版本的Linux内核并不原生支持读取NTFS分区,尤其是NTFS是Windows系统专有的文件系统,而不是开放的。因此很长一段时间,都是使用ntfs-3g这个开源驱动实现在Linux挂载并读取NTFS分区。

然而,ntfs-3g是基于FUSE的用户态文件系统驱动,读写性能非常低(可能只有硬盘实际性能的40 - 50%),每次文件操作都需要在内核和用户空间之间切换,带来许多额外开销,这一点在大量小文件或随机读写场景下尤为显著。

因此,在Linux 5.15版本合并了由Paragon公司提供的ntfs3内核驱动,该驱动为内核态驱动,直接在内核中处理I/O,性能显著优于ntfs-3g,支持更高效的缓存和更好的并发处理。

ntfs3刚引入的时候,也存在非常多的缺陷,包括但不限于:

  • 元数据写入不一致
  • 稀疏文件支持存在问题
  • 权限映射异常

不过,该驱动也一直在积极开发维护,这些缺陷也几乎全部被解决,在Linux 6.x版本中,ntfs3驱动已经相当成熟。大家若感兴趣也可以在Linux内核官网跟踪ntfs3驱动的提交信息:传送门

因此,只要你使用的Linux发行版内核版本大于6.0,则建议使用ntfs3驱动以获取更高的性能,否则就使用ntfs-3g保证最大的兼容性。下面也将以ntfs3驱动挂载分区为主讲解。

2,加载ntfs3模块

要挂载NTFS分区,则需要确保系统已加载ntfs3模块,可使用下列命令检查:

lsmod | grep ntfs3

如果有输出,则说明已加载该模块。若输出为空,则表示没有加载该模块,可手动加载:

sudo modprobe ntfs3

然而,手动加载的模块在重启系统后,并不会自动加载。要想自动加载该模块,则需要编辑/etc/initramfs-tools/modules文件,添加一行下列内容:

ntfs3

如图:

然后执行下列命令确保 ntfs3 模块写入initramfs模块加载列表:

sudo update-initramfs -u -k all

重启电脑再执行lsmod就可以发现ntfs3驱动已经加载。

3,挂载NTFS分区

手动挂载分区很简单,只需在-t参数指定ntfs3即可:

mount -t ntfs3 /dev/sdxN /mnt

上述/dev/sdxN替换为实际的NTFS分区设备,/mnt则是挂载点目录,可使用lsblk命令查看分区。

此外,如果想要开机自动挂载,则需要编辑/etc/fstab文件,添加下列行:

# 分区UUID 挂载点 挂载类型 挂载选项 启用备份 启用检查
UUID=xxx... /mnt ntfs3 defaults,discard,prealloc,umask=000 0 0

我们可以使用下列命令查看分区的UUID:

lsblk -o NAME,FSTYPE,SIZE,TYPE,MOUNTPOINTS,UUID

如图:

这里着重看一下在/etc/fstab中的挂载选项:

  • defaults 加入默认的挂载参数,包括:rw, suid, dev, exec, auto, nouser, async, relatime
  • discard 支持TRIM命令以提高删除操作的性能,对于固态硬盘通常强烈建议加上该选项,而对于机械硬盘不需要加上该选项
  • prealloc 为文件过度预分配空间,减少对不同文件执行并行写入操作时的碎片
  • umask=000 文件权限掩码,这里设为000表示该分区挂载后所有用户均可读写

对于权限问题,我们需要根据实际情况权衡。首先我们需要知道umask的机制,这个配置表示权限掩码,主要用于FAT、NTFS、exFAT等不支持Unix权限模型的文件系统(对ext4、xfs等原生支持权限的文件系统无效)。对于实际的文件权限,通常就是由默认权限 - 权限掩码得到,默认权限为:

  • 文件:666
  • 文件夹:777

假设我们想要挂载的分区中,仅有root用户可读写,其余用户仅能读取,则可设定umask=022,这样实际的权限:

  • 文件:666 - 022 = 644
  • 文件夹:777 - 022 = 755

此外,我们上述没有指定挂载后分区所属用户和组,因此默认所属都是root,若要指定则可加入uid=xxx,gid=xxx选项,即指定挂载后文件所属的用户和组的id,可分别使用id -uid -g命令查看当前用户的uidgid,对于系统安装时创建的第一个用户,通常其uidgid均为1000

配置完成后,重启系统即可。

4,挂载失败或无法启动

若挂载失败,或配置/etc/fstab后导致自动挂载失败无法启动,在确认配置完全正确的情况下,则可能是下列原因导致。

(1) ntfs3驱动被屏蔽

若已经根据上述步骤,配置了自动加载ntfs3模块,但是启动后发现实际并未加载,通常说明ntfs3被屏蔽了(在Linux Mint系统会默认屏蔽),我们可以执行下列命令检查是否包含黑名单配置:

lsinitramfs /boot/initrd.img-$(uname -r) | grep ntfs3

结果:

可见有一个conf文件,编辑该文件:

sudo vim /usr/lib/modprobe.d/mint-blacklist-ntfs3.conf

blacklist nfts3一行注释掉,如下图:

执行下列命令更新内核即可:

sudo update-initramfs -u -k all

(2) NTFS分区存在错误

如果ntfs3模块已正确加载,但仍然无法挂载,则大概率是NTFS分区存在错误,为dirty状态。可手动挂载分区,若输出下列报错:

[  245.852880] ntfs3(nvme0n1p4): It is recommened to use chkdsk.
[  245.855540] ntfs3(nvme0n1p4): volume is dirty and "force" flag is not set!
[  268.550293] ntfs3(nvme0n1p4): It is recommened to use chkdsk.
[  268.551428] ntfs3(nvme0n1p4): volume is dirty and "force" flag is not set!
[  282.502211] ntfs3(nvme0n1p4): It is recommened to use chkdsk.
[  282.503173] ntfs3(nvme0n1p4): volume is dirty and "force" flag is not set!
[  313.629987] ntfs3(nvme0n1p4): It is recommened to use chkdsk.
[  313.630935] ntfs3(nvme0n1p4): volume is dirty and "force" flag is not set!
[  427.959717] ntfs3(nvme0n1p4): It is recommened to use chkdsk.
[  427.960755] ntfs3(nvme0n1p4): volume is dirty and "force" flag is not set!

这种就是NTFS分区存在错误,导致这个问题的原因通常是:

  • Windows开启了快速启动,关机后分区仍然是未关闭状态
  • Windows操作该分区后,未正确保存文件和数据
  • 在Windows系统中,是重启后直接进入Linux,而不是关机后再开机进入Linux,因为重启时不会完整关闭NTFS分区

对于该情况,可以先进入Windows系统,然后使用chkdsk命令修复:

# chkdsk 盘符 /f /r
chkdsk D: /f /r

修复完成后,一般能解决该问题。

可见,ntfs3虽然性能较好,但是对脏分区非常敏感,因此在使用ntfs3驱动时,我们则需要关闭Windows快速启动,并正常关机后再开机进入Linux。

以上就是Linux挂载NTFS分区的操作指南的详细内容,更多关于Linux挂载NTFS分区的资料请关注脚本之家其它相关文章!

相关文章

  • 有关Ubuntu在关盖休眠后可行的拯救方法

    有关Ubuntu在关盖休眠后可行的拯救方法

    这篇文章主要介绍了有关Ubuntu在关盖休眠后可行的拯救方法的相关资料,需要的朋友可以参考下
    2026-02-02
  • Linux文件共享与存储:NFS、Samba与CIFS的使用方法

    Linux文件共享与存储:NFS、Samba与CIFS的使用方法

    这篇文章主要介绍了在Linux环境中配置和使用NFS、Samba和CIFS文件共享服务的完整技能,从基础的共享配置到高级的性能优化和安全设置的相关资料,需要的朋友可以参考下
    2025-10-10
  • 基于windowx的Hyper-v安装CentOS系统

    基于windowx的Hyper-v安装CentOS系统

    这篇文章主要介绍了基于windowx的Hyper-v安装CentOS系统 ,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Ubuntu虚拟机配置静态IP的流程步骤

    Ubuntu虚拟机配置静态IP的流程步骤

    Netplan 是 Ubuntu 18.04 及以上版本默认的网络配置工具,相比传统的 ifupdown 更简洁、易维护,本教程以 VMware 虚拟机(Ubuntu 系统)为例,手把手教你配置静态 IP,解决有内网 IP 但无法联网配置冲突等常见问题,需要的朋友可以参考下
    2025-12-12
  • centos yum更新及删除多余启动项

    centos yum更新及删除多余启动项

    在CentOS更新后,并不会自动删除旧内核。所以在启动选项中会有多个内核选项,可以手动使用以下命令删除多余的内核:
    2018-04-04
  • centos7访问windows系统的共享文件夹详解

    centos7访问windows系统的共享文件夹详解

    文章讲述了在Windows和CentOS系统之间共享文件夹并挂载的过程,包括在Windows上设置共享文件夹,以及在CentOS上使用CIFS协议挂载共享文件夹的详细步骤,此外,还介绍了如何设置开机自动挂载和提高挂载点权限的安全性
    2025-12-12
  • 详解CentOS7使用firewalld打开关闭防火墙与端口

    详解CentOS7使用firewalld打开关闭防火墙与端口

    本篇文章主要介绍了CentOS7使用firewalld打开关闭防火墙与端口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • Hadoop 2.X新特性回收站功能的讲解

    Hadoop 2.X新特性回收站功能的讲解

    今天小编就为大家分享一篇关于Hadoop 2.X新特性回收站功能的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Linux基于TCP实现服务端客户端通信的步骤详解

    Linux基于TCP实现服务端客户端通信的步骤详解

    文章详细介绍了Linux系统中的前台进程和后台进程的概念、创建、切换和操作方法,以及进程关系、守护进程、TCP服务器与客户端通信等方面的内容,需要的朋友可以参考下
    2026-03-03
  • Linux安装telnet服务、telnet命令的用法及说明

    Linux安装telnet服务、telnet命令的用法及说明

    文章讲述了如何在Windows和Linux系统中使用Telnet命令进行端口测试,并提供了在Linux系统中解决Telnet登录问题的步骤,包括修改`/etc/securetty`文件和检查PAM配置,最后,文章建议关闭Telnet以提高安全性
    2025-11-11

最新评论