【Win】双系统新体验:Hyper-V上macOS安装攻略

在虚拟化的世界里,Hyper-V是探索不同操作系统的一扇大门。尽管macOS并不是Hyper-V官方支持的来宾操作系统,但这并未阻挡技术探索者的脚步。他们通过不懈努力,开辟出了一条条通往macOS的非官方路径。这些路径或许曲折,却为那些渴望在Windows环境中体验macOS魅力的用户打开了一扇窗。根据最新的技术指南和项目信息,我们了解到:

  • CPU支持限制:目前,只有Intel "i"系列CPU得到支持,Xeon、Pentium、Celeron和AMD CPU尚未兼容。
  • macOS版本支持:从macOS 10.8 Mountain Lion到最新的macOS 14 Sonoma,多数版本均可在Hyper-V上安装和运行。

Hyper-V 推荐设置

组件:最低配置推荐配置
CPU:2个虚拟核心4个以上虚拟核心
GPU:128MB图形内存1GB以上图形内存
内存(RAM):macOS 10.15及更早版本需要4GB,11及更高版本需要8GB8GB以上
固态硬盘(SSD):30GB60GB以上
无线网络(WiFi):使用默认交换机使用默认交换机
电池(Batt):不适用不适用
USB:不适用不适用

安装指南

前提条件

  1. 安装Hyper-V
    • 确保您的Windows 10或11电脑上已经安装了Hyper-V。如果尚未安装,可以通过“控制面板”中的“程序和功能”启用Hyper-V功能。
  2. 安装Python
    • 在您的系统上安装Python,这是执行某些脚本和工具所必需的。
  3. 下载UEFI.VHDX
    • 从提供的存储库下载最新的UEFI.VHDX zip或7z文件,并将其提取到您选择的方便访问的位置。
    • 下载地址:https://github.com/balopez83/macOS_On_Hyper-V/releases/tag/2.3.0
  4. 获取OpenCore
    • 下载最新版本的OpenCore。在安装过程中,我们将使用OpenCore工具箱中的一个工具。
    • 下载地址:https://github.com/acidanthera/OpenCorePkg/releases

准备UEFI.VHDX

解压前提条件中下载得两个工具包,获得一个UEFI.VHDX文件和以及OpenCore的文件夹。使用此页面上的说明下载您要安装的操作系统版本的恢复映像。将com.apple.recovery.boot文件夹与您之前下载的UEFI.VHDX一起保存。

在这里插入图片描述

右键点击您刚刚下载的com.apple.recovery.boot文件夹,点击“复制”。然后双击UEFI.VHDX。这将挂载UEFI驱动器并打开它。

在刚刚打开的挂载的UEFI驱动器资源管理器窗口中右键点击,并点击“粘贴”。现在您应该有三个文件夹。

在这里插入图片描述

转到“此电脑”,右键点击挂载的UEFI驱动器,然后点击“弹出”。

创建Hyper-V虚拟机

启动Hyper-V并创建一个新的虚拟机(不要使用Hyper-V快速创建)。
在这里插入图片描述

为您的新虚拟机命名,如果愿意,您可以更改其存储位置。点击下一步。
在这里插入图片描述

选择第2代。这不适用于第1代。
在这里插入图片描述

增加启动内存。4GB是Catalina及更早版本的最低要求;8GB是Big Sur及更高版本的最低要求。您应该保持动态内存选项被选中。点击下一步。
在这里插入图片描述

点击“连接”下拉菜单,选择“默认交换机”。
在这里插入图片描述

为您的“虚拟硬盘”命名,并更改驱动器大小为您喜欢的尺寸。驱动器会扩展到您在这里选择的最大大小,所以在选择大小时请注意。您可以更改虚拟驱动器的位置。点击下一步。
在这里插入图片描述

选择“稍后安装操作系统”,然后点击下一步。
在这里插入图片描述

点击完成。
在这里插入图片描述

Hyper-V完成虚拟机设置后,继续进入下一步骤。

在Hyper-V中安装macOS

右键点击您的新Hyper-V,然后点击设置。按顺序更改以下设置。

调整以下内容:在安全选项下,如果启用了“启用安全启动”,请取消选中。您可以启用或禁用TPM,因为我不知道它对虚拟机有任何负面影响。
在这里插入图片描述

禁用检查点,否则您在Hyper-V使用中稍后会遇到问题。
在这里插入图片描述
在集成服务下选择所有选项。
在这里插入图片描述

调整以下内容:在SCSI控制器下选择硬盘驱动器,然后点击“添加”。在虚拟硬盘下点击“浏览”。找到并选择您之前下载并更新的UEFI.VHDX。
在这里插入图片描述

