NTFS-3G (简体中文)

From ArchWiki
Jump to: navigation, search
翻译状态: 本文是英文页面 NTFS-3G翻译,最后翻译时间:2012-06-26,点击这里可以查看翻译后英文页面的改动。

NTFS-3G 是微软 NTFS 文件系统的一个开源实现,包括读写支持。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。本文介绍如何使用ntfs-3g来读写NTFS分区

安装ntfs-3g

安装位于官方软件仓库的软件包 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.

其他资源