How to Mount an NTFS Filesystem

[Note: if you are running a centosplus kernel, see this section]

Installing required packages

<!> While older ntfs drivers were prone to eat your data in r/w-mode, ntfs-3g seems to be r/w safe. See the ntfs-3g QA page for more information.

<!> As of CentOS 5.4 (kernel 2.6.18-164 or newer), the fuse kernel module is included in the kernel itself. Therefore, dkms and dkms-fuse are no longer required. If you have previously installed dkms-fuse, please uninstall it by a yum remove dkms-fuse command.

Make sure you have the rpmforge repo installed. If not, refer to Repositories.

Install the following packages.

yum install fuse fuse-ntfs-3g 

If the rpmforge repo is disabled by default,

yum --enablerepo=rpmforge install fuse fuse-ntfs-3g 

Now, proceed to the Mounting an NTFS filesystem section below. (If you are still running CentOS 5.3 or older, then you need to read the rest of this section.)

Install the following packages.

yum install dkms dkms-fuse 

(dkms and dkms-fuse install the fuse kernel module)

If you are using the ATrpms repository there is no need to install dkms and dkms-fuse (you still need fuse-ntfs-3g from rpmforge).

The line to install from ATrpms then is

yum install fuse-kmdl

Yet another alternative method is to install kmod-fuse from the ELRepo project. There is no need to install dkms and dkms-fuse (you still need fuse-ntfs-3g from rpmforge).

<!> Do not mix from both repositories if you have rpmforge and atrpms installed. Choose one to install fuse from. You might want to take a look at the yum priorities plugin to priorize one repository over the other.

<!> Make sure that you have the correct kernel-devel package installed - especially having one that matches your running kernel. dkms has kernel-devel as a requirement, but that only pulls in the standard kernel-devel package.

Check your kernel type (uname -r). If you are running the xen kernel (kernel-xen), you need to install:

yum install kernel-xen-devel 

If you're running the PAE kernel (kernel-PAE), you need to install:

yum install kernel-PAE-devel 

Same goes for kernel-smp and so on.

<!> yum will install the latest kernel-*-devel package. Make sure that it fits the kernel you are using. You might have to reboot to run the latest installed kernel after a "yum update". The installed running kernel and the kernel-*-devel package have to match.

Mounting an NTFS filesystem

Suppose your ntfs filesystem is /dev/sda1 and you are going to mount it on /mymnt/win, do the following.

First, create a mount point.

mkdir /mymnt/win 

Next, edit /etc/fstab as follows. To mount read-only:

/dev/sda1       /mymnt/win   ntfs-3g  ro,umask=0222,defaults 0 0 

To mount read-write:

/dev/sda1       /mymnt/win   ntfs-3g  rw,umask=0000,defaults 0 0 

You can now mount it by running:

mount /mymnt/win 

Users of the centosplus kernel

<!> The NTFS module is not enabled in the centoplus (Repositories/CentOSPlus) kernel starting with CentOS-5.3. This is because NTFS in 5.3 is broken. Please see https://bugzilla.redhat.com/show_bug.cgi?id=481495 for details. If you would like to use the NTFS driver from the CentOS kernel, you can do so by installing kmod-ntfs from the ELRepo project. However, unlike ntfs-3g, the write option of the kernel ntfs module is extremely limited. Here is a note from the kernel Kconfig file (thanks to AlanBartlett for this info):

"The only supported operation is overwriting existing files, without changing the file length. No file or directory creation, deletion or renaming is possible. Note only non-resident files can be written to so you may find that some very small files (<500 bytes or so) cannot be written to."

The following description applies to CentOS 5.2 or older.

In CentOSPlus kernels, both ntfs and fuse kernel modules are enabled. The main difference between ntfs and ntfs-3g is that the former is read-only, whilst the latter is read-write. Therefore, if you do not need write access to a ntfs filesystem, there is no need to install additional packages. Simply add this line to /etc/fstab :

/dev/sda1       /mymnt/win   ntfs  ro,umask=0222,defaults 0 0 

If you wish to have read-write access, you would need the fuse-ntfs-3g package. But, because the fuse module is already available in the kernel, you do not need the dkms package:

yum install fuse fuse-ntfs-3g 

<!> However, the fuse kernel module included in CentOS 5 (as of August 2007) produces a message: WARNING: Deficient FUSE kernel module detected. It still works, but it is advised that the fuse module from RPMforge (newer) be used instead. Also, you should update to the latest kernel which does not suffer from this issue.

Therefore, run:

yum install fuse fuse-ntfs-3g dkms dkms-fuse 

to replace the existing fuse kernel module with the one from RPMforge.


See also:

http://wiki.linux-ntfs.org/doku.php?id=ntfs-en#can_i_mount_an_ntfs_volume (read-only mounting)


Written and currently maintained by AkemiYagi. Comments/improvement welcome.

TipsAndTricks/NTFS (last edited 2009-11-08 22:49:58 by AkemiYagi)