HOWTO: NTFS with read/write support using the ntfs-3g (easy & safe method)

Introduction :

Support of NTFS partition for linux has always been a problem. Projects exist since many years but was always experimental, and was claim to be not safe. On the 14th of July 2006, a developer of the linux-ntfs team, Szabolcs Szakacsits, revolution this area by releasing a new driver ntfs-3g which claimed to provide full read/write support for all NTFS partition. After months of successful testing by hundreds of thousands of users in beta status, ntfs-3g is now fully stable.

Before starting : Please read attentively the instructions, and don't do a simple copy/paste like a lot of people do. I propose 2 ways of configuring ntfs-3g, and if you don't read the instructions, you'll finish by doing the 2 (don't laugh, it happened to more people that you could expect)

1. Set up your sources :

To get the latest ntfs-3g, you will need first to add a repository to your source.list. Open a terminal and type:

Code:

gksu gedit /etc/apt/sources.list

At the end of the file, just add one of the following mirror:
Warning : This repo don't contain amd64 packages. See at the end the amd64 section for more informations.

Feisty users don't have to deal with additionnal repository, all is already in ubuntu repo.

The main channel contains the latest ntfs-3g package and an up to date fuse package.

The main-all channel contains modified and unofficial version of pmount and hal (only for dapper) to have a better integration of ntfs-3g in the desktop, and to be able to use ntfs-3g with external device. It also provide a configuration tool, ntfs-config. If you want to configure your system manually and don't need integration in gnome or kde, you can disable this channel.

2. Installation :

Packages of my repository are authenticated with a gpg key. To use it, you should execute the following command :

Be carfull the choice is here
Now you have the choice between an automatic configuration (via ntfs-config) or a manual configuration.

3. Automatic Configuration :

If you go for the automatic configuration, install ntfs-config. It will automaticly install ntfs-3g :

Code:

sudo apt-get install ntfs-config

Now, it's rather easy. Just launch ntfs-config via the menu (in system tools) or via the terminal :

Code:

gksu ntfs-config

If your NTFS partitions are not yet configure, it will ask you to choose a name that will be use as mount point. Just put the name you want.
Then just enable write support for internal and/or external device, and that's all.

3(alternative). Manual Configuration :

If you go for the manual configuration, just install ntfs-3g :

Code:

sudo apt-get install ntfs-3g

When all is install correctly, we need to configure the NTFS partition to be mount by ntfs-3g.
External device are automatically configure when plug, so you don't need to do this part for them.
To know first the name of your NTFS partition, type in a terminal:

Code:

sudo fdisk -l | grep NTFS

you will see in the first colone, the name of your NTFS partition(s).
Now you need to configure them in /etc/fstab. We will also make a backup of this file. In a terminal, type:

Code:

sudo cp /etc/fstab /etc/fstab.bak
gksu gedit /etc/fstab

locate the line of your NTFS partition. If they are there, just change them so it looks like that:

(of course replace <your partition> & <mount point> by your configuration)
If your partition is not there, you'll have to first create a directory where you would like to mount it :

Code:

sudo mkdir /media/<the name you want>

and add a line at the end of the file like the one above.

Tips: You can change your locale option ( for ex locale=fr_FR.utf8 ). Execute 'locale -a' in a terminal to know which one are supported by your system.
Tips2: If you want to now more about the option available, have a look at 'man ntfs-3g'

Now remount all your drive

Code:

sudo umount /dev/<your partition>
sudo mount -a

or simply reboot.

4. Time to start :

Now some important point,
- Before using it, have a look at the WHAT YOU COULDN'T DO category.
- Look at the COMMON PROBLEM section before asking.

5.(optional) For own compile kernel

If you have compile your own kernel (not from the repo), fuse is probably not implemented. To check that:

Code:

modprobe -l fuse

If it return nothing, you will need to compile it yourself.
Install the source:

Code:

sudo apt-get install fuse-source

and have a look at /usr/share/doc/fuse-source/README.Debian to know how to compile it.

6. For amd64 users :

My repo don't contain amd64 packages so to use ntfs-3g for this arch.For dapper, you'll have to complile the needed package yourself with those instructions
This will replace step 1 and 2, you'll have then to follow step 3 and 4. For edgy, ntfs-3g is in universe, so you'll not need my repo, but to use NTFS external device, you'll need a modified version of pmount that i provide in my repo. To install it, follow those instructions

WHAT YOU COULDN'T DO :

The present limitations of this driver are
- access to encrypted files
- writing compressed files (reading is ok)
- change file ownership and access right

COMMON PROBLEM :

* The gnome Trash don't support neither ntfs filesystem nor fat32 filesystem, so when you delete files with nautilus, they don't go in the trash, but in an hidden directory, at the root of the partition, call .Trash-<username>. So to 'empty the trash', you'll have to show hidden files (<Ctrl><H>) and use the suppr function of nautilus on this directory (<Shift><Suppr>)

* Checking manually your partition in windows, chkdsk can report the bellow message :
Cleaning up N unused index entries from index $SII of file 0x9.
Cleaning up N unused index entries from index $SDH of file 0x9.
Cleaning up N unused security descriptors.
These messages are part of an optimization process which is
completely independent of ntfs-3g. Nothing to worry about them.

* If your external device don't show up on the desktop when plug, that could mean that it fails because of a wrong configuration, or an unclean device. To know what is the problem, you should mount it using the terminal, with :

Code:

pmount-hal /dev/sda1

Of course, replace /dev/sda1 by the name of your partition.
Post a message here if you don't know what to do.

* If your internal device is not mounted at boot time, try in a terminal :

Code:

sudo mount -a

* If you get this error :

Code:

$LogFile indicates unclean shutdown (0, 0)
Failed to mount '/dev/hdc1': Operation not supported
Mount is denied because NTFS logfile is unclean. Choose one action:
Boot Windows and shutdown it cleanly, or if you have a removable
device then click the 'Safely Remove Hardware' icon in the Windows
taskbar notification area before disconnecting it.
Or
Run 'ntfsfix' on Linux unless you have Vista, then mount NTFS with
the 'force' option read-write, or with the 'ro' option read-only.
Or
Mount the NTFS volume with the 'ro' option in read-only mode.

boot windows, and then shutdown and boot ubuntu (100% guarentee of success).
If you don't dual boot, get ntfsfix from the ntfsprogs package, run it on the windows device, and add the 'force' option in /etc/fstab for your windows device.

Re: HOWTO: NTFS with read/write support using ntfs-3g (easy method)

I had done a previous tutorial to set up read/write support for NTFS. Now that I've done this tutorial (and everything is working well ) using ntfs-3g, do I need ntfsprogs anymore or is this replacing that?

Re: HOWTO: NTFS with read/write support using ntfs-3g (easy method)

Haani - this should work fine on any external usb drive,
You can even mount it in fstab (/dev/sda1) mine is workin very well
deleted 80Mb and copied another 102Mb over to the drive no loss all OK and very fast.

Re: HOWTO: NTFS with read/write support using ntfs-3g (easy method)

Problem here. When I mount the drives only the first one shows up on my desktop. Also, when I do "umount -a" and then "mount -a" my external drive does not remount. Even after I power it off and on again. Any help?