NTFS-3G (简体中文)
NTFS-3G 是微软 NTFS 文件系统的一个开源实现,包括读写支持。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。本文介绍如何使用ntfs-3g来读写NTFS分区
Contents
安装ntfs-3g
手动挂载
你有两个选择。传统方法是:
# mount -t ntfs-3g /dev/<your-NTFS-partition> /{mnt,...}/<folder>
挂载类型 ntfs-3g
不需要显式指定。 mount
命令默认会调用 /sbin/mount.ntfs
,它在安装了 ntfs-3g 之后被符号连接到 /bin/ntfs-3g
。
第二个选择是直接调用 ntfs-3g
:
# ntfs-3g /dev/sda1 /mnt/<mount point>
配置
你的 NTFS 分区可以被配置成自动挂载,或者预先配置好来安装你想要的方式挂载。配置可以在文件系统配置文件 fstab 中指定或者使用 udev 规则。
默认配置
使用默认配置会在启动时挂载 NTFS 分区。使用这种方法,如果挂载位置的父文件夹有合适的用户或组权限,用户或组就可以读写这个分区。
把以下内容放置在/etc/fstab
中:
# <file system> <dir> <type> <options> <dump> <pass> <partition> <mount point> ntfs-3g defaults 0 0
允许组/用户
你也可以告诉 /etc/fstab
(the NTFS-3G driver) 其他的选项,例如谁运行访问(读)分区。例如,对于允许 users
组访问:
/dev/<NTFS-part> /mnt/windows ntfs-3g gid=users,umask=0022 0 0
默认情况下,ntfs-3g 驱动只允许 root 用户写入。为了允许用户写入,使用 dmask
参数允许用户写入:
/dev/<NTFS-part> /mnt/windows ntfs-3g gid=users,fmask=113,dmask=002 0 0
如果你运行一个单用户机器,你也许想要自己拥有整个文件系统:
/dev/<NTFS-part> /mnt/windows ntfs-3g uid=USERNAME,gid=users 0 0
基本的 ntfs-3g 选项
对大多数人来说,上面的设置已经足够了。这是一些其他的对于不同的Linux文件系统的通用选项。完整列表参见这里
- umask
- umask 是一个嵌入的 shell 命令,可以自动设置新创建的文件的权限。对于 Arch Linux,对于 root 和 user 默认的 umask 是 0022。对于 0022 新目录有目录权限755,新文件有权限 644。你可以在这里查看更多关于 umask 权限的信息:。
- noauto
- 如果设置了
noauto
,/etc/fstab
中的 NTFS 条目不会在启动时自动挂载。 - uid
- 用户 id 号码。这允许指定用户具有完全的访问权限。你的uid可以用
id
命令获得。 - fmask and dmask
- 与
umask
类似但是分别定义的是文件和目录的权限。 - locale
- (2009.1.1 之后可忽略) -
一些 locales 需要指定区域选项才能正确显示本地字符。
其他配置
一些其他帮助您设置 NTFS 分区。
KDE 4
对于 KDE >= 4.4,右击 Device Notifier applet 选择 Device Notifier Settings 然后在 Removable Devices 选择你的分区选择 Automount on login.
NTFS-config
ntfs-configAUR 是一个程序,如果其他方法不奏效的话,可以帮助您配置 NTFS 分区。
疑难解答
损坏的NTFS文件系统
如果NTFS文件系统有错,ntfs-3g会以只读方式挂载它。要修复NTFS系统,你得启动Windows并使用它的磁盘检查程序。
想要修复 NTFS 文件系统,该设备必须已经被卸载。例如,想要修复 /dev/sda2
中的 NTFS 文件系统:
# umount /dev/sda2 # ntfsfix /dev/sda2 Mounting volume... OK Processing of $MFT and $MFTMirr completed successfully. NTFS volume version is 3.1. NTFS partition /dev/sda2 was processed successfully. # mount /dev/sda2
如果顺利的话,该分区已经可以写入了。
元数据保存在Windows中,拒绝挂载
当与Windows 8 或 10双引导时,试图挂载一个可见的Windows可能会出现如下错误:
The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sdc1': Operation not permitted The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option.
问题是因为Windows 8中引入"快速启动"特性。启用快速启动后,所有分区的元数据的一部分被还原到它们在以前关闭的状态。因此,在 Linux 上所做的更改可能会丢失。这会发生在任何选择"关闭"或"休眠" NTFS 分区的Windows 8 或 10 下。然而,通过选择"重新启动",离开 Windows 是看似安全的。
要启用对其他操作系统的系统分区写入,请确保禁用快速重启。要做到这一点通过以管理员身份执行命令:
powercfg /h off
你可以在 控制面板 >硬件与声音> 电源选项 > 系统设置 > 当电源键按下时做什么, 去掉勾选启用快速启动
挂载失败
如果你按本指南内容操作也无法挂载你的 NTFS 分区,可以尝试一下在 fstab
中的所有 ntfs 分区里加上 UUID。参见 example.