Current state of NTFS compatibility? - eviltoast

Hi all. I’ve used Linux off and on for almost two decades now but most recently in a VM. I’m thinking I might make the permanent switch sometime before Windows 10 EOL. My concern is that I have over 12TB of data spanned across many drives, all in the NTFS file system. How is NTFS compatibility nowadays? For a time, I remember it being recommended to mount NTFS as read only. It seems infeasible to convert my current data to a Linux filesystem. Thoughts?

Edit: I don’t have time to reply to everyone but thanks for the information and discussion. I’m looking to rearrange some things on my drives to free up one drive entirely and then perhaps give Fedora Linux another spin on a secondary drive along with Windows on another. If all goes well, maybe Windows will get the boot or um never booted again.

  • jrgd@lemm.ee
    link
    fedilink
    English
    arrow-up
    51
    ·
    edit-2
    9 months ago

    One can comfortably use NTFS to read and write files on modern Linux distributions, but NTFS in general is not very suitable for running applications on or using for long-term usage between a dual-boot. Windows can and will often lock up NTFS partitions whenever it decides to hibernate rather than shutdown or sometimes suspend. NTFS while not being the greatest FS in general will also have worse performance on Linux than Windows. You can totally keep data stores on a Linux system, though you won’t be able to make use of many of the advanced features some Linux/BSD-oriented filesystems offer. You can totally keep your drives as they are now, though if you intend to make a full switch you should consider migrating your drives’ data over to more Linux-oriented filesystems (be it Btrfs, Xfs, or Ext4 is your choice depending on the features you want). In short, NTFS works but lacks a lot of features and performance that a more suitable filesystem would offer.

    • lemmyvore@feddit.nl
      link
      fedilink
      English
      arrow-up
      10
      ·
      9 months ago

      Windows will also sometimes leave NTFS filesystems in a dirty state on shutdown and fixes them silently when it starts back up. But it you boot Linux in the meantime the filesystem will appear messed up and you’ll have to use ntfsfix if you want to mount it.

    • cygon@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      9 months ago

      I’ve done this (shared 3 NTFS partition in a dual boot setup) from 2017 to the end of 2023 without issues.

      The trick was to disable “fast startup” and hibernation. Otherwise Windows happily shuts down with the file systems in an inconsistent state. It’s just a question whether one can live with that in their Windows install.

    • teawrecks@sopuli.xyz
      link
      fedilink
      arrow-up
      3
      ·
      9 months ago

      Windows ext4 compatibility is awful. I have my steam library on an ext4 partition, and occasionally boot to windows for specific games that don’t work in linux. I tried mounting my ext4 partition using WSL (which worked fine), adding the steam lib folder to steam (worked fine), but all the games wanted to be verified before being run, and then i finally started one and got a BSOD. I thought maybe steam might complain that some files were wrong, but I didn’t expect that lol. But at least steam tried, Epic launcher just flat out refused.

      I haven’t tried btrfs in windows, I see WinBtrfs exists, I wonder how well it works.

      • bjorney@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        9 months ago

        Windows doesn’t have ext4 compatibility. When you mount a Linux partition through WSL you aren’t actually mounting the drive itself, you are booting a VM up and piping all I/O through that VM back to an emulated disk device on the host windows OS

        You would be better off having your steam library on an NTFS partition - at least your Linux OS can read the drive natively

          • desconectado@lemm.ee
            link
            fedilink
            arrow-up
            1
            arrow-down
            2
            ·
            9 months ago

            It doesn’t have issues. It just doesn’t work. You need your library on ext3/4 for the games to run on linux.

            • bjorney@lemmy.ca
              link
              fedilink
              arrow-up
              2
              ·
              9 months ago

              For what it’s worth I’ve never had an issue launching a game from a library on my NTFS partition

      • jrgd@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        9 months ago

        In general, Microsoft doesn’t support many filesystem formats at all. In the same way you shouldn’t attempt to cross-run a steam library from Windows on Linux, you really shouldn’t do from Linux to Windows. It’s in part due to how permissions, execution flags, filesystem case sensitivity, file metadata, is interpreted by Windows applications vs. Unix-like applications. There will be issues going either way when using foreign filesystems in complex tasks.

        While it should be expected that the files will have the same contents where they are actually the same (i.e. a Proton game will be the same as a Windows game as it comes from the same steam depot), there is a good chance that translation of interpretation isn’t to be 1:1 on either side. Furthermore with using Steam libraries, Steam includes additional data beyond just the game files, which is likely why they are invalidated. A significant portion of visible cross-os portability issues is due to many applications like Steam using OS-specific file structures. More than likely Steam is going to intentionally make the library metadata not fully compatible between Linux and Windows Steam and force validation before launch because there is a good chance the games aren’t even compatible builds or otherwise have additional compatibility content dragged along (such as Proton WINE prefixes that are to be completely ignored when launching from actual Windows or having additional libraries, modded executable binaries that have platform-oriented patches).

        If you seriously want to run a cross-share of a Steam Library between Linux and Windows, you should really utilize Steam Cloud save. If you want to “deduplicate” your games, your best bet would be if you can open the foreign fs and have a compatible copy of the game, to simply clone the game files to the current filesystem and remove from remote rather than attempt to force a multi-os single-partition shared library. You are less likely to destroy your Steam library if you treat the actual libraries separate, but move the games like they were downloaded externally. Barring being able to do that, just don’t cross-share games. Simply reboot into the OS that has the game you want to play instead.

        • teawrecks@sopuli.xyz
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          I accept that the powers-that-be don’t want me to do it, I understand that the foolproof user experience is to just play a game made for windows on windows, but if that’s how we lived, none of us would be gaming on linux in the first place.

          Outside of the download/update of a game, the files should be read only. As long as the files have the right data in them for a given OS, and the OS has proper support to read the files, then I should be able to load them and execute them. Any little permissions or metadata quirk that prevents that from happening is a bug as far as I’m concerned.

      • cygon@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        9 months ago

        I’m in the same boat. I’ve ended up using Paragon’s commercial ext4 drivers ($20) and while they absolutely work, they’re case sensitive and many Windows apps (especially Bethesda games) open their files with random upper/lowercase spellings that don’t match the files.