全新重新安装后如何将应用程序安装到Snow Leopard上,并使MacBook保持在首次启动前的状态?


8

我要销售我的2007 White MacBook。

根据我在网上看到的许多建议,我已经安全擦除了驱动器并重新安装,但是遇到了问题。

该机器配备了OS X 10.4 Tiger,但此后我将其升级为Leopard,然后又升级为Snow Leopard。

理想情况下,我想通过旋转的“欢迎”文本为新所有者提供新的MacBook体验,但我也想将其粘贴在最新的Snow Leopard上。问题是,当我重新安装Snow Leopard时,该计算机将没有iLife应用程序(它们在原始的Tiger安装磁盘上)。

有什么方法可以让我在其中安装iLife应用程序,而无需在计算机上设置帐户?

如果没有,那么最好的办法是什么?设置帐户是我不希望做的事情(我知道如果我购买了二手MacBook并且已经有一个帐户,我会很生气)。另一方面,安装Tiger并为其提供升级磁盘似乎也很差。

有什么建议吗?

提前致谢。

后续行动:以下
所有答案都非常有帮助,清楚地解释了并且可能同样有效。我选择了最适合我的情况的方法,但希望它们对以后阅读此问题的读者都有用。感谢所有贡献者。

Answers:


7

两件事-如果您不了解UNIX shell语法的基础(在正确的位置留有空格,类似/的标点符号)则不要执行第2步,除非您可以负担得起重新安装所有内容的权限-该rm命令无法原谅-使用删除错误的文件或目录,rm -rfmac机将无法启动。使用srm命令代替可以更安全,rm它将慢慢切碎文件-我用srm -sz -rf而不是rm -rf下面切碎一次,然后清零(最终是两次通过,然后删除)-足够满足我的需要,而不是与删除之前覆盖默认35遍一样慢

  1. 确保确保购买机器的人知道他们正在获取恢复磁盘。拥有一个测试帐户来运行所有更新,而不是将其交给Snow Leopard磁盘,真是太好了。

  2. 设置您的Snow Leopard Mac,以添加一个名为test的管理员帐户,而无需输入密码,并使用该测试帐户删除任何其他帐户。按住command+ s并重新输入以下内容,以重新引导进入单用户模式:

    / sbin / mount -uw /
    cd / var / db
    srm .AppleSetupDone
    cd dslocal / nodes /默认/用户
    srm test.plist
    cd /用户
    rm -rf测试
    停止

现在,您可以启动Mac来查看欢迎安装电影的播放,并在启动助手询问名称问题时退出使用command+的几步操作,q它将关闭,并且不会创建任何帐户,但会保留所有应用程序。它会记住您的wifi设置,因此,如果您担心这种情况,请在开始第2步之前删除这些设置,或者使用以太网/安全的公共wifi来运行更新。


在权衡所有选项后,我将采用这种方法。感谢您提供有关运行所有更新并以清晰方式布置命令的提示。
达伦·格里夫斯

在这里以及Hobs更健壮(更复杂)的脚本中获得了很好的反馈。我依靠这几十次来为新用户提供一台机器。
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中以单用户模式启动时,此脚本对我不起作用-它表示该用户不存在。
伊万X

然后由于某种原因,在运行/ usr / bin / dscl时不存在root。-search /用户名“ $ user”(其中$ user是根用户)。那太奇怪了。
ConstantineK

2

像平常一样安装Tiger,然后启动Snow Leopard安装光盘并进行升级安装,而无需启动内部驱动器并创建用户帐户。


这听起来比建议的清理选项简单一些,因此可以尝试一下-谢谢。
达伦·格雷夫斯

删除测试用户也很容易。我将给出一个答案,以解决这个问题,它比上面的脚本要简单得多,但脚本要彻底得多,但是在您描述的情况下,不保证进行额外的检查并保留“空”主文件夹的备份副本。
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.