Bagaimana cara menginstal aplikasi ke Snow Leopard setelah menginstal ulang yang baru dan masih menyimpan MacBook dalam keadaan pra-boot pertama?

8

Saya menjual MacBook Putih 2007 saya.

Sejalan dengan banyak saran yang saya lihat online, saya dengan aman menyeka drive dan melakukan instal ulang tetapi mengalami masalah.

Mesin tersebut datang dengan OS X 10.4 Tiger tapi sejak itu saya memutakhirkannya ke Leopard lalu Snow Leopard.

Idealnya saya ingin memberi pemilik baru pengalaman MacBook baru dengan teks Selamat Datang yang berputar tetapi saya juga ingin menempelkannya pada Snow Leopard terbaru. Masalahnya adalah, ketika saya melakukan instalasi baru Snow Leopard mesin tidak akan memiliki aplikasi iLife (mereka berada di disk instalasi Tiger asli).

Apakah ada cara saya bisa mendapatkan aplikasi iLife di sana tanpa perlu membuat akun di mesin?

Jika tidak, apa hal terbaik untuk dilakukan? Menyiapkan akun adalah sesuatu yang saya lebih suka tidak lakukan (saya tahu saya akan terganggu jika saya membeli MacBook bekas dan sudah memiliki akun di atasnya). Di sisi lain menginstal Tiger dan memberi mereka disk upgrade juga tampaknya agak buruk.

Ada saran?

Terima kasih sebelumnya.

Mengikuti:
Semua jawaban di bawah ini sangat informatif, jelas dan mungkin sama-sama efektif. Saya memilih salah satu yang paling sesuai dengan keadaan saya, tetapi mudah-mudahan semuanya akan berguna bagi pembaca masa depan dari pertanyaan ini. Terima kasih untuk semua yang berkontribusi.

Darren Greaves
sumber

Jawaban:

7

Dua hal - jika Anda tidak tahu dasar-dasar sintaksis unix shell (memiliki ruang di tempat yang tepat penting, tanda baca seperti / hal-hal) jangan lakukan langkah 2 kecuali Anda dapat menginstal ulang semuanya lagi - rm perintah tidak bisa dimaafkan - hapus file atau direktori yang salah rm -rf dan mac tidak mau boot. Anda bisa lebih aman dengan menggunakan srm perintah alih-alih rm dan itu perlahan akan merusak file - saya gunakan srm -sz -rf dari pada rm -rf di bawah ini rusak sekali dan kemudian nol keluar (yang akhirnya menjadi dua pass dan kemudian delete - banyak aman untuk kebutuhan saya dan tidak selambat default 35 pass ditimpa sebelum dihapus)

  1. Pastikan orang yang membeli mesin mengetahui untuk apa mereka mendapatkan disk pemulihan. Sangat bagus untuk membuat akun uji coba untuk menjalankan semua pembaruan daripada menyerahkannya disk Snow Leopard.

  2. Siapkan Mac Macan Tutul Salju Anda untuk menambahkan satu akun admin bernama tes tanpa kata sandi dan menghapus akun lain menggunakan akun tes. Reboot ke mode pengguna tunggal dengan menahan perintah + s dan ketik ini persis:

    /sbin/mount -uw /
    cd /var/db
    srm .AppleSetupDone
    cd dslocal/nodes/Default/users
    srm test.plist
    cd /Users
    rm -rf test
    halt

Anda sekarang dapat mem-boot mac untuk melihat film sambutan pengaturan diputar dan keluar dari asisten beberapa langkah dalam menggunakan perintah + q ketika mulai mengajukan pertanyaan nama dan itu akan ditutup tanpa akun dibuat tetapi semua aplikasi dipertahankan. Ini akan mengingat pengaturan wifi Anda, jadi hapuslah sebelum memulai langkah 2 atau gunakan ethernet / wifi publik yang aman untuk menjalankan pembaruan jika Anda khawatir tentang hal semacam itu.

bmike
sumber
Setelah mempertimbangkan semua opsi yang saya miliki untuk pendekatan ini. Terima kasih atas tip tentang menjalankan semua pembaruan dan memberikan perintah dengan jelas.
Darren Greaves
Umpan balik yang bagus di sini dan dengan skrip Hobs yang lebih kuat (dan lebih rumit). Saya mengandalkan ini puluhan kali untuk menyegarkan mesin bagi pengguna baru.
bmike
7

Anda pasti dapat menginstal iLife, boot ke mode pengguna tunggal, menghapus akun pengguna melalui tautan superuser ini (juga di bawah ini, dan lakukan dalam mode pengguna tunggal), dan kemudian dalam mode pengguna tunggal ketikkan saja rm /var/db/.AppleSetupDone yang seperti toggle switch, ia memberi tahu mac untuk memulai dari boot awal.

#!/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
sumber
Terima kasih atas informasinya - saya akan mencoba opsi yang disarankan lainnya tetapi akan mencoba ini jika yang satu gagal.
Darren Greaves
Semoga berhasil! Marilah kita tahu bagaimana kelanjutannya.
ConstantineK
Ketika di-boot ke mode pengguna tunggal di Snow Leopard, skrip ini tidak berfungsi untuk saya - dikatakan pengguna tidak ada
Ivan X
Kemudian untuk beberapa alasan root tidak ada saat menjalankan / usr / bin / dscl. -search / Users name "$ user" (di mana $ user root). Itu sangat aneh.
ConstantineK
2

Instal Tiger seperti biasa, lalu boot dari cakram instalasi Snow Leopard dan lakukan upgrade-instal tanpa mem-boot dari drive internal dan membuat akun pengguna.

CajunLuke
sumber
Ini terdengar sedikit lebih sederhana daripada opsi pembersihan yang disarankan sehingga akan mencobanya - terima kasih
Darren Greaves
Menghapus pengguna uji juga cukup mudah. Saya akan memberikan jawaban untuk menutupi bahwa itu jauh lebih sederhana daripada skrip di atas yang sedikit lebih teliti, tetapi pemeriksaan tambahan dan meninggalkan salinan cadangan folder rumah "kosong" tidak diperlukan dalam situasi yang Anda jelaskan.
bmike