What filesystem to use when using both Windows and Linux?

There are tools for using ext* under windows... but I would recommend NTFS as the *x-driver is quite stable nowadays.


First off, there will be some problems with NTFS if you use it in Linux:

  1. NTFS doesn't support file permission mode very well, so you'll lose the executable bit, setuid bit, etc.

  2. The ACL system in NTFS is not so comfortable with Linux, and you can't disable it like you can with FAT32.

  3. Currently, the performance of the NTFS implementation in Linux is not very good. For example, I found if I build a Maven project with NTFS, it is 3 more times slower than ext4.

Personally, I run Windows OS in VirtualBox, and make the virtual disk a raw NTFS image (see here). Since the NTFS image is now in raw format rather than.VDI, you can access the NTFS by mounting it directly, without loading the VM instance.

By using VirtualBox instead of Dual boots, there are several advantages:

  1. You don't have to convert your Linux partition to the NTFS file system. In VirtualBox, you can use Share Folder to access the host OS's file system. And it's very fast. Map it to a drive letter if necessary.

  2. You can work with both OSes concurrently, without needing to restart in order to switch from one to the other.

  3. Your GRUB loader will never be overwritten by Windows. Windows always overwrites your boot record and never prompts you with a yes or no.

  4. You will pay more attention to Linux, and then you'll learn the Linux way to do most of your work. In fact, I found it's rarely needed to turn on the Windows VM. Because people are lazy about learning new things if you install a dual system, and Windows is enough, why would you bother to boot into another OS?

I found this is the best way to make both Linux and Windows coexist. I have built several Windows VM instances for different usages, and because I don't install too many applications in each VM, they run fast and it doesn't feel too different from non-virtual machines.


I suggest to consider UDF 2.01. It is natively supported by both Windows and Linux kernels.

Under Windows, use format /FS:UDF to create this file system.