Jak zainstalować aplikacje w systemie Snow Leopard po ponownej instalacji i nadal utrzymywać komputer MacBook w stanie przed pierwszym uruchomieniem?

8

Sprzedaję mojego białego MacBooka 2007.

Zgodnie z wieloma sugestiami, które widziałem online, bezpiecznie wyczyściłem dysk i dokonałem ponownej instalacji, ale napotkałem problem.

Maszyna została dostarczona z systemem OS X 10.4 Tiger, ale od tego czasu zaktualizowałem ją do Leoparda, a następnie Snow Leoparda.

Idealnie chciałbym dać nowemu właścicielowi nowy wygląd MacBooka z obracającym się tekstem powitalnym, ale chciałbym również przykleić go do najnowszego systemu Snow Leopard. Problem polega na tym, że kiedy wykonam świeżą instalację Snow Leopard, maszyna nie będzie miała aplikacji iLife (są one na oryginalnych dyskach instalacyjnych Tiger).

Czy jest sposób, aby uzyskać dostęp do aplikacji iLife bez konieczności zakładania konta na komputerze?

Jeśli nie, co najlepiej zrobić? Zakładanie konta jest czymś, czego wolałbym nie robić (wiem, że byłbym zirytowany, gdybym kupił używany MacBook i już miał na nim konto). Z drugiej strony instalowanie Tygrysa i zapewnianie im dysków z uaktualnieniami również wydaje się trochę kiepskie.

Wszelkie sugestie proszę?

Z góry dziękuję.

Dalsze działania:
wszystkie poniższe odpowiedzi były bardzo pouczające, jasno wyjaśnione i prawdopodobnie równie skuteczne. Wybrałem ten, który najlepiej pasuje do moich okoliczności, ale mam nadzieję, że wszystkie przydadzą się przyszłym czytelnikom tego pytania. Dziękujemy wszystkim, którzy przyczynili się.

Darren Greaves
źródło

Odpowiedzi:

7

Dwie rzeczy - jeśli nie znasz podstaw składni powłoki uniksowej (spacja w odpowiednim miejscu ma znaczenie, interpunkcja jak / ważne) nie rób kroku 2, chyba że możesz sobie pozwolić na ponowną instalację wszystkiego - rmpolecenie jest niewybaczalny - usuń zły plik lub katalog za pomocą, rm -rfa komputer Mac nie uruchomi się. Możesz być bardziej bezpieczny, używając srmpolecenia zamiast, rma to będzie powoli niszczyć pliki - używam srm -sz -rfzamiast rm -rfniżej, aby zniszczyć raz, a następnie wyzerować (co kończy się na dwóch przejściach, a następnie usunięciu - dużo bezpiecznych na moje potrzeby, a nie tak powolny jak domyślny nadpisywanie 35-przejść przed usunięciem)

  1. Upewnij się, że osoba kupująca maszynę wie, po co dostaje dyski odzyskiwania. Naprawdę miło jest założyć konto testowe, aby uruchomić wszystkie aktualizacje, zamiast wręczać im dysk Snow Leopard.

  2. Skonfiguruj system Snow Leopard Mac, aby dodać jedno konto administratora o nazwie test bez hasła i usuń inne konta za pomocą konta testowego. Uruchom ponownie w trybie pojedynczego użytkownika, przytrzymując command+ si dokładnie je wpisz:

    / sbin / mount -uw /
    cd / var / db
    srm .AppleSetupDone
    cd dslocal / nodes / Default / users
    srm test.plist
    cd / Użytkownicy
    test rm -rf
    postój

Możesz teraz uruchomić komputer Mac, aby zobaczyć, jak odtwarzany jest film powitalny konfiguracji i wyjść z asystenta o kilka kroków przy użyciu command+, qgdy zacznie zadawać pytania o nazwę i zostanie zamknięty bez utworzenia konta, ale wszystkie aplikacje zostaną zachowane. Zapamięta ustawienia Wi-Fi, więc usuń je przed rozpoczęciem kroku 2 lub użyj Ethernetu / bezpiecznego publicznego Wi-Fi, aby uruchomić aktualizacje, jeśli martwisz się o takie rzeczy.

bmike
źródło
Po rozważeniu wszystkich opcji zdecydowałem się na to podejście. Dziękujemy za wskazówkę dotyczącą uruchamiania wszystkich aktualizacji i przejrzystego rozmieszczania poleceń.
Darren Greaves
Świetne opinie tutaj i bardziej niezawodny (i bardziej skomplikowany) skrypt płyty. Poległem na tym dziesiątki razy, aby odświeżyć maszynę dla nowego użytkownika.
bmike
7

Zdecydowanie możesz zainstalować iLife, uruchomić komputer w trybie pojedynczego użytkownika, usunąć konto użytkownika za pomocą tego linku superużytkownika (również poniżej i zrobić to w trybie pojedynczego użytkownika), a następnie w trybie pojedynczego użytkownika po prostu wpisz, rm /var/db/.AppleSetupDonektóry jest jak przełącznik, informuje Mac, aby rozpocząć od pierwszego uruchomienia.

#!/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
źródło
Dzięki za informację - wypróbuję inną sugerowaną opcję, ale wypróbuję ją, jeśli ta się nie powiedzie.
Darren Greaves
Powodzenia! Poinformuj nas jak to idzie.
ConstantineK
Po uruchomieniu w trybie pojedynczego użytkownika w systemie Snow Leopard ten skrypt nie działa dla mnie - mówi, że użytkownik nie istnieje.
Ivan X
Z jakiegoś powodu root nie istnieje podczas uruchamiania / usr / bin / dscl. -search / Nazwa użytkownika „$ user” (gdzie $ user to root). To dość dziwne.
ConstantineK
2

Zainstaluj Tiger jak zwykle, a następnie uruchom dyski instalacyjne Snow Leopard i wykonaj aktualizację-instalację bez uruchamiania wewnętrznego dysku i tworzenia konta użytkownika.

Cajunluke
źródło
Brzmi to nieco prościej niż sugerowana opcja czyszczenia, więc spróbujesz - dzięki.
Darren Greaves
Usunięcie użytkownika testowego jest również dość łatwe. Podam odpowiedź na pytanie, że jest to o wiele prostsze niż powyższy skrypt, który jest nieco dokładniejszy, ale dodatkowe sprawdzenie i pozostawienie kopii zapasowej „pustego” folderu domowego nie jest uzasadnione w opisanej sytuacji.
bmike