如何在VirtualBox中运行macOS Catalina Beta版本

secist2019-08-03共2179人围观系统安全
https://www.freebuf.com/articles/system/208917.html

晚上尝试一下. 

本内容是关于如何在Linux上的VirtualBox中运行macOS Catalina Beta版的简短指南。

在开始之前你需要做以下准备:

Linux x86_64(我使用的是Mint 19.1)英特尔酷睿CPU,不少于8 GB的内存和一个不错的快速固态硬盘

VirtualBox(版本为6.0.8)

macOS Catalina install ISO(vanilla)

Clover.iso

额外的USB鼠标(用于VirtualBox中的USB pass-through)

我已经为1280×1024分辨率准备了Clover,包括SIP启用或SIP禁用版本,并且整个操作过程都是关于在1280×1024中运行Catalina的(如果你想更改它,请参阅此处有关自定义Clover的文章 – >https://astr0baby.wordpress.com/2019/01/19/customizing-the-clover-iso-mojave-loader/

SIP-Enabled 1280×1024 Clover.iso 可以在这里下载到 -> https://mega.nz/#!S4MAhQoZ!nrAKce_AFhxZLm21sIjwHFpeFw6dW7Salpvs50tywYg

SIP-Disabled 1280×1024 Clover.iso 可以在这里下载到 -> https://mega.nz/#!upc21CaT!wCUnzknVODKmbwrC6NCH4engMKU7YpMyn9ezguwwx4A

Catalina-Beta iso  可以在这里下载到 -> https://gofile.io/?c=MmX49O

下载完这些文件后,让我们准备VirtualBox Catalina环境。首先,我们需要创建一个设置如下的新VM;请确保使用的VDI磁盘足够大,最好不低于50GB并按照以下说明操作。

我为我的虚拟机和单独的VLAN使用静态IP,你也可以根据自己的喜好进行更改,下面包含的网络脚本需要在VM启动之前执行,并且仅在vboxnet0接口被加载时执行!(通常是在你启动VirtualBox之后)

这里我们使用一个小技巧来修复“cannot move windows in Catalina VM”这个问题,如果你只使用本地VirtualBox鼠标,那么我们将插入一个真正的辅助USB鼠标,并将其添加到USB设备筛选器,以便VM可以直接使用它。

创建Catalina VirtualBox环境后(请确保你已按照以上截图进行设置,否则它将无法工作)我们将以下的Shell脚本应用于VirtualBox Catalina Guest(将其另存为catalina.sh,chmod +x 并执行它)。

#!/bin/bash
readonly VM_RES="1280x1024"
readonly NAME="Catalina"

VBoxManage modifyvm "$NAME" --usbxhci on --firmware efi --chipset ich9 --mouse usbtablet --keyboard usb
VBoxManage setextradata "$NAME" "CustomVideoMode1" "${VM_RES}x32"
VBoxManage setextradata "$NAME" VBoxInternal2/EfiGraphicsResolution "$VM_RES"
VBoxManage modifyvm "$NAME" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "$NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "$NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "$NAME" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "$NAME" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "$NAME" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

NETWORK:

这是我使用的网络脚本(你可以根据你的需要进行调整)你将需要uml-utilities和bridge-utils(在Debian/Ubuntu上运行 sudo apt-get install uml-utilities bridge-utils)

#Setup tap and bridge
tunctl -t tap0 -u user
ifconfig tap0 up
brctl addbr br0
brctl setfd br0 0
ifconfig enp0s25 10.0.2.1 up
ifconfig br0 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 up
brctl addif br0 tap0 vboxnet0
ifconfig tap0 0.0.0.0
sysctl net.ipv4.ip_forward=1
iptables --table nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE

接下来,我们将通过VirtualBox正常启动Catalina.iso,并进入第一阶段macO installer,擦除磁盘创建APFS分区并安装。这与之前的Mojave安装完全相同(你可以在此处查看详细信息)

这一阶段大约需要5-10分钟的时间才能完成,系统将自动重启,等待它完成循环,当它再次回到同一安装程序时,只需关闭VM并将ISO从Catalina.iso替换为我们之前下载的Clover.iso。这步是必需的,因为新的驱动器用的是APFS分区,而当前的VirtualBox UEFI看不到它,所以每次在VirtualBox中运行Catalina时都必须使用它作为引导加载程序。

接下来,我们再次启动Catalina并选择安装程序分区(Installer partition)(移动方向键 – 鼠标在这里不起作用)并确认。

这个阶段将花费更长的时间(在一个好的固态硬盘上大约需要30分钟)。一旦完成,系统将自动重启(如果它被卡住,只需硬重置并再次重启即可)

我们再次从VirtualBox启动Catalina(如果你在屏幕上看到错误提示,关闭VM并重启即可,偶尔会发生这种情况)并等待最终用户设置等。

使用以下设置进行网络连接(你也可以根据实际情况进行相应的更改)

IP 10.0.2.12   NetMask  255.255.255.0  GW: 10.0.2.2  DNS 8.8.8.8

现在,你会发现在Catalina guest中有两个鼠标可用,使用我们在VirtualBox USB Pass-through中选择的USB鼠标

P.S 在缩放模式下,Clover菜单由于某种原因无法正常工作,并且无法移动方向键来选择启动,因此在启动Catalina时不要使用缩放模式,你可以在启动后立即将其更改为缩放模式)

