What is the most efficient way to share files across manjaro and windows?

Hello! I have dual boot system with Windows 10 and Manjaro installed. I wonder, what is the best way to keep some shared files between those operating systems? For example i wanna share Pycharm or Intellij IDEA projects, Minecraft instances.

Hi @finskiy,

Personally I’d go with SAMBA, but I don’t think you mean over a network.

So my next suggestion is NTFS which has recently been baked into the kernel.

There’s also FAT32 and exFAT, but I don’t know much, or anything about that really.

Might come in handy to read this… :arrow_down:

1 Like

In a basic principle, Linux can access NTFS partitions, but Windows cannot access ext4 partitions. So you can very well have a dedicated folder in your NTFS partition, in which Manjaro can read and write.

Okay, but what about speed? I’ve heard that ntfs-3g is slower. Some people also told me to use exFAT

Not entirely true.
There is an ext4 plugin for Total Commander which enables this file manager to access ext4 filesystems.

It’s true. It’s not Windows. It’s other, 3rd party software.

1 Like

My point was about using the existing Windows partition. If you reformat it, you’ll need to reinstall Windows…
But if you create a new partition for exchanging files, exFAT is indeed a better choice.

I wouldn’t recommend it tho
Most of these tools aren’t updated for years and it’s possible that they would corrupt your EXT4 partitions, they lack permissions functionality aswell, so your files would be open to everyone that access your Windows system, that’s a huge security breach.

exFAT might be a good option but it’s targeted to external drives like SD-Cards and Pendrives, while NTFS has advanced features like journaling and compression and you can also setup ntfs-3g to use the permission functionality from NTFS, so i recommend using a separated NTFS partition if you wish to share files between Windows and Manjaro.
Also, since Linux 5.15, you can use the kernel to write and read NTFS partitions with higher speed than ntfs-3g

i would recommend to use NTFS partition for sharing between windows and linux. assuming you use kernel 5.15 or later, the kernel driver ntfs3 is available, which is both faster and way less resource intensive than ntfs-3g. just mount the shared partition in /etc/fstab with explicitly as ntfs3 type.

the usual suspects should be mitigated, you should have “fast boot” disabled and refrain from hibernating windows or else mounted NTFS partitions can go read-only or much worse unmountable (ntfs3 driver seem to be very picky on NTFS status than ntfs-3g is)

https://wiki.archlinux.org/title/NTFS

I’ve just come back to Linux after a 6 years hiatus, but at the time, I tried both ext3 partitions in Windows (there is a driver) and NTFS partitions in Linux. It was finicky. Errors were regularly detected on both sides. But I never lost data. It’s doable, but this time around I’m not considering it.

I bought a second SSD for my gaming-and-development laptop just for dual booting Windows and Linux, and I’m keeping both strictly separate. I’ve long used Google Drive and OneDrive (the 100 GB plans), and that’s what I’m using to synchronize most of my files between the two OSes.

  • I’m reusing my old-but-lifetime InSync license to sync OneDrive and Google Drive for documents and pictures; there are open source sync tools for both, but they lacked the features I wanted
  • for strictly local and confidential (financial) data, I’m synchronizing with Syncthing between my 2 computers; it’s even possible to sync with a phone
  • I’m encrypting my financial data with Cryptomator and sync-ing it in OneDrive for safe keeping; I’m looking for a file sync software. I will be looking at Unison
  • for development projects, the simplest is to commit everything to a git-hosted repository. I was using BitBucket for its privates repos, but since GitHub began offering private repos, I switched to Github.

So I have no more worries about file system incompatibilities. This works for my needs, but it may not fit for yours.

The fail-safe method is to create a separate partition using Windows disk manager - format using exFAT.

If you create it in Linux use the type 0x0700 (Microsoft basic data) and format using exfat

mkfs.exfat /dev/sdxy

Windows will most likely complain about the filesystem and offer to repair it - it is safe to do.

The perfect cross platform filesystem is exFAT

  • exFAT is not limited to 4G filesize as FAT32 is)
  • It is system agnostic and has neither permissions nor quotas.
  • It doesn’t get ‘dirty’ like ntfs does when Windows hibernates or uses Fast startup.
  • As exFAT is permissionless you don’t have to worry about accessing the partition on Linux.

Mount the partition in an easy accessible location e.g. a folder in root /a. Include the device in your fstab.

DEV=/dev/sdxy
MOUNTPOINT=/a
mkdir -p $MOUNTPOINT
echo "UUID=$(lsblk -no uuid $DEV) $MOUNTPOINT auto rw 0 0" | sudo tee -a /etc/fstab
sudo mount -a

I’ve been using exFAT for a couple of years already, it just works fine in both systems. MacOS also supports this format, so this is a sort of usiversal filesystem for cross-OS operation.

1 Like

arrgh right! exfat that was the word I couldn’t locate

1 Like

Damn, i just made a exFAT disk and bow manjaro won’t load…

Please detail…

Nvm, fixed by following some guide on internet, by setting root and prefix in grub rescue.
I resized the disk with windows 10 installed, using Windows disk manager and got 40 GB of free space. After, i created a disk with exFAT format. Did a reboot and got a grub rescue.
Probably something happened with disks order? idk

Nvm, this happened again

Windows disk manager most likely changed the UUID of your Linux partition.

If that is the case - you will have to boot a Manjaro ISO - then fix your fstab entry to use the correct UUID for your Linux root partition. While you are at it - verify the EFI partition UUID as well.

1 Like

Worked, thanks!