Hello. Recently, I wondered how to organize file sharing between operating systems. Suppose I want to install three main wasps on my laptop: linux, windows and hackintosh. Each OS is intended for its tasks: Linux - for work and programming, Windows - for games and hack - just for different experiments.
As I create educational videos about Linux, it’s more convenient for me to work on it. But I want to try to mount in the "final cut". I really liked the idea of ​​a tape of time.

')
So, the task is this: you need a partition on the system drive, and with such a file system, which is supported for reading and writing by all the listed operating systems. This section will store files downloaded from the Internet and inter-operational projects.
How was this task solved by me before? I used to use only Windows with Linux, so the task of exchanging with apple os did not arise. Of course, I wanted to use open and native FS for Linux - ext4. But on Windows it is not easy to mount. You need to install free (but proprietary) Paragon ExtFS for Windows. And okay, if it worked, but unfortunately this software damages your Linux section. I ran a couple of times, and any desire to use it was lost.
But the Windows FS under Linux is read and written without problems. You just need to install the ntfs-3g driver. He works in user space. The file system is proprietary, but the solution works.
Now I also want to use hackintosh, and I want to figure out what other options are available for solving this task, besides ntfs.
In fact, there are few options. Let's see what file systems are, and which of them are more or less universal.
Fat32 - the well-known ancient FS, is the most universal in terms of portability, but also the most miserable in terms of restrictions. It was developed a long time ago, does not support files larger than 4 GB. Proprietary. Not suitable for my tasks.
Ntfs - native
FS for Windows, proprietary. Linux, as I wrote above, is supported by a third-party driver (ntfs-3g). Mack does not understand it natively, although it is possible to install the appropriate software. There are several options, both paid and free. I don't like any of them. ntfs-3g works in userspace (at a slow speed), and paid solutions - paid.
Hfs + is one of the worst fs ever created. Native to Mac OS, but not at all universal. You can mount on Linux, but again for Windows there are paid solutions - in the span.
Ext4 is one of the correct FSs, native to Linux. But in terms of mounting in non-native wasps - again problems. For paid solutions for hackintosh and for Windows, they again ask for money. There are also free solutions, for example ext2fsd, but this driver cannot write to ext4. In the span.
Udf is one of the correct fs, supported natively by all wasps. This fs would be the best option if it were not for the company apple. Initially, udf was created for optical media, but it can be safely used on a regular hard magnetic disk. BUT! Due to the fact that the Yabloko did not implement support for this fs from the section, the whole idea is canceled. Even the last mac OS X supports this fs only if the entire block device does not have a partition table. On the githab there is a
format-udf script that can prepare the media in a special way: mbr is
written in the initial data block, saying that the section starts right there where mbr itself. Those. drive as if simultaneously with the partition table (what the Windows understands), and it seems like without a partition table. This method assumes that the carrier will be external, and I need to do the exchange partition on the internal drive. So this option is also in the span.
exFat is proprietary, but works natively in both Windows and Mac. It is very good. And what about Linux?
In short history:This fs was used for sd cards on androids, and there we have a Linux kernel. The manufacturers have implemented the exfat driver for the linux kernel and have not shown it to anyone. But someone on the Internet merged their github code. It was clear that this was theft, and in this form the code could not get into the kernel. However, in this code the community found pieces of gpl code, which, of course, required the disclosure of all the sources, i.e. it was already theft from the samsung community. After some time, Samsung released this code under the gpl license.
The question is, why is this driver not supported out of the box? Because it is not in the core. The merge of this code (albeit gpl-th) in the mainline is essentially a trojan from small ones (due to patents). Torvalds understands this, and, of course, the core does not poison.
In Linux, exfat can be mounted either with the help of the exfat-fuse driver, or with the help of exfat-nofuse. Of course, nofuse is better, since it will work faster. But you have to build it every time you update the kernel. Fortunately, for automating this task there is a dkms mechanism.
SummarizeI stop at exfat. Yes, proprietary, but nothing can be done. But everything works natively, and there are no “dances with a tambourine”: in all three operating systems there is native support and the opportunity to put this fs on the partition. Limit 4 GB no. And in general, this solution is quite simple.
I hope you have learned something new for yourself and choose the appropriate option based on your needs.
Related articles:
→
Comparison of Udf and Fat32→
History with exFat file system→
Install exfat-nofuse on ArchLinux→
Comparison of file systems on wikipedia