Why: I found much advice on mounting NTFS partitions, anecdotal, fragmented, mostly good advice in the major Suse community support forums. But I was confused by the diversity. And some advice was problematic. So I decided to write down some procedures that I found would work for me. I’ve tried to create a framework for understanding too — so that new users feel they’re doing more than casting spells from the command line. Hope it helps.

Summary

  • Download and install FUSE which allows creation of userspace file systems (including NTFS)
  • Download and install NTFS-3G, the driver for the NTFS filesystem
  • Either permanently mount an NTFS partition by adding the mount data into the file system table located at /etc/fstab
  • Or mount NTFS partitions temporarily from the command line
  • Access permissions may range from permit-everyone to one-user-only

RPM Packages

The openSuse dot org site maitains a repository of filesystem-related RPMs, including the RPMs for FUSE and NTFS-3G. These look like fuse-2.6.5-3.1.i586.rpm for FUSE and ntfs-3g-1.328-2.2.i586.rpm for NTFS-3G but remember that the version numbers change over time. I like RPMs because they’re so easy to install and more to the point, to uninstall. So I recommend you download the RPMs and install them with YAST.

Permanent Mounts

You can observe your NTFS partition in Yast’s partitioner manager, available via Yast –> System –> Partitioner. It will look something like mine which has this entry:

/dev/hda2      10.1 GB    HPFS/NTFS

Suppose that you want to mount that partition in a folder you create for it located anywhere you like in your filesystem, say at /mnt/winxp.

To mount your NTFS partition permanently, add your version of the following line into the file system table, at the bottom, no line spaces, and make sure it’s followed by a carriage return:

/dev/hda2    /mnt/winxp    ntfs-3g    defaults    0 0

When you reboot, the partion will mount into the folder /mnt/winxp with permissions drwxrwxrwx, i.e with read/write access for everybody, in the style of Microsoft’s insecure filesystems.

Here’s an alternate option for fstab: If you want the permissions to be linux-like, you can specify a particular owner for the mount folder and its contents with this sort of line in fstab:

/dev/hda2    /mnt/winxp    ntfs-3g    uid=1002,gid=100,umask=0022    0 0

In this example the “umask” with octal value 0022 produces permissions drwxr-xr-x on folder /mnt/winxp, for the owner/user with gid=1002, just like a standard linux user.

Temporary Mounts

If you want to mount the NTFS partition temporarily, then you don’t put an entry into fstab. Instead you just execute this command as root user in a terminal:

hostname:~ # mount -t ntfs-3g /dev/hda2 /mnt/winxp

Note two things: Regardless of who owns the folder “winxp”, this mount command changes the folder’s permissions to read/write for everyone. Also, in openSuse 10.2 the command will produce a statement in your terminal beginning “Deficient Linux kernel detected ….”. That’s only a comment. It doesn’t require action.

OK, that’s fine if you want everyone to have access to the mounted NTFS partition in folder /mnt/winxp. If you want normal Linux-like permissions (rather than Microsoft free-for-all permissions) to apply to the mounted partition, you execute this alternate command as root user in a terminal:

hostname:~ # mount -t ntfs-3g -o rw,uid=1002,gid=100,umask=0022 /dev/hda3 /mnt/hda3

This alternate command-line version produces permissions drwxr-xr-x on folder /mnt/winxp, for the owner/user with gid=1002, which is the normal situation for a Linux user’s home folders.

If you want to adjust the folder, document or user permissions further, you should read the man pages. Check out the umask, dmask and fmask options. Also note the useful force option.

Here’s a handy little table of octal permissions to use for directory permissions:

  • owner=rwx group=rwx other=rwx; i.e for drwxrwxrwx use umask=0000
  • owner=rwx group=rwx other=r-x; i.e for drwxrwxr-x use umask=0002
  • owner=rwx group=rwx other=—; i.e for drwxrwx— use umask=0007
  • owner=rwx group=r-x other=r-x; i.e for drwxr-xr-x use umask=0022
  • owner=rwx group=— other=—; i.e for drwx—— use umask=0077

Credits – I adopted this info and these methods after reading the following:

  • the man pages (man mount.ntfs-3g)
  • Search on “+ntfs +mount” in Suse Linux Support Forums
  • Search on “+ntfs +mount” in SuseForums.Net
  • Crashoverride’s article: How To Get Full Read And Write Support For Ntfs
  • OpenSuse article: How to Install NTFS Write Support

Cheers
Swerdna