我可以从命令行启动到不同的 Mac OS X 分区吗?

Nic*_*ton 5 mac multi-boot macos

我需要在 3 个 Mac OS X 版本(10.4、10.5、10.6)上测试一些软件(每晚)——软件与硬件接口,因此非本地解决方案(如虚拟化)并不理想。

所以我认为测试软件的最好方法(顺便说一下是自动的)是为每个版本的操作系统设置一个分区。这样我就可以启动到特定版本来测试软件。

这需要按时完成,所以我希望我可以在 crontab 中运行这样的命令:

reboot --to "Mac OS X 10.5"
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的,还是我需要编写自己的软件来做到这一点?

Bin*_*fit 7

我不知道有任何应用程序可以做到这一点,但做了一些研究,有 2 条建议。

首先使用AppleScript选择启动盘。基本思路是使用下面的你可以选择boot分区然后reboot。

使用管理员权限执行 shell 脚本“bless -mount \”/Volumes/Name of the drive\“-setBoot” 使用管理员权限执行 shell 脚本“shutdown -r now”。

然后,您可以使用osascript从您的crontab.

或者,您可以安装rEFIt,它允许您在启动时选择操作系统,并可能使用 bash 命令修改启动文件,该命令可以更改默认操作系统以启动。我无法确认这可以完成,但这是一个选项。

以上显示为AppleScript,由于源文章引用了它,因此我将其保留为原始格式,但是正如评论中指出的那样,这两个命令可以直接在shell中运行而无需AppleScript

  • 没有理由(也有充分的理由不)使用 shell 脚本来运行 AppleScript 来运行一个 shell 脚本......当从 crontab 运行时,这尤其容易失败。相反,只需将 `bless -mount "/Volumes/Name of the drive" -setBoot && shutdown -r now` 直接放在 shell 脚本中,然后通过 crontab 运行它。 (5认同)