Accessing Linux Filesystems in Windows
Lack of access to your data in a new operating system may be one of the most severe impediments for doing an OS migration. There is little personal incentive for users to switch to a system that can't interoperate with their data, as the system would be practically useless to them.
Linux has done a great job in allowing Microsoft Windows users to access their Windows partitions from Linux. Support for a majority of Windows filesystems is available, such as seamless support for FAT16/32 and partial but increasingly complete support for NTFS. There also are some tools, such as Captive-NTFS, which enable complete support for NTFS drives from Linux. Data access is not restricted to the local host. Samba allows Linux users to access their shared data on Windows computers over a network. Hence, we can say that, for MS Windows users, access to their data is no longer an impediment to Linux migration.
However, as Linux advances into the desktop, many people use Linux for some tasks and then turn to Windows for software that is not yet available on Linux, such as high-end games, Adobe Photoshop and various domain-specific applications for which no open-source equivalent exists. When people are using such applications, they generally require access to their Linux partitions. Support for Linux filesystems is non-existent in Windows. Thus, Linux dual-booters must use some tools to access their Linux filesystems.
A Short Primer on Filesystems
Some readers might be wondering what a filesystem really is. A filesystem basically defines a method for storing and retrieving files from a disk. This begs the questions: “Why are there so many filesystems? Why can't everyone decide on the best way to store and retrieve data from a disk and make that filesystem standard across all platforms?” Different operating systems come with different filesystems, because they target different users. Windows NT, which was targeted at enterprise users, came with a filesystem called NTFS, which was a filesystem that had enhanced security; whereas Windows 9x, which was targeted at ordinary users, came with FAT16/32, which was a filesystem with less security but with more performance. Windows XP offers both, as it is marketed to both segments. Similarly, on Linux, ext2/3 are the de facto filesystems, but there are some others for more special-purpose uses, for example, filesystems for high-performance computing, such as XFS, or filesystems with a great deal of fault tolerance, such as ext3 and ReiserFS.
Adding “support” to an OS for a particular filesystem basically entails that we define the data structures involved to the operating system upon which the data is stored on the disk. It is more difficult to add support for proprietary filesystems, such as NTFS, because the structure of the data on the disk, the encryption algorithms and so forth, are not known to the public. That is why it is proving to be a challenge to support NTFS completely in Linux.
As mentioned previously, Windows does not have native support for Linux filesystems. All is not lost, however. The Open Source community has risen to the challenge and created some excellent software to solve this problem. This article focuses mainly on LTOOLS, which is advanced software with multiple interfaces that allows users to access a range of Linux filesystems. But first, let's skim through some other existing software that could do the task.
Ext2fsd is one of the oldest projects in this area. It allows access from Windows to ext2 filesystems and can be downloaded from sourceforge.net/projects/ext2fsd. It installs as a filesystem driver, not as a regular application. Making Ext2fsd a filesystem driver integrates ext2 partitions transparently into Windows and allows Windows to use ext2 partitions as if they were a native format and enables full read/write support. Ext2fsd does not only read ext2 partitions, but also Ext2 was one of the first de facto Linux filesystems, and many new Linux filesystems, such as ext3 and ext4 are backward-compatible with it. Thus, the driver can work with ext3 and possibly ext4. The picture is currently unclear with respect to ext4, as ext4 was recently added to the mainline kernel for testing. But, when using ext3/4 with Ext2fsd, you will be using only the features of ext2; any other additional features, such as enhanced journaling capabilities, will not be used.