Ubuntu

Linux needs exFAT support

Reported by David Grossberg on 2009-01-10
294
This bug affects 56 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Declined for Jaunty by Jeremy Foshee
Declined for Karmic by Jeremy Foshee
Declined for Lucid by Jeremy Foshee
Declined for Maverick by Jeremy Foshee

Bug Description

The SD Association announced in 2009 a new standard for high-capacity SD memory cards: SDXC - and the file system for this standard will be Microsoft's exFAT. Further, recent MS Windows versions are defaulting to exFAT when formatting removable drives. Linux (either the kernel or via FUSE) therefore needs to support this file system before it becomes common for portable devices and other uses.
(Yes, this is an upstream feature request, but I'm a Kubuntu user and this is where I can track progress for my own distro)

Changed in linux:
importance: Undecided → Medium
status: New → Triaged
gabr10 (gabriobarbieri) wrote :

This is really true, exFAT is becoming more and more popular since it is a very nice option for replacing FAT. Having support for this on linux would be great.

Whoopie (whoopie79) wrote :

Hi,

there's a out-of-tree kernel module available at http://groups.google.com/group/fa.linux.kernel/msg/e2e23eeb3a016268?pli=1

I haven't tested it though.

Whoopie (whoopie79) wrote :

sorry, I meant http://www.munted.org.uk/programming/exfat.tar.bz2
The other link is a reference to the discussion thread.

David Grossberg (davidgro) wrote :

Note that so far it's read-only. (Which is at least a start)

Daniel Lupulescu (lupulescud) wrote :

Glad to here that, but I need to write files more than 4GB on 8GB SDHC card in Linux.

Noel J. Bergman (noeljb) wrote :

> I need to write files more than 4GB on 8GB SDHC card in Linux

So reformat it as ext2. Works fine. :-)

Noel J. Bergman (noeljb) wrote :

Or, of you need portability between MS-Windows and Linux, reformat as NTFS. That works, too.

Daniel Lupulescu (lupulescud) wrote :

It is ext2. But it would be better a simple fs, not one for HDD, and NTFS has journaling and it wear the flash. And I mount it with noatime. I want the same option for eg. exFAT

TheReaperD (djones) wrote :

This is going to be an increasingly important issue as there is exFAT support with Windows Vista SP1 and the future Windows 7 (with ability to backport it to Windows 2000 and XP). With SD cards and other media starting to support this format, we're going to see a lot more of exFAT for better or for worse. It would also be nice to have a bug free way to have a common partition between Windows and Linux. exFAT should, in theory, be a lot easier to add support for then NTFS.

TheReaperD (djones) wrote :

Oops, meant to say a common partition where you can store larger files than 4GB.

Sean Seago (speedkreature) wrote :

I've compiled the module, but I am unsure how to get it working, I've got a 16GB flash drive formatted with exFAT and it is detected and assigned a path (/dev/sdc). I haven't yet found any instructions on how to use this module.

gabr10 (gabriobarbieri) wrote :

How did you get the module? The link is not working for me...

David Grossberg (davidgro) wrote :

Hmm, I feared those links might go down spontaneously (they just had that look)
So I downloaded a copy for myself a while back, here it is

Sean Seago (speedkreature) wrote :

The module was compiled from source and all that went very well, but the links have indeed gone bad. It's not unusual for a project to disappear and reappear somewhere else, but the code for this module has completely dried up.

Is anyone aware of legal pressure from MS concerning this code?

Sean Seago (speedkreature) wrote :

Okay, I've just finished laughing at myself. Studying for my LPIC-1 and it never hit me until now. If you can find the source, it works like this:

Untar exfat.tar.bz, change directory into ./exfat, "make", "sudo make install", then "sudo depmod", "sudo modprobe exfat"

Insert your exfat formatted flash drive and it is assigned a path (mine was /dev/sdc), create a mount point (I created /media/exfat) and mount it "mount /dev/sdc1 /media/exfat"

This module provides brilliant read support. I can even install the trial of Office 2007 Standard I have on here in Wine. Brilliant!

Daniel Lupulescu (lupulescud) wrote :

Brilliant read support? Read only? When comes write support?

Sean Seago (speedkreature) wrote :

Being able to install a complex system of binaries off of a file system Linux developers have been told nothing about is a really big step. Read integrity is critical. Already this is moving much faster than NTFS support back in the day when we didn't have that--that took years. And actually, I'd like to see that get better, but that's not this thread.

If there isn't any legal pressure from anywhere over this code, now that we have good read support, it's mostly a matter of reversing the process to enable the ability to write. The code is well structured, with adequate commenting and written entirely in C.
I lack the coding expertise to dive in and turn this out in a hurry so it is a learning experience for me but I am doing the best I can to tackle this. Fortunately I have a large number of USB sticks formatted with exFAT, both blank and with other stuff on them...and worst case, I have access to Vista computers at work to fix whatever I break on the filesystem.

Does anyone know of anyone else working to make this happen? I'd love a mentor on this one.

Sean Seago (speedkreature) wrote :

I guess that means we wait for SDXC to be public and mainstream, then wait for the antitrust suits to follow in the US since Microsoft has historically not allowed fair and Linux-compatible licensing. That is, licensing that allows all Linux users as a whole to use the technology.

David Grossberg (davidgro) wrote :

The 'solution' to any potential legal issue seems obvious to me - treat it like libdecss and host it at Medibuntu.

Now that that's out of the way, the code has to be functional (such as write support) before it would matter. :-)
Anyone know if someone's working on it?

