Steam on MacOSX APFS file-system start failure

@vrqq  February 24, 2018

Description

Mac OS High Sierra 10.13 + APFS(case sensitive)
If u caught up these error, don't worry, u can launch ur steam by my step!

  • Steam requires that '/Users/xxx/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS' be on a case-insensitive filesystem.

steam-err1.jpg

  • /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.1.1/Common/ChunkCompression.cpp:50: Error: unsupported compressor 8
  • /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.1.1/Libraries/CompressData/CompressData.c:353: Error: Unknown compression scheme encountered for file '/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist'

(In terminal)sorry I forgot to capture this screenshot.

Solution!

  • Use "Disk Utility.app" to add a volume, choose format 'APFS' (DO NOT select 'case-sensitive' option). And we assume that name is 'Steam'. Please remember the 'Device' label in the right of this application. (we assume that's disk1s6).
  • Move all files from "~/Library/Application Support/Steam/*" to "/Volume/Steam/".
  • Delete all files in folder "~/Library/Application Support/Steam/", just only hold this folder on. (same as the previous step)
  • Open "Terminal.app" , input sudo diskutil umount /dev/disk1s6. If you catch up some error such as dissented by PID 15382 (/Volumes/Steam/Steam.AppBundle/Steam/Contents/MacOS/ipcserver), you can kill this process(eg:pid15382) and try again.
  • In "Terminal.app", input sudo mount -t apfs /dev/disk1s6 ~/Library/Application\ Support/Steam. (We assume /dev/disk1s6 is the volume that created just now.)
  • If you still can't launch the 'Steam.app', open "Terminal.app" and input /Applications/Steam.app/Contents/MacOS/steam_osx -bigpicture. Then run and login steam account (must login first), and select setting -> update -> 'Steam Beta Update'.
  • Then everything is OK.

Because we can't create a hard link on folder, and I has been tried to create soft link of the 'Steam' folder, yet it ran failure. So I got an idea about trying to mount an case-insensitive volume on these folder. Maybe create a volume-file is a better solution rather than create a physical-volume. Hope someone tries it!

Some explanation: In the Linux/Unix like system, all things is shown as 'file or folder' in filesystem, including the partition in physics disk or the remote volume in network. So we can move the incompatible part about this disk-format to another place. (In this example, we put it in the other partition.)

The problem I guessed is that the steam.app asks to kernel 'where am I stay in?', and kernel tells them you are in a places you've never heard before, and we just move it to the place that application could find a way to run.

A screenshot about my Disk Utility.app (Before mounting to ~/Library/Application Support/Steam/)
Disk Utility.png

(中文)临时解决Steam在APFS大小写敏感分区上不能运行的bug

许多人发现升级了系统,哪怕老系统,选了大小写敏感分区都不再能运行Steam了,还以为网的事儿,不然。。
由于unix不能给文件夹加hard link,而且报错都是从文件夹内部报出来的,因此想到了弄一个虚拟分区挂在上面,可以保证:给定一个文件路径,“前半部分”大小写敏感,“后半部分”大小写不敏感。其实是从kernel级别保证 程序检测当前路径时候会认为是case-insensitive的。

finish.jpeg
Steam.app已经升级到最新的beta版 / We already update Steam.app to its newest version.


已有 15 条评论

  1. peedee peedee

    Really appreciate thinking this through. Neither Steam nor Apple have done anything about this, but the case-insensitive volume mounted inside the Application Support directory does the trick. NICELY DONE.

  2. robatron robatron

    Very clever! It worked beautifully. Thank you!

  3. Matt Matt

    I want to use your method but to install Photoshop and/or Illustrator. I notice your screenshot has AdobeCC. Do you have directions or know which directories I need on a case-insensitive drive/partition to allow the Photoshop installer to work?

    1. By installing AdobeCC, I use the method that build a .m file (objective-c source file), to cheat the installer.
      Maybe : https://github.com/tzvetkoff/adobe_case_sensitive_volumes

      I'm not sure whether the script that I have used above, sorry I forgot the link...

  4. verythankful123 verythankful123

    you are incredible

    1. It's also exciting for myself.

  5. Felipe Felipe

    You`re the best

  6. Dennis Dennis

    Works thanks!!!!

  7. lols lols

    I tried it but it still says that Steam needs to be in a case-insensitive file, is it because the partition failed for me, do I have to do it again?

    1. So you can also try to create an case-intensive image file, and copy all steam file into this disk image.
      E.g.:
      Open 'Disk Utility.app' and on the menubar : file -> new Image -> Black Image.
      Create xxx.dmg without case-sensitive, and move 'steam' folder(if exist) into this image.
      Then in terminal, mount this ```xxx.dmg``` to ```~/Library/Application\ Support/Steam```
      And then, maybe it's ok to run Steam.app

      Have fun!
      If you also have problem you can reply here or email me.
      vrqq3118 at 163.com

  8. Grateful Anon Grateful Anon

    Thank you for nice advice it worked.

    1. Sure and have a good day!

添加新评论