如何在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. BIOS之于系统启动

    #BIOS之于操作系统 操作系统从开机通电到系统启动成功(执行main函数)分为3个步骤 启动BIOS,准备实模式下中断向量表和中断服务程序 从启动盘加载操作系统程序(包括boot镜像和root文件系 ...

  2. Crash的数字表格 / JZPTAB

    https://www.cnblogs.com/peng-ym/p/8666124.html #include<bits/stdc++.h> #define LL long long #d ...

  3. 收藏一个RMQ模板

    int a[1100]; int dp[maxn][20]; void rmq_init(){ for(int i=0;i<n;i++) dp[i][0]=a[i]; for(int j=1;( ...

  4. C# 父类代码动态转换子类

    百度上搜索C# 如何父类运行时转换成子类,没有得到相应答案,突然想起C# 有dynamic类型试试看结果成功了... 以后编写代码类似这样的代码 就可以删减掉了 if (en.type == EMap ...

  5. JavaScript闭包应用场合——控制前端接口轮训

    很多人都知道JavaScript的闭包,也知道大致是一个什么意思,但是对于闭包的应用场合不是很清楚 最近在改造项目的过程之中修改前端接口轮训方式的时候用到了闭包驱动setTimeout来实现一个类似定 ...

  6. Python数据挖掘-文本挖掘

    文本挖掘概要 搞什么的? 从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程. 目的是什么? 把文本信息转化为人们可利用的知识. 举例来说,下面的图表利用文本挖掘技术对库克ip ...

  7. 通过python的urllib.request库来爬取一只猫

    我们实验的网站很简单,就是一个关于猫的图片的网站:http://placekitten.com 代码如下: import urllib.request respond = urllib.request ...

  8. phpinfo中敏感信息记录

    比赛中或者渗透中如果遇到phpinfo,从里面发现的一些线索能够对后续的渗透和解题帮助很大,这里记录总结一下目前网上比较常用的的. 下图来源于:https://seaii-blog.com/index ...

  9. 来谈谈MySQL的临时表,到底是个什么东西,以及怎么样产生的

    介绍临时表之前,我们首先来看这么一句语句: CREATE TABLE `words` ( `id` ) NOT NULL AUTO_INCREMENT, `word` ) DEFAULT NULL, ...

  10. Content:"\2715",特殊字符和图标

    原文 项目中用到的一些特殊字符和图标 html代码 <div class="cross"></div> css代码 1 2 3 4 5 6 7 8 9 10 ...