Linux to get reliable NTFS write support 

http://www.apcstart.com/3857/linux_to_get_reliable_ntfs_write_support

1st August 2006

Linux has had NTFS support for many years now, but as a reverse engineered filesystem, progress hasn't exactly been fast.

Currently, the original Linux-NTFS project's driver is included in all 2.6 kernels, and is extremely fast and reliable — if all you want to do is read your NTFS partitions.

Write support is available, but it comes with a big fat warning in the kernel that relying on its operation would be a very bad thing indeed.

A few years ago, and not to be outdone, a smart chap called Jan Kratochvil released Captive NTFS, which used Windows' own NTFS.SYS bound in a ReactOS wrapper to provide full read/write support.

It was a great idea — after all, why rewrite a filesystem driver when you can just Windows' own? However for obvious reasons the Microsoft NTFS.SYS driver can't be (legally) publicly distributed, so it's not the ideal solution.

This month, however, the holy grail came within sight with Szabolcs Szakacsits from the Linux-NTFS team presenting a new beta NTFS filesytem driver built to work with FUSE, an extensible system for userspace filesystems.

Tentatively titled NTFS-3g, it features full/read write support for NTFS filesystems without the need for the proprietary Microsoft NTFS driver.

The question, of course, is how does it perform?

Testing on an Athlon 64 4400+ X2 running Gentoo Linux, and using a simple time-d operation to copy a 2G pagefile (from Windows, no less!) to and from an NTFS partition on a separate drive, using both the original Linux-NTFS kernel driver and the new NTFS-3g we got the following results:

For reading, the Linux-NTFS driver used about 35% CPU time and took 37 seconds to complete. Write speed wasn't tested, for obvious reasons.

For NTFS-3g, CPU usage was at around 50% while reading, and performed the operation in exactly the same time frame at 37s. Writing — that is copying to the NTFS partition — was a different story. It worked flawlessly, but it was slow.

CPU usage was 100% split between kernel (presumably through the FUSE driver plugin) and userspace and the operation took 10 minutes to complete. A tad slow, but we were throwing a 2GB file at it. According to the official announcement, large volume small file creation and deletion performs at similar speeds to ext3, but there's clearly room for improvement, a fact acknowledged by the NTFS-3g development team.

While it's beta and early days yet, NTFS-3g looks to be solving an age-old problem with Linux and Windows interoperability and undoubtedly, as a full open-source solution, NTFS-3g will eventually find its way into a future kernel release.