Monday, 7 July 2008

Mount partition with ntfs file system

Introduction

Purpose of this article is to provide to reader step by step guide, how to mount partition with NTFS file system on Linux operating system. This article consist of two parts:

  • mount NTFS file system read only access
  • mount NTFS file system with read write access

Mount NTFS file system with read only access

NTFS kernel support

Majority of current Linux distributions support NTFS file system out of the box. To be more specific, support for NTFS file system is more feature of Linux kernel modules rather then Linux distributions. Lets check if we have NTFS modules installed.

ls /lib/modules/2.6.18-5-686/kernel/fs/ | grep ntfs

root@ensit~# ls /lib/modules/2.6.18-5-686/kernel/fs/ | grep ntfs
ntfs
root@ensit~#


NTFS module is presented. Lets identify NTFS partition.

Identifying partition with NTFS file system

One simple way to identify NTFS partition is:

fdisk -l | grep NTFS

root@ensit~#fdisk -l | grep NTFS
/dev/sdb1 * 1 261 210456 7 HPFS/NTFS
root@ensit~#

There it is: /dev/sdb1

Mount NTFS partition

First create mount point:

mkdir /mnt/ntfs

Then simply use mount command to mount it:

mount -t ntfs /dev/sdb1 /mnt/ntfs

root@ensit~#mkdir /mnt/ntfs
root@ensit~#mount /dev/sdb1 /mnt/ntfs
root@ensit~#cd /mnt/ntfs
root@ensit~#ls
test
root@ensit~#


Now we can access NTFS partition and its files with read write access.

Mount NTFS file system with read write access

Mounting NTFS file system with read write access permissions is a bit more complicated. This involves installation of addition software such as fuse and ntfs-3g. In both cases you probably need to use you package management tool such as yum, apt-get, synaptic etc.. and install it from your standard distribution repository. Check for packages ntfs-3g and fuse.

We take the other path which consists of manual compilation and installation fuse and ntfs-3g from source code.

Install addition software

Fuse Install

Download source code from: http://fuse.sourceforge.net/

wget http://easynews.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.1.tar.gz

Compile and install fuse source code:

Extract source file:

tar -xzvf fuse-2.7.1.tar.gz

Compile and install

cd fuse-2.7.1
./configure --exec-prefix=/; make; make install
root@ensit~#ls
fuse-2.7.1.tar.gz
root@ensit~#tar -xzvf fuse-2.7.1.tar.gz
root@ensit~#cd fuse-2.7.1
root@ensit~#./configure --exec-prefix=/; make; make install

ntfs-3g install

Download source code from: http://www.ntfs-3g.org/index.html#download

wget http://www.ntfs-3g.org/ntfs-3g-1.1120.tgz

Extract source file:

tar -xzvf ntfs-3g-1.1120.tgz

Compile and install ntfs-3g source code

NOTE: Make sure that you have pkg-config package installed, otherwise you get this error message:

checking for pkg-config... no
checking for FUSE_MODULE... configure: error: FUSE >= 2.6.0 was not found. Either it's not fully 
installed (e.g. fuse, fuse-utils, libfuse, libfuse2, libfuse-dev, etc packages) or files from an old
version are still present. See FUSE at http://fuse.sf.net/
cd ntfs-3g-1.1120
./configure; make; make install
root@ensit~#ls
fuse-2.7.1 fuse-2.7.1.tar.gz ntfs-3g-1.1120.tar.gz
root@ensit~#tar -xzvf ntfs-3g-1.1120.tar.gz
root@ensit~#cd ntfs-3g-1.1120
root@ensit~#./configure --exec-prefix=/; make; make install

Mount ntfs partition with read write access

mount -t ntfs-3g /dev/sdb1 /mnt/ntfs/

NOTE: ntfs-3g recommends to have at least kernel version 2.6.20 and higher.

root@ensit~# mount -t ntfs-3g /dev/sdb1 /mnt/ntfs/
WARNING: Deficient Linux kernel detected. Some driver features are
         not available (swap file on NTFS, boot from NTFS by LILO), and
         unmount is not safe unless it's made sure the ntfs-3g process
         naturally terminates after calling 'umount'. If you wish this
         message to disappear then you should upgrade to at least kernel
         version 2.6.20, or request help from your distribution to fix
         the kernel problem. The below web page has more information:
         http://ntfs-3g.org/support.html#fuse26

No comments: