Which file system to use in between OSX and Linux

30,933

Solution 1

Linux can write to HFS+ without problems. If you really need read/write support from both OSes, then you only have one choice, namely to format as HFS+, since Time Machine won't work with others and macOS can't natively write to ext4 (see How can I mount an ext4 file system on OS X?)

Since Linux allows writing to journaled HFS+ volumes, use Disk Utility.app on your Mac to format the partition with HFS+ (journaled).

Newer macOS versions will by default use APFS instead of HFS+, but Linux support for APFS is still quite limited. There's a read-only FUSE driver, but in the future write support may be added.

Solution 2

Just to add to slhck's answer, formatting the partition as non-journaled was a little tricky using Disk Utility on OSX 10.7 as the option for HFS+ nonjournaled is not apparent in the formatting (erase) options.

The solution is to format it as HFS+ journaled then turn off journaling by selecting the partition then, while holding option key, open the "File" menu and select "Disable Journaling".

Weird.

See https://discussions.apple.com/thread/3232454?start=0&tstart=0

Solution 3

There is a modern possibility now for macOS and Linux compatibility at the filesystem level: ZFS. It works well and it's supported in both environments (see https://zfsonlinux.org/ and https://openzfsonosx.org/).

It's a possibility I haven't seen mentioned until now in this context, here, or in answers to similar questions.

Pros:

  • Modern, actively developed, and future proof open-source filesystem.
  • It plays well with permissions and UNIX in general (FAT-like filesystems don't do that in any of their incarnations, as far as I know).
  • Extremely well suited for a shared partition in a dual-boot system.
  • As a bonus, ZFS offers a lot of unique features, like data integrity, pool management, copy on write, snapshots (https://itsfoss.com/what-is-zfs/). Only recently Btrfs (Linux) and APFS (macOS) have been trying to catch up with similar features.

Cons:

  • It might require a bit of knowledge and management, given that it's both a file system and a volume manager rolled into one.
  • It requires the installation of third-party system software on both macOS and Linux (on macOS it can be installed using brew cask and on Linux, it might be supported by distribution, as Ubuntu does for example).
  • It could be not that well suited to portable disks depending on the use case. Chances are most other people's macOS and Linux systems won't be able to read your ZFS formatted disks "as is" (see point above), and a connection failure, like detaching the cable inadvertently, might have annoying consequences.

Personally, I've used ZFS with a dual-boot (macOS/Linux) Macbook Pro for several years now, both with USB3 disks and internal SATA disks. Depending on the situation, it's a very good solution.

There is also an actively developed, albeit very recent, ZFS Windows port. It might be several years before it's usable in production though (https://github.com/openzfsonwindows/ZFSin).

Share:
30,933

Related videos on Youtube

posdef
Author by

posdef

Updated on September 18, 2022

Comments

  • posdef
    posdef over 1 year

    I have got my paws on a large USB drive which I'd like to use as a backup/general storage at the office. I was thinking of having two partitions one of Time Machine backup and one for general storage. As I will be using the disk for both my Linux workstation and MacBook Pro I was wondering what file system to use.

    I have been reading up on old forum threads and questions here, and my understanding is that Time Machine demands a volume with HFS+ file system, meaning it would not work with ext4. Likewise HFS+ will be read on Linux, but performance-wise it would be questionable. The majority of the info I found is from 2009-2010 era, so I am wondering if there has been any changes, could someone confirm or deny these statements? or perhaps add more info on the matter...

    Would it be then advisable to have one partition with HFS+ and one with ext4? I am skeptical if that would be much better... Furthermore, the disk utility tool in OSX doesn't give the option to format with Linux native, apparently it's more likely that one uses Win/OSX than Linux/OSX..

    • Admin
      Admin about 12 years
      I thought extended was a file system option?
    • Admin
      Admin about 12 years
      You mean exFAT, or ext2/3/4? THe latter is not an supplied as an option, while the former is not particularly desirable :(
  • posdef
    posdef about 12 years
    thanks for the reply, I was wondering whether or not the second partition (the one for linux/osx) would better be ext4 or hfs+. I mean from what I understand both choices have drawbacks. Do you have any comments on that?
  • slhck
    slhck about 12 years
    You won't be able to write to it from OS X when it's ext4, unless you plan using third party tools. I don't think writing speed to HFS+ from Linux would be a big issue on the other hand.
  • posdef
    posdef about 12 years
    how about HFS+ Journaled and Linux. I read somewhere that Linux compatibility is depending on whether or not not the HFS+ volume is journaled or not (as in no joy if the HFS volume is journaled)
  • posdef
    posdef about 12 years
    reference for the above comment: "The Linux HFS+ kernel driver has support to read and write to HFS+ non-journaled drives/partitions but only has read support of journaled HFS+. Journaling is a redundant behavior of a filesystem that helps protect against data loss. If planning to write to an HFS+ partition then drive journaling must be turned off in Mac OS X." (retrieved from Wikipedia, but referenced to a thread in Ubuntu forums)
  • slhck
    slhck about 12 years
    That's not possible out of the box as far as I know. See here: How to mount a HFS partition in Ubuntu as Read/Write?
  • HikeMike
    HikeMike about 12 years
    How's the exFAT support on Linux?
  • slhck
    slhck about 12 years
    @DanielBeck Not that good, I guess. Proprietary third-party tools only, and the OP ruled it out.
  • kolen
    kolen over 10 years
    Also, there are mentions of problems for partitions larger than 2 Tb: "In 2009, these drivers were diagnosed to be corrupting HFS+ drives with a capacity greater than 2 TB. Consequently, Linux distributions such as Debian and Ubuntu also stopped allowing mounting of HFS+ drives or partitions greater than 2 TB. As of February 2011, work is in progress to lift this restriction." (wikipedia)
  • Matt
    Matt about 10 years
    It seems (after trying it) that you can turn journaling on and off at any time (using the weird method of this answer), without affecting the contents of the partition. So if you like, you could turn on journaling whenever you're on a mac, as long as you remember to turn it off before ejecting (so that it mounts as read/write (instead of read only) on linux). (Too bad OSX can't do this automatically for us, with some 3rd option like "only journaled on macs (linux-friendly)"...)
  • Midwire
    Midwire about 6 years
    Update: Linux does now support writing to HFS+ journaled volumes: superuser.com/a/365270/89860
  • slhck
    slhck about 6 years
    @Midwire Nice, thanks for the update. I rewrote the answer.
  • Karl
    Karl over 3 years
    This worked well for me. Just need to remember to turn off org.zfsonlinux:userobj_accounting and org.zfsonlinux:project_quota if using openzfsonosx and you want it writeable on MacOS.
  • ggrocca
    ggrocca over 3 years
    @Karl good point. It was not a problem for me because I created my pools on macOS and then imported them on Linux. Keep in mind also that these could be transient problems, that happen now and won't happen in the near future. There's an ongoing effort into merging all the OpenZFS development effort into a single, multi-platform project, and into providing default feature-sets with different compatibility levels. See for instance this github issue.