Art (vand3lay) wrote :

If there are going to be licensing problems from Microsoft with exFAT, is it too late to convince the SD Association to use an open file-system instead? Right now JFFS2 and NILFS come to mind but I'm sure there are plenty of others for SSDs that could be used as the new standard as well.

David Grossberg (davidgro) wrote :

Not only is it much too late, I would say there is no possibility whatsoever that they would have chosen a system that wasn't going to be plug-and-play on the vast majority of consumer PCs.

Anything that MS didn't write (except maybe UDF, but there's probably some reason it wasn't feasible, perhaps a reason measured in dollars) would require a separate driver disk to use (Imagine MS putting drivers for an open system on Windows Update - yeah right.) So it wouldn't really be an option.

A related issue: Given that the file system of the media needs to be supported by all the future cameras, media players, et cetera, now that the decision has been made, any advice to 'Just reformat' would only work if the card is going to be only PC-to-PC.

Of course even if SDXC had gone with something else this bug would still exist (because exFAT does), it just would not be as serious an issue.

Thomas Duboucher (serianox) wrote :

Just compiled the driver with a 2.6.31-16-generic kernel; you need to include <linux/slab.h> to "cache.c".
Seems to work so far. :)

Michael Marley (mamarley) wrote :

I have just made a package for the exFAT kernel module with DKMS. It will be in my PPAs for Karmic and Lucid as soon as it gets done compiling.

Thomas Duboucher (serianox) wrote :

I also made a kmod in my ppa that I'm using atm. However, when my pbuilder works, launchpad fails to build, and vice-versa, so the .deb file is more an ugly hack than anything.
Anyway, the driver worked so far, but I do not have a large USB pen drivefor testing (>1GB).

Weidllan (weidllan) wrote :

Of course Linux will be even more used to this update that file system!

Andrew Nayenko (relan) wrote :

Hi all!

I have written exFAT driver with full write support. Source code is available under the GNU GPL v3. Project page: http://code.google.com/p/exfat/

Currently it's in beta state and I need testers. If you have some time please download, compile and test this driver. Detailed instruction is here: http://code.google.com/p/exfat/wiki/QuckStartGuide Before testing do not forget to backup all you data stored on exFAT volume! It's also very useful to have Windows near by and periodically run chkdsk on the tested volume to ensure it's OK.

This driver is not based on the kernel module that was discussed here. It uses FUSE and works in user-space like NTFS-3G. I decided to develop a FUSE module instead of kernel module because 1) it's much simpler, 2) kernel module will hardly ever be included into mainline due to unclear patent status and maintaining out-of-tree kernel driver is a pain.

Known issues of version 0.9:
-- no binary packages for Ubuntu (would be nice if somebody created a PPA);
-- volumes are not mounted automatically, you have to do this manually;
-- no manpage;
-- timestamps are saved with only 2 sec resolution;
-- slow creating/renaming in directories containing a lot (thousands) of files;
-- directories are never shrinked;
-- percentage of used space is not updated in super block (chkdsk does not consider this as FS error);
-- systems with locale other than UTF-8 are not supported;
-- UTC timestamps are not supported;
-- ACLs are not supported.

Please ask your questions here or in the discussion group: http://groups.google.ru/group/exfat Your feedback is welcome!

David Grossberg (davidgro) wrote :

Thank you very much Andrew, this seems like the perfect approach. I don't yet have the means to test it myself but I am really happy to see this much progress.

Sean Seago (speedkreature) wrote :

Compiled and installed! Any suggestions on how to best test this? I've got a 64GB SSD, and a 16GB USB flash drive I'm willing to sacrifice.

cornbread (corn13read) wrote :

hope to see this in 10.10!

Some sort of specification is available from the European patent office at http://v3.espacenet.com/espacenetDocument.pdf?flavour=trueFull&locale=en_V3&FT=D&date=20090625&CC=US&NR=2009164440A1&KC=A1 (after a captcha).

description: updated
Andrew Nayenko (relan) wrote :

FYI: PPA for fuse-exfat is available (https://launchpad.net/~relan/+archive/exfat).

Jeremy Foshee (jeremyfoshee) wrote :

Declining the Maverick specific nomination for now and leaving this open against the actively developed Ubuntu kernel (which happens to be Maverick at this time). Will re-open the nomination should a fix be narrowed down which we can confirm specifically resolves this issue in Maverick.

In this case we would take this change were it to come from upstream stable. This is not likely to make it into the Ubuntu Kernel unless it is taken from there.

~JFo

Riva Young (justdoit850928) wrote :

Hi all,
        I have download the pdf file from "http://v3.espacenet.com/espacenetDocument.pdf?flavour=trueFull&locale=en_V3&FT=D&date=20090625&CC=US&NR=2009164440A1&KC=A1" , but unfortunately it's bad.
        Does anyone have other specification about exfat ? thanks in advance.
                                                                                                                          Riva.

description: updated
Whoopie (whoopie79) wrote :

The packages fuse-exfat und exfat-utils are in Debian unstable. They could be synced to get exfat support in Ubuntu.

Whoopie (whoopie79) wrote :

Both packages are now in the quantal archive (synced from Debian).

Changed in linux (Ubuntu):
status: Triaged → Fix Released
Hans Deragon (deragon) wrote :

Any chances to see these fixes in the LTS 12.04? This is the kind of basic features that need to be back ported to LTS.

What about 12.04 LTS?
Don't we have exFAT support for latest LTS?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers