Cómo recuperarse de un directorio /etc renombrado en Mac OS Monterey (causando la imposibilidad de iniciar sesión)

Sin querer, cambié el nombre del directorio en una Mac que ejecuta macOS Monterey, con consecuencias desastrosas: ya no se reconoce /etcla contraseña de Terminal (porque ya no se puede encontrar el archivo), lo que significa que ya no puedo ejecutar ningún comando que requiera una contraseña. Peor aún, ya ni siquiera puedo iniciar sesión en la Mac.sudo/etc/sudoers

Para resolver el problema, comencé con la respuesta aceptada descrita por David Rouse en respuesta a una pregunta similar: carpeta /etc renombrada. Ya no puedo iniciar sesión - preguntado en 2019.

La primera parte de esa solución (iniciar la Mac usando el modo de usuario único con la contraseña existente y ejecutar mount -uw) funciona perfectamente.

Sin embargo, incluso desde el modo de usuario único, no puedo cambiar el nombre del /etcdirectorio. Por ejemplo, intentar ejecutar cdo mven relación con /etclos resultados en un No such file or directorymensaje, y la /privatecarpeta de enlaces simbólicos parece estar vacía; vea la imagen a continuación.

Entonces, ¿cómo puedo volver a cambiar el nombre de la carpeta /etcpara que la Mac vuelva a estar operativa?

ingrese la descripción de la imagen aquí

El problema es que creo que el disco de arranque ahora tiene dos partes fusionadas y solo ve la parte de solo lectura. Consulte bombich.com/kb/ccc6/working-apfs-volume-groups para obtener una idea.
Probablemente la mejor manera de progresar es reinstalar macOS
Inicie la recuperación, reinstale solo el sistema operativo. Sus archivos no deberían verse afectados.
@TechnoCat ¿Por qué usa el modo de usuario único? Si utiliza el modo de recuperación y desbloquea si es necesario el volumen "-Datos" (caso Filevault activo) puede acceder y modificar todas las estructuras del sistema.
@mmmmmm Gracias por el enlace útil al artículo de Bombich en bombich.com/kb/ccc6/working-apfs-volume-groups . Si lo leí correctamente, significa que eludir la seguridad normal de MacOS, por ejemplo, modificar los archivos y carpetas del sistema después de iniciar sesión a través del modo de usuario único (la solución propuesta hace dos años en el enlace que incluí en mi pregunta), no ha sido una opción viable desde Catalina en 2019. Es útil saberlo. Significa que perseguí una solución no viable, preguntándome por qué no funcionó. ¡Ahora sé por qué! :)
TechnoCat: ¿Intentó al menos montar el volumen de datos? Arrancar en modo de usuario único solo monta el volumen sellado de solo lectura. El volumen que contiene la carpeta /private debe montarse explícitamente.
@Jean_JD Utilicé el modo de usuario único porque se presentó como una gran solución a un problema idéntico hace solo dos años (así que asumí que todavía era viable). Además, todos tenemos lagunas en nuestro conocimiento técnico; No me di cuenta de que podía reinstalar el sistema operativo en una Mac sin pérdida de datos, por lo que estoy muy agradecido con varias personas en este hilo que mencionaron reinstalar solo el sistema operativo como otro medio viable para recuperarse de este casi desastre. . ¡Gracias!
@TecnoCat. Desde el Modo de recuperación, puede acceder a la Terminal en modo root donde todos los Volúmenes pueden montarse y/o desbloquearse. Puede intentar reparar el sistema de archivos (cambiar el nombre, etc.) sin reinstalar el sistema. Se puede acceder al terminal en el menú superior en la opción Utilidad.
@DavidAnderson: aún no he intentado montar el volumen de datos (porque tomará un poco de lectura / tiempo entender exactamente cómo hacerlo ... No puedo permitirme correr más riesgos con la Mac de mi colega, así que todo está hecho con mucho cuidado), y ahora estoy encerrado en otro proyecto durante las próximas 10-12 horas.
Gracias David, Hillside, Jean, mmmmmm y otros por las soluciones y comentarios súper útiles. Probaré e implementaré las recomendaciones tan pronto como pueda volver a esta tarea más tarde hoy. Enormemente agradecido!!
esto es genial @TechnoCat, ponga todos sus nuevos aprendizajes en la sección de respuestas. A veces, las personas intentan editar la pregunta para que sea una publicación de blog en lugar de dejar la pregunta sobre dónde comenzar y mostrar todo el aprendizaje y el progreso en las respuestas.

Respuestas (1)

Tengo Monterey instalado en una máquina virtual VMware Fusion Player.

Seguí tus instrucciones y pude cambiar el nombre /private/etca /private/xetc.

Cuando inicio Monterey en modo de usuario único, veo el siguiente resultado. La imagen muestra instrucciones en forma de tres tres comandos, que se pueden usar para montar la partición de datos en un dispositivo habilitado para SEP.

Nota: Para una mejor vista de la imagen, haga clic en la imagen o abra la imagen en una nueva ventana.

A continuación se muestra la salida del mountcomando. Solo el volumen sellado de solo lectura está montado en /. Por eso la /privatecarpeta está vacía.

Entonces, seguí las instrucciones que se muestran en la primera imagen e ingresé los siguientes comandos.

Nota: estos comandos produjeron mensajes, que elegí ignorar.

/sbin/mount -P 1
/usr/libexec/init_data_protection
/sbin/mount -P 2

A continuación se muestra la salida del mountcomando. Ahora, el volumen de datos está montado en /System/Volumes/Data.

Dado que este volumen de datos se etiquetó con el indicador de metadatos del rol de datos cuando se creó y se encuentra en el mismo grupo de volúmenes APFS que el volumen montado inicialmente, ambos volúmenes comparten el /punto de montaje raíz ( ). En otras palabras, este volumen de datos se monta dos veces.

A continuación, realicé la reparación ingresando el siguiente comando.

mv /private/xetc /private/etc

Nota: también podría haber hecho la misma reparación ingresando la versión más larga que se proporciona a continuación.

mv /System/Volumes/Data/private/xetc /System/Volumes/Data/private/etc

Finalmente, ingresé el siguiente comando para iniciar Monterey.

exit

 

Curiosamente, la página de manual de mountno sabe acerca de -P.
@nohillside: Debo confesar que no sé qué hacen realmente los comandos. Ingresar los comandos fue una pura suposición de mi parte. Actualicé mi respuesta para mostrar el resultado del mountcomando antes y después de ingresar los tres comandos.
Gracias @DavidAnderson. ¡Tu solución funciona perfectamente!