日前發現我的 2012年版 Mac mini (Mac OS X Capitan) 無法登入 APP Store
出現 AMD:Action:authenticate:SP 的錯誤訊息
在網路上爬了很多文章,大部分的解決方式都是
前往 /Library/Preferences/SystemConfiguration/ 目錄將
NetworkInterfaces.plist 檔案刪除後重新開機就可以登入了,可是我怎麼試就是不行


後來想到可能是 El Capitan 的 SIP 作怪,於是也關閉了 SIP 還是不行
又爬了許多國外的文章,發現可能是我有改雙硬碟引起的
主硬碟 SSD,次硬碟原廠的 HD,改了雙硬碟後,將整個 Users 資料夾搬到次硬碟上,再 ln 掛載
在El Capitan之前的作業系統是沒問題的,但是在 El Capitan 卻會出現問題,而問題出在
/Users/Shared 這個資料夾上,它必須在主硬碟上


於是我 ln 的連結刪掉,在主硬碟 /Volumes/主硬碟 重建 Users 目錄 sudo mkdir /Volumes/主硬碟/Users
再把副硬碟 sudo mv /Volumes/副磁碟/Users/Shared /Volumes/主硬碟/Users
還有 sudo mv /Volumes/副磁碟/Users/Guest /Volumes/主硬碟/Users
也一併搬回去
然後再 sudo ln -s /Volumes/副硬碟/Users/使用者資料夾 /Volumes/主硬碟/Users 掛載上去
讓 /Users 中的 Shared、Guest、使用者資料夾 只有 使用者資料夾是屬於 ln 連結,其他都是實體存在主硬碟上
重開機後 再登入 APP Store 就可以正常登入了


另外在 El Capitan 要搬移 /Users 或底下的資料夾能會發生sudo 也動不了的狀況,那就是 SIP 的關係了,關閉 SIP 就可以動了


OS X升級到El Capitan之後,提供SIP(System Integrity Protection),又稱rootless mode,這個新功能在強化OS X的安全性,不過也造成部分程式(例如homebrew和git)在命令列模式下執行異常。
SIP預設是開啟的,以下步驟可以把SIP關閉:
1. 重新開機
2. 重開後長按Command-R進入Recovery Mode
3. 進入Recovery Mode之後,從Utilities > Terminal打開終端機
4. 終端機輸入csrutil disable
特別要注意的是,csrutil 的設定實際上是在 NVRAM 中設定參數,所以當你重置 NVRAM (開機按住 command + option + P + R) 之後,SIP 會變回開啟狀態,所以要再重新關閉一次,切記切記!