File Systems Status and Compatibility

What’s the current status of various file systems (NTFS, HFS+, Ext4, XFS, BTRFS etc…)

Which have Read-Write support?

Benchmarks?

Which would you choose/recommend for cross platform support?

Status of write support for befs in linux? (currently, befs_fuse seems to work well for read-write)

etc…

if haiku is supposed to read it Fat32 or exfat, if you exclude Haiku the pretty much best support for any FS you can get is ZFS, every major OS is pretty much covered in suppport (well, barring us)

BtrFS is one of candidates for universal modern file system, that is supported by many OS. It has native driver for Windows. Haiku currently provides read-only BtrFS support.

I use Dukto and Tar over SSH to transfer files between Haiku and another OSes.

On Haiku:

NTFS: read-write but unstable and slow
FAT: read-write but there are some bugs and compatibility issues
Ext4: working ok if your Ext4 volume does not use modern features of the FS that we don’t implement yet
BTRFS, exfat: only read support in Haiku, but should be working fine
XFS: work in progress with several patches in Gerrit waiting to be cleaned and finished. Not usable in the current state
UFS2: not usable in the current state (it will kernel panic very easily)
reiserfs: I don’t remember if we have write support? But this filesystem is abandoned anyway (the main author on Linux side is in jail and no one really continued the work)

On Linux:
The native kernel driver is read-only for BFS: befs_fuse works read-write and if you build it from our current sourcecode, it should work fine. I have little experience with it however, so, I would not know for sure.

I think the conclusion is that cross platform FS support is not so great and that’s one of the things we are (slowly) improving with our GSoC projects. It fits nicely with GSoC projects: it is not really critical to the use of Haiku, but it is still useful, and it is also not too complicated to get into for students.

7 Likes

of all the file systems mentioned, it seems that if we just improved NTFS support we would have good cross the board compatibility. Mac/Win/Lin all support it as read-write.

btw- Ext2 works fairly well as read-write but might not be worth the lack of journaling

Nobody really supports NTFS, it has no spec and ms might change it at any time.
If you want a filesystem that works natively with $os we have to improve severall filesystems, if you are willing to install stuff on the other OS we should just improve btrfs or create a ZFS driver

edit: one thing one might consider for the case of file sharing is network shares too, if that works for the local situation, i think nfs4 could be a good candidate for that

The befs fuse driver works great in linux. Presumably it would also work fine in mac os. There are a couple of projects that let you use fuse in windows but the performance is often very poor.

Personally I want nothing to do with Micro$oft or anything that touches it.
I mentioned ntfs because it’s already read-write everywhere. I use befs_fuse now for drives that move between linux and haiku and it seems to be working nicely. I love the idea that one more aspect of my system is pure Haiku.
As soon as our browser is up to speed I’m dropping all other OS’s completely.

1 Like

We support ext3 read-write with journal since 2010 (GSoC project by jvff: jvff's blog | Haiku Project). It may indeed be the best choice. It is natively supported in Linux and can be accessed from Windows using http://www.fs-driver.org

The only problem is the limited support for extended attributes in ext3, and the complete lack of support for them in the Windows driver.

1 Like

exfat is read only

exfat is well documented and also supported well on Windows (obviously), Linux and macOS. It is preformatted on most SD cards and USB sticks. I believe getting it fully supported for read and write on Haiku is the most pragmatic solution for a cross platform file system.

The only problem is there are patents I believe and companies at least need to license it. Microsoft made some special arrangement with Linux for that. This is probably not impossible for Haiku to do as well but is an impediment. I don’t know the situation for other operating systems like the BSDs.

If it were not for the above, I think exfat is the clear best choice despite being from “Micro$oft”. It would allow everyday Haiku users to just plug in USB sticks and SD cards and USB drives without issue, and also share an internal exfat drive with Haiku and Windows and Linux.

I also found this which might be worth trying on Haiku: https://github.com/relan/exfat

2 Likes

There was some work in this: GitHub - s3thi/zfs-haiku: ZFS port for Haiku.

1 Like

AFAIR, Microsoft created a Linux driver for exFAT and licensed it under GPL. Additionally, Samsung had long time exFAT driver for Linux (don’t remember under which license). So the license issue should no be a problem.

Patents and licenses are seperate issues

ExFAT don’t support journaling, so using it is dangerous. OS crashes, bad physical contact, improper eject can cause loss of data.

Tar/scp/sftp method, Samba, and FAT32/exFAT for read/write access with USB storage devices.

As with APFS, most FS drivers allow read-only access. Commercial FS drivers provide read/write access to ext4, NTFS, APFS, HFS+, VFAT, FAT, FAT32, exFAT, etc. Note: APFS write mode still WIP.

Top speeds can hit 110 MB/s and higher on either read/write depending on the storage unit’s physical hardware makeup and access method(s).

Good day,

This Ext4 is the one I’m using right now to share stuff between Haiku and the linux external drive, precisely thanks to @PulkoMandy’s advice . So far so good. To be honest, right now I’m doing most stuff on Haiku, so I don’t really “share” stuff among OSes. Windows also supports Ext4 now if you install WSL (windows subsystem for linux) and a linux distro on top of WSL (from the Windows Store). Should bear in mind that at the moment this works only with entire drives, not with partitions (which is my case).

So, if you have a spare drive, you could format it as Ext4 and use it on Haiku, Linux, and Windows. On windows it will be accessible from the File Explorer, as MS docs say.

Regards,
RR

Where in the MS docs does it say this?

here:

Access Linux file systems using WSL

Starting with Windows Insiders preview build 20211, WSL 2 offers a new feature: wsl --mount. This new parameter allows a physical disk to be attached and mounted inside WSL 2, enabling you to access filesystems that aren’t natively supported by Windows (such as ext4). You can also navigate to these files inside of Windows File Explorer.

Must be WSL2.

Regards,
RR