如何挂载一个 NTFS 文件系统
[注:假若你应用的是一个 centosplus 内核、阅读这部份]
1. 安装所需的组件
虽然旧版的 ntfs 在读写模式下很容易会吃掉你的数据,ntfs-3g 似乎能安全地进行读写。详情见 ntfs-3g 的网页。
EPEL 软件库收录了适用于 CentOS-7 及 CentOS-6 的 ntfs-3g 组件。若要安装,请按照 软件库 页的指引启用 EPEL 软件库: {{{yum install ntfs-3g fuse }}} 如果你选择让 EPEL 缺省为停用的 {{{yum --enablerepo epel install ntfs-3g fuse }}}
你也许会想执行 {{{yum install ntfsprogs ntfsprogs-gnomevfs }}} 来加入额外功能。譬如说,利用 ntfsclone 复制 ntfs 分区,选择性地增加空间。ntfsprogs-gnomevfs 只适用于 CentOS-6。
2. 挂载一个 NTFS 文件系统
假设你的 ntfs 文件系统是 /dev/sda1 而你将会把它挂载在 /mymnt/win,请执行以下步骤。
首先,创建挂载点。 {{{mkdir /mymnt/win }}} 之后,编辑 /etc/fstab 如下。要只读式挂载: {{{/dev/sda1 /mymnt/win ntfs-3g ro,umask=0222,defaults 0 0 }}} 要读写式挂载: {{{/dev/sda1 /mymnt/win ntfs-3g rw,umask=0000,defaults 0 0 }}} 现在你可以进行挂载。执行: {{{mount /mymnt/win }}}
3. centosplus 内核的用户
由 CentOS-5.3 开始,centoplus(zh/Repositories/CentOSPlus)内核没有启用 NTFS 模块。这是由于 5.3 内的 NTFS 是不能运作的。详情请参阅 https://bugzilla.redhat.com/show_bug.cgi?id=481495 。如困你希望使用来自 CentOS 内核的 NTFS 模块,你可以安装来自ELRepo 计划的 kmod-ntfs。然而,有别于 ntfs-3g,附属内核的 ntfs 模块只提供极度有限的写入功能。以下文字来自内核的 Kconfig 文件(多谢 AlanBartlett 提供这数据):
「唯一被支持的运作是在不更改长度的情况下重写现存文件。创建文件及目录,或者将它们删除和换名都不可能。请注意,只有非常注的文件才可以被写入,因此你可能会发现不能把数据写入一些很细小(小于 500 字符左右)的文件内。」
以下描述适用于 CentOS 5.2 或更旧版本。
在 CentOSPlus 内核,ntfs 及 fuse 内核模块都同时被启用。ntfs 与 ntfs-3g 之间的主要差别就是前者是只读的,而后者可读写。因此,你若不需要权限来写入 ntfs 文件系统,便不用安装额外的组件。你只需在 /etc/fstab 内加入这行: {{{/dev/sda1 /mymnt/win ntfs ro,umask=0222,defaults 0 0 }}} 假若你想有读写权限,你便需要 fuse-ntfs-3g 组件,但由于 fuse 模块已通过内核提供,因此你不需要 dkms 组件: {{{yum install fuse fuse-ntfs-3g }}} 然而,CentOS 5 内所包含的 fuse 模块(截至 2007 年 8 月)产生一个信息:WARNING: Deficient FUSE kernel module detected。它依然可以操作,但我们推荐使用 RPMforge 内(较新)的模块。此外,你应该升级至不含这个问题的最新内核。
因此,执行: {{{yum install fuse fuse-ntfs-3g dkms dkms-fuse }}} 以 RPMforge 内的 fuse 内核模块取代现有版本。
另外请参阅:
http://wiki.linux-ntfs.org/doku.php?id=ntfs-en#can_i_mount_an_ntfs_volume (只读式挂载)
这页的英文版本由 AkemiYagi 撰写。欢迎各位作出修改。
Translation of revision 54