3

My steam library is on an external drive that I had to format as exFAT to be able to write on OS X. Note that I play on Windows 7 64-bit, I just use this drive on both.

Steam, along with way other programs and softwares, were happy with this unless suddenly during uninstall process of one of the games via Steam, it wiped all the Steam library. I could not even recover it, have no idea what have happened.

So I went to install some of my games and upon installing of big ones like XCOM 2, Steam said that the drive can't be FAT32 and has to be NTFS. As explained, the drive is exFAT and NOT FAT32. I contacted Valve about this and they said they can't do anything about it.

So is there a way to make the Steam think that the drive is NTFS? Like with linking files or something.

Thanks.

EDIT: Obviously format to NTFS is not an option because I don't have 2TiB empty space somewhere to move data from this drive and to my knowledge there is no conversion from exFAT to NTFS without formatting.

  • No; wouldn't it be easier to install the NTFS drivers on MacOS? – Ramhound Apr 12 '17 at 1:17
  • This seems less to do with Steam and more with operating systems. You don't meet the requirements; that's all there is to it. – Frank Apr 12 '17 at 1:32
  • 2
    @Ramhound They are not reliable. Failed on me once. Not gonna go that road again. – idn Apr 12 '17 at 1:46
  • 1
    @Frank This system with same configuration was working perfectly before, so it is. Problem is probably introduced with a Steam update. – idn Apr 12 '17 at 1:47
  • There is no way to "trick" Steam in thinking a drive is another formatted as a supported file system – Ramhound Apr 12 '17 at 1:52
3

Here is a solution for anyone interested. Seems hooking the internal call to GetVolumeInformation (as suggested in comments) was the right way to go. It appears that steam just checks if the returned filesystem name contains the string "FAT" which would explain why exFAT drives are also affected by this:

image desc

Anyway, I've compiled a dll file which I made available on github. All you need to do is inject the file into Steam.exe and steam will no longer bug you about FAT drives. This should also work for all future releases of the steam client... Hope it helps somebody!

  • Hi @Cam, I was wondering how you would accomplish this injection as I am suffering from this problem myself with my own games like Borderlands and BioShock Infinite. – RagingDraugr Jan 18 '18 at 21:54
  • @RagingDraugr You can use any generic DLL injector. Remote DLL has worked well for me in the past: securityxploded.com/remotedll.php Just select the process (Steam), select the .DLL file and inject it. – Cam Jan 19 '18 at 23:04
  • Thanks for responding, but this honestly looks a little shady to me :/ – RagingDraugr Jan 20 '18 at 12:35
  • @RagingDraugr I've read the code (for commit 8938dd4061e611d07e6520fdb2f182d90c633008), it's literally just patching the function to always return false. It should be totally safe. – vgel Feb 13 '19 at 21:02
2

The only thing I can think of is doing a symbolic link to the drive but it would be difficult as you would have to link your steamapps folder and any other config/install folder to the drive. I have also never done symbolic links to an external drive so I don't know how the computer would react when the drive is ejected. This guide should tell you how to use symbolic links. If you do use this, make sure to use a symbolic link and not a hard link as you are linking different volumes.

EDIT: I'm not sure this will work well at all but it's the closest thing I can think of to "tricking" steam. It's probably not the best idea as exFAT is obviously not supported and may cause errors or slow speeds, without taking the external drive and link into account. Steam doesn't support exFAT for a reason but if you must get around it then this is the only solution I can think of.

  • Glad to know I could help. If you find my answer sufficient, feel free to accept it so that the question will close – Evan Apr 12 '17 at 11:50
  • meh, you could track down which syscall steam use to determine the disk type, and hijack it, and make it lie ( see easyhook.github.io) – hanshenrik Jun 28 '17 at 16:26
  • its probably GetVolumeInformation ( msdn.microsoft.com/en-us/library/windows/desktop/… ) – hanshenrik Jun 28 '17 at 16:29
  • @hanshenrik This might actually be a better idea as Steam is incorrectly detecting the partition type as FAT32 (which I understand would not be ok). If Steam's universe is "If it's not NTFS, it must be FAT32," then calling exFAT NTFS would be more accurate than calling it FAT32. – Calrion Aug 11 '17 at 9:15
  • I used to do this so I can verify that it mostly works. I'd had Steam installed on a NTFS drive, but used a junction point (a symbolic link for directories) so that the games were actually installed on a 3TB exFAT drive. One or two games would fail to update correctly because of accented characters in their file names. While FAT32, exFAT and NTFS all support Unicode characters in filenames Steam for whatever reason decided it needed to do something different when updating the game on a drive that wasn't using NTFS and screwed it up. – user86571 Sep 28 '17 at 17:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.