Slashdot Mirror


Cross-OS File System That Sucks Less?

An anonymous reader writes "I recently got an external hard disk with USB 2.0/Firewire/Firewire 800/eSATA to be used for backup and file exchange — my desktop runs Linux (with a Windows partition for games but no data worth saving), and the laptop is a MacBook Pro. So the question popped up: what kind of filesystem is best for this kind of situation? Is there a filesystem that works well under Linux, MacOS X, and Windows? Linux has HFS+ support but apparently doesn't support journaling and there's also an issue with the case-insensitivity of HFS+. Are we stuck with crummy VFAT forever or are there efforts underway to bring a modern filesystem (I'm thinking something like ZFS, BeFS, or XFS) to all platforms? Or are there other clever solutions like storing ISO images and loop-mounting those?"

7 of 449 comments (clear)

  1. FAT is it for now by jonadab · · Score: 5, Interesting

    There are two "extensions" I would like to see for vfat, that could be implemented right on top in a reasonably backwards-compatible way (just as LFNs were on top of traditional FAT fs).

    The easier and more important one is symbolic links. (Indeed, it ought to be possible to devise a "virtual symlink" system that would work pretty much independent of the underlying filesystem, by simply using hidden pointer files containing the paths to the target files -- similar to .LNK files that the Windows GUI uses, but you'd want them to be supported by the OS at the filesystem layer, just like regular symlinks are on filesystems that have them; also you'd want the design of the pointer files themselves to be cleaner and more platform-agnostic.)

    The harder, but ultimately just as important, is journaling (similar to what ext3 does for ext2).

    The advantage of extending FAT32 in this way should be obvious: just like with ext2/3, systems that don't support the extension can at least still access the data (although doing so may invalidate the journal). So you don't *lose* any compatibility, you only *gain* the added features. In situations where you *mostly* use the disk with a particular system (e.g., my data drive that spends basically 100% of its time mounted in FreeBSD, but is FAT32 so I can get to my data from a non-BSD system in case of an unforseen emergency), you'd get a lot of benefit from the improved features. (I'd be particularly pleased to have symlinks on my data drive, for instance.) Then you only lose the new features if you need to mount the disk under a system that doesn't support them, e.g., if some piece of hardware on my FreeBSD workstation dies and I need to get my files, I could take the drive and hook it up to just about any computer anywhere and mount it as plain old FAT32 and my files would all be there.

    This still doesn't turn FAT into BeFS or ZFS or whatnot, but it would be a welcome improvement.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  2. Re:Quick answer: No by BKX · · Score: 2, Interesting

    You read that wrong. The last paragraph of the FAQ question clearly states that EXT2IFS cannot acceess an ext3 partition that's not cleanly unmounted and will operate on an ext3 partition as if it were ext2 just like old Linux kernels without ext3 support did.

  3. Re:Moving Target - ntfs-3g by ancientt · · Score: 2, Interesting

    Okay, I have to ask, have you or has anyone you know ever tried to run a Linux distro off of a NTFS system? I'm not sure why you'd want to but I'm curious as heck if it is possible.

    --
    B) Eliminate all the stupid users. This is frowned upon by society.
  4. Re:Network it, or NTFS by quizzicus · · Score: 3, Interesting

    I run my whole system (except for C:/Windows, Windows won't boot from ext3) on ext3, and XP seems to run better than it did on NTFS (could it be the automatic defrag?). ext2ifs isn't perfect, though, and sometimes it breaks my backup runs until I fsck all the partitions that Windows uses. No data loss so far, so maybe it just doesn't dot its i's properly.

  5. Re:You're not very smart, are you? by Gordonjcp · · Score: 4, Interesting

    And yet not only is NTFS is still one of the best FS for handing fragmentation, ever, it has a well managed and fast file table indexing system.

    Because it's more-or-less a straight lift of FILES-11. You may or may not believe this, but your NTFS is almost compatible with VMS disks. Sadly, it's a pale imitiation - although there is the facility for things like file versioning, it's non-functional and can probably never be properly implemented without significant refactoring.

    Pity, really. Windows nearly had something really good going for it there.

  6. Re:With Today's Drive Capacities, Why Not Partitio by Rick17JJ · · Score: 2, Interesting

    I have an external USB hard drive and recently formatted the hard drive with two different partitions. The first partition is formatted as NTFS and the second is formatted as JFS. The NTFS partition is mainly for Windows, but can also be used for transferring files between Linux and Windows. The JFS partition is only for being used by Linux. When using Linux, I can now make backup copies of stuff from my main Linux partitions onto the exteral drive's JFS partition using the rsync command. Perhaps I am being too paranoid, but I did not want Windows spyware or viruses to be able mess with what is backed up on that partition, so I deliberately chose something that Windows could not read. I use Kubuntu Linux and JFS is one of the several journaling file systems that it supports. I could have just as easily used some other Linux supported journaling file system such as EXT3 or ReiserFS, but for no special reason, I chose JFS. For the partition that Windows would use, I debated between NTFS and FAT32. I also toyed with the idea of formatting that partition as EXT2 and installing of of the several available open source drivers that would allow Windows XP to read EXT2. Linux is what I use 99% of the time and because it is my main operating system, I decided to make the JFS partition much larger and gave it 220 GB.

    I have two different computers and use a KVM switch so that they can be controlled by just one keyboard, monitor and mouse. The two computers are side by side and one runs Linux and the other runs Windows XP. Most of the time I just use the Linux computer, but once in a while I turn on the Windows computer too and with the KVM switch can jump back and fort between either in about a second or two. The Windows computer is a small book sized computer that only uses 23 Watts, so I can occasionally run both at once without using much more electricity. I play around with Windows XP now and then, so that I do not totally forget to use and maintain a Windows computer.

    I have the 250 GB hard drive in a NexStar GX external hard drive enclosure and it is connected to a manual 4-to-1 USB switch box. I then press the appropriate button on the manual USB Switch box to choose which computer the external hard drive is hooked to. For the first partion, I let Windows create the NTFS partion. I then used GParted running under Linux to create the JFS partition. By the way, I already had both the Ubuntu desktop package and the Kubuntu desktop package installed, so I was able to install GParted and run it under KDE, even though it is designed for Gnome.

    Another alternative to all this would have been to run Samba on the Linux computer and just share a few folders at home over a wired or wireless Ethernet connection.

  7. You are both right by hey! · · Score: 2, Interesting

    I think I know the reason for this discrepancy in experiences.

    Laptops.

    Laptops off the bat have drives with fewer heads, and therefore are more sensitive to fragmentation. Furthermore I have seen laptops delivered with FAT file systems with 512 byte block sizes which on converting to NTFS yield cluster sizes that are smaller than optimal. I have also seen laptops delivered with 512 byte cluster NTFS.

    Fragmentation is a huge problem under these circumstances, and lord help you if your MFT gets fragmented.

    Pretty much the first thing I do with a new machine with Windows preinstalled is check to cluster size on C to make sure it is 4K; if not I'll use Partition Magic to resize the clusters and the partition, then create a separate partition with an 16K cluster size that I use for database files and virtual machine disks. Since those files are huge and cluster management by the OS redundant, I opt for a larger cluster size, although this does preclude using Windows filesystem compression.

    This works pretty well, although I find from time to time it still helps to defrag C: on laptops. On a desktop I never bother.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.