[转帖]如何在VirtualBox中运行macOS Catalina Beta版本
如何在VirtualBox中运行macOS Catalina Beta版本
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版本的更多相关文章
- 如何使用Mojave将APFS卷上的MacOS Catalina Beta安装到双引导
如果你想与macOS Mojave或macOS High Sierra一起运行MacOS Catalina Beta,你可以通过向Mac添加一个新的APFS卷来实现这一点,如果该Macs硬盘被格式化为 ...
- Nodejs的安装配置及如何在sublimetext2中运行js
Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...
- 如何在xampp中运行php文件 (WINDOWS)
from:http://blog.sina.com.cn/s/blog_5e87822501011os2.html 入门: 如何在xampp中运行php文件 (WINDOWS) 安装XAMPP启动ap ...
- 将 Oracle VirtualBox 中运行的虚拟机导入 VMware Fusion、Workstation 或 Player
1.从virtualbox种导出电脑为 .ova格式镜像 要导入 Oracle VirtualBox 中运行的虚拟机,必须将该虚拟机从 VirtualBox 导出到开放虚拟化格式存档(.ova 文件) ...
- 如何在Virtualbox中对Ubuntu系统根分区扩容
转载: 参见博客: https://blog.csdn.net/LEON1741/article/details/56494797 前在Virtualbox中安装了一个Ubun ...
- Zookeeper客户端cli_st为何在crontab中运行不正常?
实践中,发现直接在命令行终端运行cli_st时,能够得到预期的结果,但一将它放到crontab中,则只收到: bye 相关的一段clit_st源代码如下: if (FD_ISSET(, &rf ...
- 如何在linux中运行sql文件
1.在linux中进入sql命令行 mysql -u root -p 输入密码 2.假设home下面有a.sql文件 先得use databasename,要不会报错 “No Database S ...
- Linux系统入门教程:如何在 Linux 中修改默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- 如何在cygwin中运行crontab定时脚本[利刃篇]
用到cygwin,自然是希望能多处理一些类似linux的任务了,那就自然少不了定时任务crontab,看到网上教程不少,自己运行一个测试却也不那么容易,下面就记录我的安装过程,以供参考吧! 1.首先, ...
随机推荐
- js上传整个文件夹
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...
- const 与指针 的用法
请找出下面程序中有哪些错误: 1 2 3 4 5 6 7 8 9 10 11 12 13 int main() { int i=10; int j=1; const int *p1; ...
- Go中&和*的区别
& 返回变量的内存地址 * 返回变量的值, * 只能作用在指针上 package main import "fmt" func main() { var a = 5 var ...
- PCIe/NVMe Soft Protocol Analyzer - 惊天发现
最近在看一些协议方面的东西,刚刚接触很多东西不懂.为了尽快熟悉,打算搭建一套系统,包括上层主机和下层SSD. 既然是协议,那就需要硬啃spec.但是俺是懒人一个,想找个便捷方式快速熟悉.这就想到了协议 ...
- shell 读取文本并访问mysql/redis
#!/bin/bash File="redeemcode.csv" #File=$ database="d_redeem_info" echo "ch ...
- 计算可迭代对象的shape 老是忘~方便记法
import numpy as np bbox =[ [[6.37532410e+02,3.83636505e+02,7.04683777e+02,4.43150146e+02, 6.23311400 ...
- 在linux环境下使用icepdf或pdfbox将pdf转化成图片是乱码解决
在linux环境下使用icepdf或pdfbox将pdf转化成图片是出现乱码,网上查发下是itextpdf生成pdf引用"STSong-Light"字体而linux环境下没有这个字 ...
- LeetCode 200. 岛屿的个数(Number of Islands)
题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. 示例 1 ...
- PHP json_encode函数的参数说明
PHP json_encode函数的参数说明 一.总结 一句话总结: · json_encode常常被用于将数组转换成json格式的字符串来表示,但是json_encode的第一个参数却并不一定是数组 ...
- dubbo学习笔记(一)超时与重试
dubbo提供在provider和consumer端,都提供了超时(timeout)和重试(retries)的参数配置. 配置方式 provider端在<dubbo:service>中配置 ...