蘋果系統祖傳Bug概述
- 在MacOS中如果在系統偏好設置/用戶和群組中
- 嘗試修改用戶名或用戶ID,當且僅當只有一個管理員賬號的時候
- 重啟,就可能面臨到無法進入操作系統,即使出現了登錄框,但是一直是 loading狀態
- 在這個期間,你有可能因為人的正常思維修改用戶名的同時也修改了用戶對應的路徑
- 官方其實知道這塊會有問題,在文檔上也給出過警告提示,如下
- https://support.apple.com/zh-cn/102547
- 但是這類操作是非常敏感而且是有風險的,但是大家要理解小白用戶有恐怖的破壞力
- 其實我不理解的是,如果修改會出現大的問題,為何官方還把這個問題放出來,如果客戶誤操作,進不去系統導致數據丟失,蘋果官方到底有沒有責任呢?
- 外加互聯網上一大堆的教程,弄著弄著,可能本來不是一個大問題,就變成了一個大問題
- 而且每個人的電腦環境不同,也許別人的解決方案并不適合你的
- 客服告訴我,這個Bug起碼有5年了,我也是醉了 …
- 現在把解決步驟分享出來
解決方案
- 網上有很多 command + s 進入后執行一些終端命令,掛載和刪除
- 實際上,我遇到的問題更邪門,壓根無法進入到輸出模式,一大堆底層代碼輸出后,仍舊是 loading,所以這種方案被遺棄
- 現在我來講下解決這個問題的過程,有一部分是借助搜索引擎,有一部分是動手實踐,還有一部分是靠猜
1 )初步研究和客服電話溝通流程
- command + r 進入恢復模式
- 檢查硬盤數據是否掛載,這一步很重要,如果不掛掛載是沒法在終端中看到的
- 進入磁盤管理工具,對數據盤進行掛載, 一般而言,掛載的是 Macintosh HD 數據 這個盤,選中,進行掛載操作 (必須)
- 之后退出 磁盤管理工具,在最頂部菜單欄選擇 實用工具下的終端,執行 $
cd /Volumes/Macintosh HD/var/db/
- 好進入這里之后,執行 $
ls
或ls -la
可以看到有一個.AppleSetupDone
文件 - 我們可以進行刪除
rm .AppleSetupDone
- 一般而言,如果再次執行 $
reboot
重啟后進入系統 即可重置管理員,但是我遇到的問題并沒有那么簡單 - 昨日,我聯系蘋果客服,告訴我大概也就這幾個步驟
- 客服電話中說如果還解決不了,可以再次到磁盤工具中,新建文件夾鏡像進行數據的拷貝來避免數據丟失造成的損失
- 這里他沒有告訴我,要先掛載
Macintosh HD 數據
這個盤,導致我執行 $rm "/Volumes/Macintosh HD/var/db/.AppleSetupDone"
(包括引號)會有 no such file or directory 的提示 - 而且,因此,我也沒有辦法避免數據的丟失,因為沒有掛載,所以無法瀏覽到相關數據,我當時就沒意識到這個問題
- 當時客服態度比較好,而且一直說,想著幫我解決問題,也花了不少時間,又夸我思路清晰,描述和思考的很專業
- 后來我想想,這算不算一種"捧殺" … 在職場中"捧殺"和"貶低" 這兩種都是要不得的,好,話說回來
- 在溝通當時,我并沒有發現太多對我有用的信息
- 在溝通之后, 我看到了自己沒有掛載磁盤,并且
- 最終發現了新大陸,找到了
.AppleSetupDone
這個文件 - 在這個文件刪除之后,其實按照互聯網大多數人的做法,執行 $
reboot
重啟后,就可以重新設置管理員以此來解決問題 - 但是,我的電腦和系統,在重啟后,在輸入登錄密碼之后,菊花還是一直在轉圈, 之前是加載進度條卡住
- 現在是菊花轉圈圈,都是Loading狀態, 這個問題仍舊沒有解決
2 )最終解決
- 在這之前,我還使用恢復模式第二個選項,重新做了兩次系統(無抹盤),但是都沒有任何的效果,客服之前也說沒有用
- 昨天我在我的另一臺Mac上升級了一下系統,因為硬件不同,無法升級到同樣的系統版本,但也無妨我多次模擬這個問題
- 昨天臨睡前,我想了想,如果我把我的用戶文件夾給刪除掉(或重命名),它會不會重新走初始化流程呢
- 抱著這個想法,今天早晨,我嘗試了一下
- 仍舊按照之前的步驟掛載數據盤,并刪除
.AppleSetupDone
這個文件 - 之后,我在
/Volumes/Macintosh HD/Users
目錄下重命名了我之前那個唯一的用戶目錄,比如這里原本是A
重命名改成M
(隨意),因為里面的數據后期還需要還原回來, 之后執行重啟 - 天終于亮了,在輸入密碼重新進入后,沒有了 Loading, 出現了
輔助功能
的設定流程,也就是進入重置之前的那個用戶的數據的流程 - 在我一步一步的處理好之后,終于進入了系統
- 還沒完,進入系統設置/用戶與群組,發現這個用戶仍舊是一個管理員,并沒有像是網上說的丟失了管理員權限
- 可以看到,右鍵 高級選項后,看到 用戶名這一欄是灰色的 (這個注意了)
- 這次,我長了個心眼,重新設置了另一個管理員,來以防萬一,后續弄好后可以刪除也可以繼續保留
- 登錄另一個管理員,在經過一系列初始化操作后,進入用戶目錄,這里一般而言,除了 共享,客人,還應該有三個用戶目錄
- 分別是最開始改名的原始用戶目錄
M
,后來重新初始化的用戶目錄A
(代號),最后是剛剛新建管理員的用戶目錄,假設是B
- 現在已經進入了另一個管理員賬戶,所以就可以操作
M
和A
目錄了,同樣,這個操作也可以在恢復模式下操作(麻煩,沒有必要) - 好的,現在,刪除
A
目錄,需要輸入管理員密碼,之后把M
目錄重命名成A
- 再次說明,這里M, A, B目錄都是代號(按照自己設定的來) A目錄就是最原始的那個目錄,對應用戶與群組高級選項中
個人目錄
設定的那個 - 好的,目前還剩兩個用戶目錄:
A
和B
分別對應兩個管理員賬號,再次執行重啟,選擇最原始的管理員賬號進行登錄,再經過短暫的Loading后,發現一切都回來了 … - 這里,如果之前修改過用戶ID, 默認是 501,修改成別的,應該也回不來也同樣卡在Loading,用類似的方法,可以把用戶ID再改成501,看下別被另一個管理員占用
- 注意,用戶ID最好不要亂改,否則容易出問題
- 如果到目前,仍舊恢復不了,可以直接用另一個管理員賬號,可以將之前的管理員賬號目錄下的數據轉移過來
- 仍舊按照之前的步驟掛載數據盤,并刪除
- 如果發現當前用戶下,賬戶名稱是灰色,新建另一個管理員賬號對當前賬號的名稱進行修改