解决 MacOS Sonoma 14 系统下修改用户名无法进入系统的历史Bug

2024-03-02 13:36

本文主要是介绍解决 MacOS Sonoma 14 系统下修改用户名无法进入系统的历史Bug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

苹果系统祖传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/
  • 好进入这里之后,执行 $ lsls -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
    • 现在已经进入了另一个管理员账户,所以就可以操作MA目录了,同样,这个操作也可以在恢复模式下操作(麻烦,没有必要)
    • 好的,现在,删除A目录,需要输入管理员密码,之后把M目录重命名成A
    • 再次说明,这里M, A, B目录都是代号(按照自己设定的来) A目录就是最原始的那个目录,对应用户与群组高级选项中个人目录设定的那个
    • 好的,目前还剩两个用户目录: AB 分别对应两个管理员账号,再次执行重启,选择最原始的管理员账号进行登录,再经过短暂的Loading后,发现一切都回来了 …
    • 这里,如果之前修改过用户ID, 默认是 501,修改成别的,应该也回不来也同样卡在Loading,用类似的方法,可以把用户ID再改成501,看下别被另一个管理员占用
    • 注意,用户ID最好不要乱改,否则容易出问题
    • 如果到目前,仍旧恢复不了,可以直接用另一个管理员账号,可以将之前的管理员账号目录下的数据转移过来
  • 如果发现当前用户下,账户名称是灰色,新建另一个管理员账号对当前账号的名称进行修改

这篇关于解决 MacOS Sonoma 14 系统下修改用户名无法进入系统的历史Bug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/766294

相关文章

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也