Accessing Linux Filesystems in Windows

You don't have to wait for Microsoft to support Linux filesystems to get at your Linux files from 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.

Tools for Accessing Linux Partitions in Windows

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

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.

Figure 1. Ext2fsd makes an ext2 filesystem look like any other filesystem in
Windows.

"""Ext2fsd ... allows access from Windows to ext2 filesystems ... 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."""

While technically true, there is one small problem. Ext2fsd will only work with a 128 inode, which is the default in the EXT2 File system. The default inode for Ext4 is 256, rendering it incompatible with Ext2fsd. Also, most newer operating systems, such as Ubuntu 9.04, will by default install a 256 inode with their EXT3 filesystem, in anticipation of upgrading to Ext4 in the future. While you can manually specify to format your new file system utilizing a 128 inode with EXT3, to keep compatibility with Ext2fsd, I'm not sure if the same is true for the Ext4 filesystem, considering that most of the newer attributes of the Ext4 filesystem are stored in the extended Inode. In other words, by installing the Ext4 filesystem with a 128 inode, it's basically the same as having an Ext3 filesystem. (though I could be wrong on this final point).

I ran into this with a new Ubuntu installation... I installed two Linux partitions, one ext4 (root partition) and one ext3 (home partition). The latter I chose ext3 for better compatibility with existing tools for accessing Linux fs's from Windows.
Unfortunately, I found out afterwards that Ext2IFS, and apparently Ext2FSD, only work with a 128 inode fs, which is not what I have.

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.