如何在 Mac 主机上的 VirtualBox 下安装 macOS VM Guest?

如何在 Mac 主机上的 VirtualBox 下安装 macOS VM Guest?

如何在 Mac 硬件上将 macOS Mojave、macOS High Sierra 和 macOS Yosemite 安装为 VirtualBox VM 客户机?

答案1

这是我安装的配置:

2015 年末 Retina iMac(可能任何足够新的 Mac 都可以使用)
-----VirtualBox 5.2.19(没有可预见的原因导致 VirtualBox 的未来版本无法运行)
---------macOS High Sierra 10.13.6(可能适用于多个 macOS 发行版本)

  1. 首先从应用商店下载 High Sierra 安装程序。(应用商店应用程序将其放入/Applications并启动。可以退出自动运行安装程序,以便将其转换为 ISO)

  2. 您可以使用本答案末尾的脚本将安装程序 DMG 转换为 ISO。其他一些方法也有效。您可能需要或想要调整文件名或 OS/安装程序应用程序的名称,具体取决于您要安装的操作系统等...

  3. 创建 ISO 后,使用以下配置设置创建虚拟机:


OS Type: macOS 10.13 High Sierra (64-bit)
Base Memory: 4096 GB RAM
Disk Size: 32 GB disk size
Video RAM: 128 MB
2 CPUs
disable floppy
disable serial port
disable audio

从命令行为虚拟机创建以下 VirtualBox 额外数据值。

笔记:这些对于我启动和运行安装程序来说似乎至关重要。

我发现,我在网上找到的大多数或所有 Mac 安装说明中都省略了这些额外的数据设置。我从 Windows VirtualBox 安装说明中借用了这些值,并修改了系统产品以匹配我的 iMac(iMac17,1)。如果没有这些额外的数据设置,安装程序会在启动中途失败,无限循环,并出现一些与尝试重新启动 MACH 有关的错误。

    VBoxManage setextradata  {vm name or ID} "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac17,1"
    VBoxManage setextradata  {vm name or ID} "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
    VBoxManage setextradata  {vm name or ID} "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
    VBoxManage setextradata  {vm name or ID} "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
    VBoxManage setextradata  {vm name or ID} "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
  1. 将 VM 指向您在步骤 2 中创建的 ISO,然后启动它。

当恢复分区的 GUI 出现时(其中您可以选择重新安装(也用于初始安装)),首先选择磁盘实用程序,然后查找并格式化(例如擦除)您在初始创建 VirtualBox Guest VM 时创建的虚拟磁盘。在磁盘实用程序中,硬盘将显示为左侧的磁盘。将其擦除/格式化为 Mac OS Extended Journaled。

如果您没有先明确格式化虚拟磁盘,macOS 安装程序将找不到任何可以安装 macOS 的磁盘。如果您没有格式化磁盘,安装程序不会出错,但会一直等待您选择一个磁盘,但不会列出任何磁盘,也不会提供继续安装的选项。

在安装过程中第一次重启后,我被卡在了 UEFI shell 提示符处,这对于初学者来说是难以理解和令人困惑的(即我不知道该怎么办)。

我被转储到 UEFI 启动 shell 的原因是 macOS 尚未安装在启动分区中,并且如果第一个分区无效,则启动加载程序不会自动启动到恢复分区。

要手动启动/执行恢复分区中的代码以完成安装,请执行以下操作(归功于VirtualBox 论坛以获取此信息)

  1. 在 UEFI shell 提示符下:输入出口
  2. 您将进入 EFI 文本模式 GUI。
  3. 选择靴子维护经理并点击。
  4. 选择从文件启动并点击

你应该看到一个列表,其中有两个神秘的条目(PCI 总线路径)

第一个是引导分区的 PCI 路径无效,因为您尚未在其上安装 macOS。安装 macOS 后,引导应该会找到该分区并正常引导,而不会将您转出到 UEFI shell。

第二个分区是恢复分区,您需要从该分区启动以进行 macOS 安装。

  • 单击第二个条目,您应该看到(然后单击):macOS 安装数据
  • 然后点击:锁定文件
  • 最后点击:启动文件

此时安装程序启动将继续,您应该到达可以安装 macOS 的阶段。

Bash 脚本用于将从应用商店下载的 macOS 安装程序应用程序转换为 ISO


#!/bin/bash
installer="/Applications/Install macOS High Sierra.app"    
hdiutil create -o /tmp/HighSierra.cdr -size 5500m -layout SPUD -fs HFS+J
hdiutil attach /tmp/HighSierra.cdr.dmg -noverify -mountpoint /Volumes/install_build
sudo "$installer"/Contents/Resources/createinstallmedia --volume /Volumes/install_build
mv /tmp/HighSierra.cdr.dmg ~/Downloads/InstallSystem.dmg
hdiutil detach /Volumes/Install\ macOS\ High\ Sierra
hdiutil convert ~/Downloads/InstallSystem.dmg -format UDTO -o ~/Downloads/HighSierra.iso

答案2

链接的 create-bootable-installer 脚本(https://samiyuru.com/blog/install-mac-on-vbox-on-mac) 运行良好。使用 # 使脚本文件可执行非常重要,这样sudo chmod 755 <filename>才能正常工作。您必须是管理员用户才能使用 执行脚本sudo。之后,我得到了一个令人满意的 iso,可以在以 Mojave 为主机的 iMac 上的 VirtualBox 5.2 中安装 MacOS。

相关内容