点击应用。不要关闭窗口继续调整以下内容:在固件下调整启动顺序,使UEFI.VHDX硬盘驱动器排在第一位,其他硬盘驱动器排在第二位。如果您有网络或其他选项,请将它们移到列表的末尾。
在这里插入图片描述

点击应用,然后点击确定。

双击新的虚拟机。窗口将打开,在这一点上,您应该点击“开始”。

如果一切正确完成,您应该很快就会看到OpenCore启动菜单,如果没有预先选择,请选择macOS恢复并启动它(您可能需要按空格键来显示此选项)。
在这里插入图片描述

这将需要一段时间,但最终安装程序将加载。在启动过程中,它可能看起来在早期启动时冻结,但它会继续。如果它在启动过程的后期看起来冻结,您可以点击重置按钮重新启动。它可能需要最多5分钟才能启动,所以请耐心等待。根据您尝试安装的操作系统,您可能需要重置几次才能成功启动。
在这里插入图片描述

一旦恢复加载,打开磁盘工具。
在这里插入图片描述

选择您之前创建的“Msft虚拟磁盘介质”驱动器(应该是空白的,没有分区),并将其格式化为APFS,并为分区命名(例如“MacOS”)。
在这里插入图片描述在这里插入图片描述

格式化后,退出磁盘工具。
在这里插入图片描述

启动macOS安装程序,选择您刚刚格式化的新的“macOS”分区。接受并继续点击,直到开始安装。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

这次安装将需要一些时间,并且在途中可能会有几次内核崩溃。继续让它重新启动,不要停止虚拟机。最终,安装将完成,您将看到新macOS Hyper-V的初始个性化设置屏幕,

在这里插入图片描述

通过一系列的设置后顺利进入macOS的桌面,就是没有桌面壁纸,不知道为什么,还没细细研究。最后将得到:
在这里插入图片描述恭喜您完成了在Hyper-V上安装macOS的整个过程!现在,您已经拥有了一个在Windows宿主机上运行的macOS虚拟机。虽然macOS在Hyper-V上运行可能并不完美,可能会遇到一些小问题或性能限制。但正是这些挑战,让我们的技术旅程更加充满乐趣和成就感。

参考

  • https://github.com/balopez83/macOS_On_Hyper-V
  • https://github.com/acidanthera/OpenCorePkg
  • https://dortania.github.io/OpenCore-Install-Guide/installer-guide/windows-install.html#downloading-macos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目纯前端实现导出pdf文件

