¿Cómo instalar aplicaciones en Snow Leopard después de una nueva reinstalación y mantener el MacBook en un estado previo al primer arranque?

8

Estoy vendiendo mi MacBook White 2007.

En línea con muchas sugerencias que he visto en línea, limpié el disco de forma segura y realicé una reinstalación, pero encontré un problema.

La máquina vino con OS X 10.4 Tiger pero desde entonces la actualicé a Leopard y luego a Snow Leopard.

Idealmente, me gustaría darle al nuevo propietario la nueva experiencia MacBook con el texto de bienvenida giratorio, pero también me gustaría pegarlos en el último Snow Leopard. El problema es que cuando realizo una nueva instalación de Snow Leopard, la máquina no tendrá las aplicaciones iLife (están en los discos de instalación originales de Tiger).

¿Hay alguna manera de obtener las aplicaciones de iLife allí sin necesidad de configurar una cuenta en la máquina?

Si no, ¿qué es lo mejor que puedes hacer? Configurar una cuenta es algo que preferiría no hacer (sé que me molestaría si comprara un MacBook de segunda mano y ya tuviera una cuenta en él). Por otro lado, instalar Tiger y darles los discos de actualización también parece un poco pobre.

¿Alguna sugerencia por favor?

Gracias por adelantado.

Seguimiento:
Todas las respuestas a continuación fueron muy informativas, claramente explicadas y probablemente igualmente efectivas. Elegí el que mejor se adaptaba a mis circunstancias, pero espero que todos sean útiles para futuros lectores de esta pregunta. Gracias a todos los que contribuyeron.

Grebas de Darren
fuente

Respuestas:

7

Dos cosas: si no conoce los conceptos básicos de una sintaxis de shell de Unix (tener un espacio en el lugar correcto es importante, la puntuación como / importa) no realice el paso 2 a menos que pueda volver a instalar todo nuevamente: el rmcomando es implacable: elimine el archivo o directorio incorrecto con rm -rfy la Mac no se iniciará. Puede estar más seguro usando el srmcomando en lugar de rmy triturará lentamente los archivos; uso en srm -sz -rflugar de a rm -rfcontinuación para triturar una vez y luego poner a cero (lo que termina siendo dos pases y luego una eliminación), bastante seguro para mis necesidades y no tan lento como la sobrescritura predeterminada de 35 pases antes de la eliminación)

  1. Asegúrese de que la persona que compra la máquina sepa para qué está obteniendo los discos de recuperación. Es realmente bueno crear una cuenta de prueba para ejecutar todas las actualizaciones en lugar de entregarles el disco Snow Leopard.

  2. Configure su Mac Snow Leopard para agregar una cuenta de administrador llamada prueba sin contraseña y eliminar cualquier otra cuenta que use la cuenta de prueba. Reinicie en modo de usuario único manteniendo presionado command+ sy escriba estos exactamente:

    / sbin / mount -uw /
    cd / var / db
    srm .AppleSetupDone
    cd dslocal / nodos / Predeterminado / usuarios
    srm test.plist
    cd / usuarios
    prueba rm -rf
    detener

Ahora puede iniciar el Mac para ver la configuración de la película de bienvenida y dejar el asistente unos pasos para usar command+ qcuando comience a hacer preguntas de nombre y se cerrará sin una cuenta creada pero con todas las aplicaciones preservadas. Recordará la configuración de su wifi, así que elimínelos antes de comenzar el paso 2 o use ethernet / un wifi público seguro para ejecutar actualizaciones si le preocupa ese tipo de cosas.

bmike
fuente
Después de sopesar todas las opciones, he optado por este enfoque. Gracias por el consejo sobre la ejecución de todas las actualizaciones y el diseño de los comandos de manera clara.
Darren Greaves
Gran respuesta aquí y con el script más robusto (y más complicado) de Hobs. He confiado en esto muchas decenas de veces para refrescar una máquina para un nuevo usuario.
bmike
7

Definitivamente, podría instalar iLife, iniciar en modo de usuario único, eliminar la cuenta de usuario a través de este enlace de superusuario (también a continuación, y hacerlo en modo de usuario único), y luego en modo de usuario único simplemente escriba rm /var/db/.AppleSetupDoneque es como un interruptor de palanca, le dice la mac para comenzar desde el arranque inicial.

