The best choice of linux file system and software that can be accesed from Windows

Because no single file system is the best in all situations, determining which file system is the best for your application is not always easy. However, as you will see for yourself, picking the right file system can offer performance gains in excess of 95%.

Linux File Systems. Why so many?

There are three main reasons why there are so many File Systems on Linux:

* It's open source: effectively everyone owns it.
* File Systems competing for better performance and or scalability.
* File Systems allowing for compatibility/portability of existing data (migrations from other systems). 

File System Comparison

The following list describes the Linux file system characteristics and indicates when this file system is best used. This list is not exhaustive of all the file systems available in the world, but focuses on those which have appreciable market share or attention in the market today. A detailed comparison of file system features can be found at: http://en.wikipedia.org/wiki/Comparison_of_file_systems

EXT2

* Recommended to move to EXT3
* Not Journaled
* POSIX access control 

EXT2 file system is the predecessor to the EXT3 file system. EXT2 is not journaled, and hence is not recommended any longer (customers should move to EXT3).

Recommended Use: USB/Solid State Drives, or any cause where you need high stability with minimal reads/writes.

EXT3

* Most popular Linux file system, limited scalability in size and number of files
* Journaled
* POSIX extended access control 

EXT3 file system is a journaled file system that has the greatest use in Linux today. It is the "Linux" File system. It is quite robust and quick, although it does not scale well to large volumes nor a great number of files. Recently a scalability feature was added called htrees, which significantly improved EXT3's scalability. However it is still not as scalable as some of the other file systems listed even with htrees. It scales similar to NTFS with htrees. Without htrees, EXT3 does not handle more than about 5,000 files in a directory.

Recommended Use: If you have no specific reason for another filesystem, ext3 is an excellent default.

Ext4

The most recent in the ext filesystem line, ext4 includes many major improvements over ext3 like larger filesystem support, faster checking, nanosecond timestamps, and verification of the journal through checksums. It’s backward and forward compatible with versions 2 and 3, so you can mount a ext2 or ext3 filesystem as ext4, and the other way around. You may however lose some of the benefits of the newer versions when mounting as the older. Many of the modern Linux distributions now offer ext4 during the install, and some are using it as the default.

Recommended Use: Ext4 should be stable enough for desktop and server needs. If your distribution offers it as an install choice, it should be a good choice for nearly any usage needs.

FAT32

* Most limited file system, but most ubiquitous
* Not Journaled
* No access controls 

FAT32 is the crudest of the file systems listed. It's popularity is with its widespread use and popularity in the Windows desktop world and that it has made its way into being the file system in flash RAM devices (digital cameras, USB memory sticks, etc.). It has no built in security access control, so is small and works well in these portable and embedded applications. It scales the least of the file systems listed. Most systems have FAT32 compatibility support due to its ubiquity.

NTFS

* The Windows file system, best for workgroup shared LAN file serving
* Journaled
* Windows access controls (richer than POSIX) 

The Microsoft Windows file system for the Windows NT kernel (Windows NT, Windows 2000, Windows XP, and Windows 2003). The Linux OpenSource version of this filesystem is only capable of read-only of existing NTFS data. This allows for migration from Windows and access to Windows disks. NTFS includes an ACL model which is not POSIX. The NTFS ACL model is unique to Microsoft, but is a derivative of the Novell NetWare 2.x ACL model. NTFS is the default (and virtually only option) on Windows servers. It includes rich metadata and attribute features. NTFS also supports multiple data streams and ACL rights inheritance since its Windows 2000 implementation. In Windows 2003 R2, Microsoft included a feature called "Access Based Enumeration". This is similar to visibility in NSS and NWFS, but is not implemented in the file system layer, but rather as a feature of the CIFS protocol engine in Windows 2003 R2, so this feature is only available when accessing Windows 2003 via the CIFS protocol.

ReiserFS

* Best performance and scalability when number of files is great and/or files are small
* Journaled
* POSIX extended access controls 

The Reiser File System is the default file system in SUSE Linux distributions. Reiser FS was designed to remove the scalability and performance limitations that exist in EXT2 and EXT3 file systems. It scales and performs extremely well on Linux, outscaling EXT3 with htrees. In addition, Reiser was designed to very efficiently use disk space. As a result, it is the best file system on Linux where there are a great number of small files in the file system. As collaboration (email) and many web serving applications have lots of small files, Reiser is best suited for these types of workloads.

Recommended Use: Interacting with small files on a single core system.


The driver from http://www.fs-driver.org/ allows you to read/write to ext2 and 3 on Windows. AFAIK it does not support ext4.

Not being a filesystem expert, I don't know too much about the differences between ext 2/3/4, but I do know that ext4 is slightly faster, especially on a clean Ubuntu install, and will give you shorter boot times. Ext2 is pretty old, so few systems use it anymore, especially since ext3 is fully backwards compatible with ext2.

But to address you're real problem, which is to say "What if Ubuntu crashes and I can't access any of my files?", the easiest, most likely to work way would be insert your Ubuntu LiveCD and boot it up, then either repair your existing Ubuntu install, or transfer all the files you need to save into a portable hard drive.


Recovering "linux" from "windows" is not exactly straightforward. Your best bet is to keep a live cd or live usb handy, so if something goes wrong, you can have access to the web, the built in linux tools, and all the filesystem support you should need.