1、下载插件 npm install html2canvas npm install jspdf2、创建htmlToPdf.js,地址:src/utils/htmlToPdf.js import html2Canvas from html2Canvas import JsPDF from jspdf export default { install(Vue, options) { Vue.prototype.getPdfFromH…

小阿轩yx-MySQL索引、事务

小阿轩yx-MySQL索引、事务 MySQL 索引介绍 是一个排序的列表,存储着索引的值和包含这个值的数据所在行的物理地址数据很多时,索引可以大大加快查询的速度使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址然后访…

Ubuntu挂载window的网络共享文件夹爱

1.进入win10创建一个用户smb密码也是smb 2.右键进入文件夹共享 3.进入Ubuntu安装支持cifs-utils sudo apt update sudo apt install cifs-utils 4.sudo mkdir /mnt/shared 5.挂载: sudo mount -t cifs -o usernamesm bpasswordsmb //172.16.11.37(windowsIP)/s…

Android SurfaceFlinger——动画播放准备(十五)

BootAnimation 本质上是一个线程,执行 run 之后,会先执行 readyToRun,接着执行 treadLoop 方法。 一、线程启动 1、BootAnimation 源码位置:/frameworks/base/cmds/bootanimation/BootAnimation.cpp readyToRun status_t BootAnimation::readyToRun() {// 添加默认资源…

Postman接口测试工具的原理及应用详解(二)

本系列文章简介: 在当今软件开发的世界中,接口测试作为保证软件质量的重要一环,其重要性不言而喻。随着前后端分离开发模式的普及,接口测试已成为连接前后端开发的桥梁,确保前后端之间的数据交互准确无误。在这样的背景…

【Linux】修改dmesg输出的日志级别

修改dmesg输出的级别 要修改 /proc/sys/kernel/printk 文件的内容以更改 dmesg 输出的级别,可以通过命令行进行操作。这个文件包含四个值,分别代表内核消息的不同级别。通过修改这些值,可以控制内核消息的输出级别。 /proc/sys/kernel/prin…

controller不同的后端路径对应vue前端传递数据发送请求的方式

目录 案例一: 为什么使用post发送请求,参数依旧会被拼接带url上呢?这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后,data会以请求体传递 补充:后端controller 参数上如果没写任何注解&#xff0c…

JVM专题十二:JVM 中的收集器二

上一篇JVM专题十一:JVM 中的收集器一咱们介绍了垃圾收集器的分类,已经主流的分代垃圾收集器重点看了CMS与三色标记算法,本篇咱们继续来看意G1、ZGC等。 G1收集器 G1(Garbage-First Garbage Collector)是一种服务器端的…

flask的基本使用1

【 一 】Flask介绍 python 界的web框架 -Django:大而全,使用率较高 :https://github.com/django/django -FastAPI:新项目选择使用它:https://github.com/tiangolo/fastapi -flask:公司一些小项目使用它&a…

如何提高软件APP质量的测试类型

如今,由于市场竞争非常激烈,移动应用质量至关重要。我们需要关注用户体验以及应用的性能。如果应用包含错误,应用评级就会下降,应用下载量也会下降。如果我们能使我们的应用没有错误,那么应用获得人气的机会就会增加。…

通过颜色传感器控制机械臂抓物体

目录 1 绪论 2整体设计方案 2.1 系统的介绍 2.2 抓取模块 2.2.1 机械臂的定义 2.2.2 机械臂的分类 2.2.3 机械臂的选用 2.3 颜色识别模块 2.3.1 颜色传感器识别原理 2.3.2 TCS3200简介 2.4 整体控制方案 3 颜色识别抓取系统的硬件设计 3.1 单片机选型及参数 3.2 系…

win11系统重装?正版系统Windows11安装重启!保姆级重装系统攻略!

随着科技的不断发展,Windows 11系统已经逐渐成为了众多电脑用户的新选择。然而,当当电脑出现严重故障、受到病毒攻击、软件冲突、系统升级失败、硬件更换或升级、系统性能下降或个性化需求等情况时,重装系统可能是一个有效的解决方案。本文将…

构建网络图 (JavaScript)

前序:在工作中难免有一些千奇百怪的需求,如果你遇到构建网络图,或者学习应对未来,请看这边文章,本文以代码为主。 网络图是数据可视化中实用而有效的工具,特别适用于说明复杂系统内的关系和连接。这些图表…

kaoYan-Composition

It is almost axiomatic(不证自明的、公理的) that cooperation can benefit us in many ways.First, cooperation can facilitate the communication between different people.Likewise, collaboration can offer us an opportunity to learn from eac…

mybatisplus的lambdaQuery()使用案例

一、常用 查询 // 方式一 条件是LearningLesson必须为LearningLessonServiceImpl的T LearningLesson lesson lambdaQuery().eq(LearningLesson::getUserId, userId).eq(LearningLesson::getStatus, LessonStatus.LEARNING.getValue()).orderByDesc(LearningLesson::getLates…

【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction

在 Qt 框架中,QMenu 类用于创建和管理菜单。菜单是用户界面的一部分,可以包含多个选项或动作,用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单(右键菜单)或工具栏中。 基本用法 创建菜单对象…

深入解读一下 `com.google.android.material.appbar.CollapsingToolbarLayout`

简介 在现代 Android 应用中,提供流畅且美观的用户体验是非常重要的。CollapsingToolbarLayout 是 AndroidX库中 Material Components 的一部分,它提供了一种易于实现的可折叠工具栏效果,常用于提供视觉吸引力的标题栏和动画效果。 本文将详…

已解决Writing ‘modem_a‘FAILED (remote: ‘Operation not permitted‘

今天用可视化工具FastbootEnhance线刷,没有注意到日志报错,开机后黑屏,电脑能检测到是开机状态,电源键按下有声音。 排除线刷包问题,翻看FastbootEnhance的日志,它的日志放到记事本全屏方便观看&#xff0…

项目1111

中文显示姓名列和手机号 SELECT contact_name AS 姓名, contact_phone AS 手机号 FROM 2_公司id; 使用explain测试给出的查询语句,显示走了索引查询 EXPLAIN SELECT * FROM 7_订单数量 WHERE countid LIKE e%; 统计用户订单信息,查询所有用户的下单数量…

Prometheus中添加基本身份验证功能

在Prometheus中添加基本身份验证功能,可以按照以下步骤进行: 一、生成哈希密码 首先,需要安装bcrypt工具,用于生成哈希密码。这可以通过Python的bcrypt库来完成。如果未安装,可以使用pip进行安装。 创建一个Python脚…