解决 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

相关文章

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是