如要对系统进行更新升级,你只需在下次macOS获得系统更新时,选择Clover中的安装程序分区即可,这个过程同样需要花费一些时间才能完成。截至目前,可以看到已经发布了第3个Beta版 https://developer.apple.com/news/releases/?id=07022019e

*参考来源:astr0baby,FB小编secist编译,转载请注明来自FreeBuf.COM

[转帖]如何在VirtualBox中运行macOS Catalina Beta版本的更多相关文章

  1. 如何使用Mojave将APFS卷上的MacOS Catalina Beta安装到双引导

    如果你想与macOS Mojave或macOS High Sierra一起运行MacOS Catalina Beta,你可以通过向Mac添加一个新的APFS卷来实现这一点,如果该Macs硬盘被格式化为 ...

  2. Nodejs的安装配置及如何在sublimetext2中运行js

    Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...

  3. 如何在xampp中运行php文件 (WINDOWS)

    from:http://blog.sina.com.cn/s/blog_5e87822501011os2.html 入门: 如何在xampp中运行php文件 (WINDOWS) 安装XAMPP启动ap ...

  4. 将 Oracle VirtualBox 中运行的虚拟机导入 VMware Fusion、Workstation 或 Player

    1.从virtualbox种导出电脑为 .ova格式镜像 要导入 Oracle VirtualBox 中运行的虚拟机,必须将该虚拟机从 VirtualBox 导出到开放虚拟化格式存档(.ova 文件) ...

  5. 如何在Virtualbox中对Ubuntu系统根分区扩容

    转载:             参见博客: https://blog.csdn.net/LEON1741/article/details/56494797 前在Virtualbox中安装了一个Ubun ...

  6. Zookeeper客户端cli_st为何在crontab中运行不正常?

    实践中,发现直接在命令行终端运行cli_st时,能够得到预期的结果,但一将它放到crontab中,则只收到: bye 相关的一段clit_st源代码如下: if (FD_ISSET(, &rf ...

  7. 如何在linux中运行sql文件

    1.在linux中进入sql命令行 mysql -u root -p   输入密码 2.假设home下面有a.sql文件 先得use databasename,要不会报错 “No Database S ...

  8. Linux系统入门教程:如何在 Linux 中修改默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  9. 如何在cygwin中运行crontab定时脚本[利刃篇]

    用到cygwin,自然是希望能多处理一些类似linux的任务了,那就自然少不了定时任务crontab,看到网上教程不少,自己运行一个测试却也不那么容易,下面就记录我的安装过程,以供参考吧! 1.首先, ...

随机推荐

  1. Mysql 修改最大链接数

    链接数过小经常出现ERROR 1040: Too many connections错误 show variables like '%max_connections%';  查看当前的mysql链接值 ...

  2. ubuntu16.0.4 设置静态ip地址

    由于Ubuntu重启之后,ip很容易改变,可以用以下方式固定ip地址 1.设置ip地址 vi /etc/network/interface # The loopback network interfa ...

  3. putty ssh 证书登录及问题

    1.用PUTTYGEN.exe生成密钥,生成的时候鼠标在进度条下面的空白处移动,为什么?就理解成随机得厉害点吧. 2.保存私钥,请看下面的图片说明 3.把公钥的内容想办法放到用户目录的.ssh/aut ...

  4. MIME协议(六) -- MIME实例分析

    MIME实例分析 了解MIME协议的基本组织结构后,下面用Outlook Express撰写出一封显示效果如图4所示的电子邮件,然后分析该邮件的源文件,以便读者更加深入地了解MIME协议. 1. 启动 ...

  5. PHP开发框架CI——学习小记

    之前做后端开发的时候,因为都是很小的功能或项目,所以基本都是手写原生php.不过这样的开发效率在面对稍大一些的项目的时候是比较低的.因此花时间学习一下php相关框架CI的使用. MVC架构 在学习CI ...

  6. scarpy crawl 爬取微信小程序文章(将数据通过异步的方式保存的数据库中)

    import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider ...

  7. 使用<bind>元素创建变量

    在使用模糊查询sql时,如果使用${}进行字符拼接,无法防止sql诸如问题,如果使用concat函数则只对mysql有效果,用Oracle则需要用连接符||,这样在数据库变的时候需要修改,不利于移植. ...

  8. 【面试】ArrayList 和 HaseMap 的区别和应用场景

    ArrayLiat: ArrayList array = new ArrayList(); array.add("张三"); array.add("李四"); ...

  9. LeetCode 简化路径(探索字节跳动)

    题目描述 给定一个文档 (Unix-style) 的完全路径,请进行路径简化. 例如, path = "/home/", => "/home" path ...

  10. HearthBuddy炉石兄弟 如何调试ai

    Sepefeets's update to botmaker's Silverfish AI This AI is a Custom Class for Hearthranger and Hearth ...