#!/bin/bash

# cf. http://www.macos.utah.edu/documentation/authentication/dscl.html

if [[ "$(/usr/bin/whoami)" != "root" ]]; then printf '\nMust be run as root!\n\n'; exit 1; fi

OPATH=$PATH
export PATH=/usr/bin:/usr/sbin:/bin:/sbin

OIFS=$IFS
export IFS=$' \t\n'

declare sudo=/usr/bin/sudo

printf "\e[1mDelete user account\e[m: "
read user

if [[ -z "$user" ]]; then printf '\nNo user specified! Please, try again!\n\n'; exit 1; fi

# make sure the user exists
usertest="$(/usr/bin/dscl . -search /Users name "$user" 2>/dev/null)"

if [[ -z "$usertest" ]]; then printf "\nUser does not exist: $user\n\n"; exit 1; fi 


# get user's group memberships
groups_of_user="$(/usr/bin/id -Gn $user)"

if [[ $? -eq 0 ]] && [[ -n "$(/usr/bin/dscl . -search /Groups GroupMembership "$user")" ]]; then 
   # delete the user's group memberships
   for group in $groups_of_user; do
      $sudo /usr/bin/dscl . -delete "/Groups/$group"  GroupMembership "$user"
      #$sudo /usr/sbin/dseditgroup -o edit -d "$user" -t user "$group"           
   done
fi


# delete the user's primary group
if [[ -n "$(/usr/bin/dscl . -search /Groups name "$user")" ]]; then
   $sudo /usr/sbin/dseditgroup -o delete "$user"
fi

# if the user's primary group has not been deleted ...
if [[ -n "$(/usr/bin/dscl . -search /Groups name "$user")" ]]; then
printf "
   \e[1mWarning\e[m:
   The group memberships of the user \e[1m$user\e[m have been deleted\x21
   groups_of_user: $groups_of_user
   The user's primary group \e[1m$user\e[m, however, has not been deleted\x21
   Please, try again\x21
   Exiting ...\n
"
  exit 1
fi


# find the GeneratedUID of the user and remove the password hash file 
# from /private/var/db/shadow/hash/<GeneratedUID>
# sudo ls -a /private/var/db/shadow/hash
# sudo ls -l /private/var/db/shadow/hash/<GeneratedUID>

guid="$(/usr/bin/dscl . -read "/Users/$user" GeneratedUID | /usr/bin/awk '{print $NF;}')"

if [[ -f "/private/var/db/shadow/hash/$guid" ]]; then
   $sudo /bin/rm -f /private/var/db/shadow/hash/$guid
fi


# delete the user
$sudo /usr/bin/dscl . -delete "/Users/$user"

# make a backup
if [[ -d "/Users/$user" ]]; then
   $sudo /usr/bin/ditto -rsrc -c -k "/Users/$user" "/Users/${user}-archive-$(/bin/date).zip"
fi

# remove the user's home directory
if [[ -d "/Users/$user" ]]; then
   $sudo /bin/rm -rf "/Users/$user"
fi

export IFS=$OIFS
export PATH=$OPATH

exit 0
ConstantineK
fuente
Gracias por la información. Voy a probar la otra opción sugerida, pero intentaré si falla.
Darren Greaves
¡Buena suerte! Háganos saber cómo va.
ConstantineK
Cuando se inicia en modo de usuario único en Snow Leopard, este script no funciona para mí, dice que el usuario no existe.
Ivan X
Entonces, por alguna razón, la raíz no existe cuando se ejecuta / usr / bin / dscl. -search / Nombre de usuario "$ user" (donde $ user es root). Eso es bastante raro.
ConstantineK
2

Instale Tiger como de costumbre, luego inicie los discos de instalación de Snow Leopard y realice una instalación de actualización sin iniciar la unidad interna y crear una cuenta de usuario.

Cajunluke
fuente
Esto suena un poco más simple que la opción de limpieza sugerida, así que lo probaré, gracias.
Darren Greaves
También es bastante fácil eliminar un usuario de prueba. Daré una respuesta para cubrir que es mucho más simple que el script anterior que es un poco más completo, pero que la comprobación adicional y dejar una copia de seguridad de una carpeta de inicio "vacía" no está garantizada en la situación que usted describe.
bmike