새로 다시 설치 한 후 Snow Leopard에 앱을 설치하고 MacBook을 최초 부팅 전 상태로 유지하는 방법은 무엇입니까?


8

2007 화이트 MacBook을 판매하고 있습니다.

온라인에서 보았던 많은 제안에 따라 드라이브를 안전하게 지우고 다시 설치했지만 문제가 발생했습니다.

이 기계에는 OS X 10.4 Tiger가 포함되어 있지만 Leopard로 업그레이드 한 다음 Snow Leopard로 업그레이드했습니다.

이상적으로는 새로운 소유자에게 회전하는 환영 텍스트를 사용하여 새로운 MacBook 환경을 제공하고 싶지만 최신 Snow Leopard에도 적용하고 싶습니다. 문제는 Snow Leopard를 새로 설치하면 컴퓨터에 iLife 응용 프로그램이 없습니다 (원래 Tiger 설치 디스크에 있음).

컴퓨터에서 계정을 설정할 필요없이 iLife 앱을 얻을 수있는 방법이 있습니까?

그렇지 않은 경우 가장 좋은 방법은 무엇입니까? 계정을 설정하는 것은 내가하지 말아야 할 일입니다 (중고 형 MacBook을 구입했는데 이미 계정이있는 경우 화가납니다). 반면 Tiger를 설치하고 업그레이드 디스크를 제공하는 것도 약간 나빠 보입니다.

제안이 있으십니까?

미리 감사드립니다.

후속 조치 :
아래의 모든 답변은 매우 유익하고 명확하게 설명되었으며 똑같이 효과적 일 수 있습니다. 나는 내 상황에 가장 적합한 것을 선택했지만 앞으로이 질문을 읽는 독자들 모두에게 도움이 되길 바랍니다. 기여한 모든 분들께 감사드립니다.

답변:


7

두 가지 - 더 - 당신은 유닉스 쉘 문법의 기초를 (문제 /와 같은 적당한 장소 문제에 공간, 문장 부호를 가짐) 다시 모든 것을 다시 설치 감당할 수 없다면 2 단계를하지 않는다 모르는 경우 rm명령을 용서하지 않습니다-로 잘못된 파일이나 디렉토리를 삭제 rm -rf하면 Mac이 부팅되지 않습니다. srm대신 명령 을 사용하여 더 안전 할 수 있으며 rm파일을 천천히 파쇄합니다. 아래 srm -sz -rf대신 대신 rm -rf한 번 파쇄 한 다음 0을 사용합니다 (두 번 통과 한 다음 삭제가됩니다-내 필요에 대해 충분히 안전합니다) 삭제 전에 기본 35 패스 덮어 쓰기만큼 느림)

  1. 머신을 구매하는 사람이 복구 디스크를 얻는 대상을 알고 있는지 확인하십시오. Snow Leopard 디스크를 배포하는 대신 모든 업데이트를 실행하기 위해 테스트 계정을 만드는 것이 정말 좋습니다.

  2. 비밀번호없이 test라는 하나의 관리자 계정을 추가하고 테스트 계정을 사용하여 다른 계정을 삭제하도록 Snow Leopard Mac을 설정하십시오. command+ 를 길게 눌러 단일 사용자 모드로 재부팅하고 s다음을 정확하게 입력하십시오.

    / sbin / mount -uw /
    cd / var / db
    srm .AppleSetupDone
    cd dslocal / 노드 / 기본 / 사용자
    srm test.plist
    CD / 사용자
    rm -rf 테스트
    정지

이제 Mac을 부팅하여 설정 시작 동영상 재생을보고 이름 질문을 시작할 때 command+ 를 사용하여 보조자 q를 종료하고 계정을 만들지 않고 모든 응용 프로그램을 유지하면서 종료합니다. Wi-Fi 설정을 기억하므로 2 단계를 시작하기 전에 해당 설정을 삭제하거나 이더넷 / 안전한 공개 Wi-Fi를 사용하여 업데이트를 실행하십시오.


모든 옵션을 검토 한 후이 방법으로갔습니다. 모든 업데이트를 실행하고 명확한 방법으로 명령을 배치하는 방법에 대한 팁을 주셔서 감사합니다.
대런 그리브

호브 스의보다 강력하고 복잡한 스크립트에 대한 훌륭한 피드백. 나는 새로운 사용자를 위해 머신을 새로 고치기 위해 수십 번에 의존했습니다.
bmike

7

iLife를 설치하고, 단일 사용자 모드로 부팅하고, 이 수퍼 유저 링크를 통해 사용자 계정 삭제 한 후 (단일 사용자 모드에서 수행) 단일 사용자 모드 rm /var/db/.AppleSetupDone에서는 토글 스위치와 같은 유형 을 입력 하면됩니다. 초기 부팅에서 시작하는 Mac.

#!/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

Snow Leopard에서 단일 사용자 모드로 부팅하면이 스크립트가 작동하지 않습니다. 사용자가 존재하지 않습니다.
Ivan X

그런 다음 어떤 이유로 / usr / bin / dscl을 실행할 때 root가 존재하지 않습니다. -search / Users 이름 "$ user"(여기서 $ user는 루트 임). 꽤 이상합니다.
ConstantineK

2

Tiger를 정상적으로 설치 한 다음 Snow Leopard 설치 디스크를 부팅하고 내장 드라이브를 부팅하거나 사용자 계정을 만들지 않고 업그레이드 설치를 수행하십시오.


이것은 제안 된 정리 옵션보다 약간 단순하게 들리므로 시도해보십시오. 감사합니다.
대런 그리브

테스트 사용자를 삭제하는 것도 매우 쉽습니다. 위의 스크립트보다 훨씬 더 간단하지만, "빈"홈 폴더의 백업 복사본을 추가로 확인하고 남겨 두는 것은 상황에 따라 보증되지 않습니다.
bmike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.