[转帖]如何在VirtualBox中运行macOS Catalina Beta版本

如何在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

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11295132.html

时间: 2024-10-29 19:11:07

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

如何在 OSX 中使用多个JDK版本

升级macbook小白的硬盘成SSD后,重新安装了系统和JDK8,但是启动eclipse还是报告需要安装JDK6,于是也按照提示安装了Apple JDK6,这导致系统中有两个JDK,一个是Oracle的JDK8,另外一个Apple的JDK6,混乱开始了. 在命令行执行java -version,提示是JDK8,好像一切正常,但执行 mvm clean install 却发现maven使用了JDK6!迷惑了,这是怎么回事呢? -------- 华丽的分割线 -------- 原来 OSX 上的Ja

如何在CocosCodeIDE中运行学习js-tests

我想对于每个Cocos2d游戏开发者来说,js-tests一直都是学习和参考的宝贵资源,也是最权威的指导教程.而,我们知道,CocosCodeIDE是官方推荐的一款强有力的IDE,其功能之强大,之便捷是其他IDE所无法比拟的.那么如何将二者组合在一起,为我们的学习提供帮助呢?本篇博客将带你走进他们的世界. 一.了解CocosCodeIDE和js-tests CocosCodeIDE:官网推出的一款强大的IDE,基于Eclipse改制而成.其主要特色在于两个方面: 便捷实用: CocosCodeI

如何在linux中运行sql文件

1.在linux中进入sql命令行 mysql -u root -p   输入密码 2.假设home下面有a.sql文件 先得use databasename,要不会报错 “No Database Selected” 然后source /home/a.sql 记得home前面要有 / 要不会报错 不能打开这个文件的. ---------------------------------------- 还有一个更好的方法: 使用navicat来连接linux下的mysql数据库 然后再navicat

如何在android中运行C语言程序

问题阐述: 本人使用mini6410开发了一个sqlite数据库的程序,在mini6410的linux系统下已经能够成功运行了.因为Android使用的也是linux内核,所以我想当然的认为按照同样的方法将程序移植到mini6410的android系统中也可以成功运行,但是当我运行程序的时候却提示我不能找到可执行文件(xlisten-arm是交叉编译出来的可执行文件): / # ./xlisten-arm/system/bin/sh: ./xlisten-arm: not found 1.探索:

模拟Spring如何在WEB中运行

Spring在web中配置和普通的Java程序中有所区别,总结一下主要表现在以下几个方面: ①jar包不同,需要引入两个web的jar包 ②需要考虑IOC容器创建的时间 非 WEB 应用在 main 方法中直接创建 在web应用中为了保证spring的运行,所以必须在程序刚在容器中启动时就必须创建IOC容器,这样的时间人为不好把握,我们可以通过Listener来监听程序的运行,保证在刚开始时就创建,具体采用的是 创建一个实现ServletContextListener接口的类,并在重写的cont

如何在spring中运行多个schedulers quartz 实例

http://wzping.iteye.com/blog/468263 1.定义一个JOB <!-- 使用pojo来做job,指定pojo和method -->     <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">         <property name="tar

如何在 Gradle 中运行 Groovy 的 主类以及测试类

完整的Gradle小项目:密码管理集中化 下面是配置范例 build.gradle: apply plugin: 'groovy' repositories { mavenLocal()     mavenCentral() } dependencies {     compile 'org.codehaus.groovy:groovy-all:2.3.7' compile 'org.apache.ant:ant:1.9.4'     testCompile 'junit:junit:4.11'

如何在cmd中运行.py文件

C:\Users\mf>cd C:\Program Files\Python36C:\Program Files\Python36>python const.py 切换到.py文件所在目录

VirtualBox中安装CentOS7过程记录

在开发过程中常常需要进行一些预研,而有些操作对操作系统可能具有破坏性且是不可恢复的,或者需要在不同的操作系统中去观察结果,虽然在某些场合下Ghost可以解决一部分问题,但是有时候很繁琐,因此在虚拟机中进行测试不失为一种不错的选择.自2011年以来,一直在学习一些有关Linux下的知识,包括Mono+XSP运行ASP.NET程序,搭建Hadoop学习环境.Nginx测试环境等.在虚拟机软件方面先后尝试过VMware.Hyper-V及VirtualBox,最终选择了VirtualBox,理由是开源免