要让Linux系统挂载NTFS格式的磁盘分区,需要借助第三方工具ntfs-3g,因为Linux内核默认对NTFS的支持有限(通常只支持只读模式),以下是详细的操作步骤和注意事项,涵盖工具安装、手动挂载、自动挂载配置及常见问题解决。

准备工作:安装ntfs-3g工具
ntfs-3g是开源的NTFS读写驱动,是Linux环境下操作NTFS分区的核心工具,首先需要检查系统是否已安装,若未安装则根据发行版不同进行安装:
- 基于Debian/Ubuntu的系统:
sudo apt update sudo apt install ntfs-3g
- 基于RHEL/CentOS的系统:
sudo yum install ntfs-3g # CentOS 7及以下 sudo dnf install ntfs-3g # CentOS 8/Fedora
- 基于Arch Linux的系统:
sudo pacman -S ntfs-3g
安装完成后,可通过 ntfs-3g --version 验证是否安装成功。
查看NTFS分区信息
挂载前需确认系统中存在的NTFS分区,可通过以下命令列出所有磁盘及其分区:
-
使用lsblk命令(推荐,显示更直观):
lsblk -f
输出示例中,
FSTYPE列显示为ntfs的分区即为NTFS格式,同时记录其NAME(如/dev/sdb1)和SIZE。 -
使用fdisk命令:
sudo fdisk -l
在输出中找到
NTFS或NTFS/exFAT类型的分区,记录设备路径(如/dev/sda1)。
手动挂载NTFS分区
创建挂载点目录
挂载点是Linux中访问NTFS分区的入口,需创建一个空目录,
sudo mkdir -p /mnt/ntfs_data
(-p参数确保父目录存在,避免报错)
执行挂载命令
使用mount命令结合ntfs-3g驱动进行挂载,基本语法为:
sudo mount -t ntfs-3g [设备路径] [挂载点] [选项]
常用选项说明:

| 选项 | 作用 | 示例 |
|---|---|---|
defaults |
默认选项(包含rw, suid, dev, exec, auto, nouser等) |
defaults |
rw |
读写模式(默认,可省略) | rw |
ro |
只读模式 | ro |
uid=xxx |
设置文件所有者用户ID(避免普通用户无法写入) | uid=1000(当前用户ID) |
gid=xxx |
设置文件所有者组ID | gid=1000(当前用户组ID) |
umask=xxx |
设置文件权限掩码(如022表示644权限,0表示777) |
umask=022 |
nofail |
分区不存在时不报错(适用于自动挂载) | nofail |
示例1:挂载NTFS分区为读写模式(设置当前用户权限)
假设NTFS分区设备为/dev/sdb1,挂载点为/mnt/ntfs_data,当前用户ID为1000:
sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=022 /dev/sdb1 /mnt/ntfs_data
示例2:挂载为只读模式
sudo mount -t ntfs-3g -o ro /dev/sdb1 /mnt/ntfs_data
验证挂载结果
挂载成功后,可通过以下命令确认:
- 查看挂载点信息:
df -hT
输出中应包含挂载点
/mnt/ntfs_data,文件系统类型为ntfs-3g。 - 进入挂载点查看文件:
ls -l /mnt/ntfs_data
配置开机自动挂载
为避免每次重启后手动挂载,可通过编辑/etc/fstab文件实现自动挂载。
获取分区的UUID
UUID是分区的唯一标识符,比设备路径更稳定(避免设备名变化导致挂载失败),使用blkid命令查看:
sudo blkid /dev/sdb1
输出示例:/dev/sdb1: UUID="12345678-1234-1234-1234-123456789ABC" TYPE="ntfs",记录UUID值。
编辑/etc/fstab文件
使用文本编辑器(如vim或nano)打开/etc/fstab:
sudo vim /etc/fstab
在文件末尾添加以下行(根据实际情况修改UUID和挂载点):
UUID=12345678-1234-1234-1234-123456789ABC /mnt/ntfs_data ntfs-3g defaults,uid=1000,gid=1000,umask=022 0 0
字段说明(从左到右):
UUID:分区唯一标识符(来自blkid命令)。/mnt/ntfs_data:挂载点路径。ntfs-3g:文件系统类型(需与mount命令中的-t参数一致)。defaults,uid=1000,gid=1000,umask=022:挂载选项(多个选项用逗号分隔)。0:dump备份选项(0表示不参与dump备份)。0:fsck文件系统检查选项(0表示不检查,NTFS分区建议设为0)。
测试自动挂载配置
保存/etc/fstab后,执行以下命令测试配置是否正确(无需重启):

sudo mount -a
若命令无报错,则配置成功;若有报错,可通过 mount | grep ntfs 查看挂载状态,或检查/etc/fstab语法是否正确。
常见问题解决
-
挂载失败:
mount: unknown filesystem type 'ntfs'
原因:未安装ntfs-3g工具,或内核模块未加载。
解决:确认ntfs-3g已安装(参考“准备工作”部分),或手动加载模块:sudo moduule ntfs。 -
挂载后无法写入:
Permission denied
原因:NTFS分区的权限与Linux用户不匹配。
解决:重新挂载时添加uid=xxx,gid=xxx,umask=022选项(xxx为当前用户ID,可通过id命令查看)。 -
挂载失败:
mount: /mnt/ntfs_data: wrong fs type, bad option, bad superblock
原因:NTFS分区存在错误(如未安全弹出Windows)。
解决:在Windows中安全弹出磁盘,或在Linux中使用ntfsfix工具修复:sudo ntfsfix /dev/sdb1
修复后重新挂载。
-
卸载NTFS分区
若需卸载(如更换挂载点或修复分区),先确保无程序访问该分区,然后执行:sudo umount /mnt/ntfs_data
若提示
device is busy,可强制卸载:sudo umount -l /mnt/ntfs_data。
相关问答FAQs
Q1:挂载NTFS分区后,普通用户无法写入文件,提示“Permission denied”,如何解决?
A1:这是因为NTFS分区的默认权限与Linux用户权限不匹配,可通过重新挂载时设置用户权限解决:
- 卸载当前分区:
sudo umount /mnt/ntfs_data - 使用
uid和gid选项重新挂载(假设当前用户ID为1000):sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=022 /dev/sdb1 /mnt/ntfs_data
- 若需永久生效,修改
/etc/fstab文件中的挂载选项,添加uid=1000,gid=1000,umask=022,然后执行sudo mount -a重新挂载。
Q2:如何安全卸载已挂载的NTFS分区?
A2:安全卸载可避免数据损坏,步骤如下:
- 确保无程序正在访问NTFS分区(关闭使用该分区文件的应用)。
- 执行卸载命令:
sudo umount /mnt/ntfs_data
- 若提示“device is busy”(设备繁忙),说明有程序占用,可先终止占用进程(通过
lsof | grep /mnt/ntfs_data查看占用进程),或使用强制卸载(谨慎使用):sudo umount -l /mnt/ntfs_data
- 卸载成功后,若在Windows中使用该分区,建议先在Linux中执行
sudo sync同步缓存数据,再安全弹出磁盘。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29975.html