Як встановити додатки до Snow Leopard після нової перевстановлення та все ж утримувати MacBook у стані перед першим завантаженням?


8

Я продаю свій білий MacBook 2007 року.

Відповідно до багатьох пропозицій, які я бачив в Інтернеті, я надійно витер дисковод і здійснив повторну інсталяцію, але виявив проблему.

Машина поставляється з OS X 10.4 Tiger, але я з тих пір модернізував її до Leopard, а потім Snow Leopard.

В ідеалі я хотів би подарувати новому власникові новий досвід MacBook із спінінг-текстом привітання, але я також хотів би наклеїти їх на останній Snow Leopard. Проблема полягає в тому, що коли я роблю нову інсталяцію Snow Leopard, машина не матиме додатків iLife (вони є на оригінальних дисках встановлення Tiger).

Чи є спосіб я запустити програми iLife там, не потребуючи налаштування облікового запису на машині?

Якщо ні, то що найкраще робити? Налаштування облікового запису - це те, що я б краще не робив (я знаю, що роздратувався б, якщо придбав б / у MacBook і в ньому вже був обліковий запис). З іншого боку, встановлення Tiger та надання їм дисків для оновлення також здається трохи поганим.

Будь-які пропозиції, будь ласка?

Заздалегідь спасибі.

Продовження:
Усі відповіді нижче були дуже інформативними, чітко поясненими та, ймовірно, однаково ефективними. Я вибрав той, який найбільше відповідає моїм обставинам, але, сподіваюся, всі вони будуть корисні майбутнім читачам цього питання. Дякуємо всім, хто зробив свій внесок.

Відповіді:


7

Дві речі - якщо ви не знаєте основ синтаксису оболонки Unix (наявність пробілу в потрібному місці має значення, пунктуація, як / питання), не роби кроку 2, якщо ви не зможете дозволити собі знову встановити все - rmкоманда видаляється невірно - видаліть неправильний файл або каталог, rm -rfі mac не завантажиться. Ви можете бути більш безпечними, використовуючи srmкоманду замість, rmі вона повільно подрібнить файли - я використовую srm -sz -rfзамість rm -rfнижче, щоб подрібнити один раз, а потім нуль (що закінчується двома пропусками, а потім видаленням - достатньо безпечно для моїх потреб, а не так само повільно, як перезапис 35 за замовчуванням перед видаленням)

  1. Переконайтеся, що людина, яка купує апарат, знає, для чого вони отримують диски для відновлення. Це дуже приємно зробити тестовий рахунок, щоб запустити всі оновлення, а не вручити їм диск Snow Leopard.

  2. Налаштуйте свій 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 або використовуйте ethernet / безпечний загальнодоступний wifi для запуску оновлень, якщо ви турбуєтесь про подібні речі.


Зваживши всі варіанти, я пішов на цей підхід. Дякуємо за пораду щодо запуску всіх оновлень та складання команд чітко.
Даррен Грівз

Чудові відгуки тут і з більш надійним (і складнішим) сценарієм Хобса. Я багато разів покладався на це, щоб освіжити машину для нового користувача.
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

Дякую за інформацію - я спробую інший запропонований варіант, але спробую це, якщо той не вдасться.
Даррен Гірвз

Удачі! Дайте нам знати, як це йде.
КонстантинК

Під час завантаження в єдиний користувальницький режим у Snow Leopard цей скрипт для мене не працює - він каже, що користувача не існує.
Іван X

Тоді корінь чомусь не існує при запуску / usr / bin / dscl. -search / Ім'я користувача "$ user" (де $ user є root). Це досить дивно.
КонстантинК

2

Встановіть Tiger як звичайне, а потім завантажте диски Snow Leopard, встановіть диски та зробіть оновлення без встановлення, не завантажуючи внутрішній диск та не створюючи облікового запису користувача.


Це звучить трохи простіше, ніж запропонований варіант очищення, тому спробую - спасибі.
Даррен Гірвз

Видалити тестового користувача досить просто. Я дам відповідь, щоб сказати, що це набагато простіше, ніж сценарій вище, який є трохи більш ретельним, але додаткова перевірка та залишення резервної копії "порожньої" домашньої папки не гарантовано в ситуації, яку ви описуєте.
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.