用rEFInd在Boot Camp中启用虚拟化支持的具体步骤及详细教程

627 阅读7分钟

你通过Boot Camp在Intel Mac上安装了Windows,并想在其中使用虚拟化。但是有一个问题,硬件虚拟化扩展是不可用的。幸运的是,在rEFInd的帮助下,这个问题可以轻松解决,rEFInd是一个备用的启动管理器。

许多软件开发的工作流程都涉及到虚拟化。WSL、Docker for Windows和Android Emulator是一些基于虚拟化的常用工具的例子。然后是一般的虚拟化工具/hypervisor,如VMware Workstation、Hyper-V或VirtualBox。所有这些工具都需要硬件虚拟化扩展(英特尔VT-x,AMD-V),或者至少在没有扩展的情况下非常慢。虚拟化扩展在CPU中不是默认启用的,它们必须通过某种方式启用。在典型的PC上,这通常是一个固件级的设置(可能默认是禁用的),或者它可能是由固件无条件启用的。然而,在Mac上,启用VT-x是由macOS完成的,作为启动过程的一部分。这意味着,在Boot Camp中运行的Windows将在没有虚拟化的情况下启动,除非你想先启动到macOS,然后再重启到Windows。这种设置不太符合人体工程学(如果macOS拒绝关机怎么办,因为它对我来说经常这样)。

相反,我们将使用rEFInd,这是一个基于EFI的系统的启动管理器,可以启动到各种操作系统,也可以处理启动过程的其他部分。但首先,让我们为我们的系统做好准备。

免责声明:这些步骤可能使你的Mac无法启动。如果发生这种情况,我不承担任何责任。做好最坏的打算:做备份,也许准备好安装介质,计划一些停机时间。

第一步。按常规方法在Boot Camp中安装Windows

你应该做的第一件事是在Boot Camp助手的帮助下,在Boot Camp中安装Windows 10。助手会花一些时间给你的驱动器分区,并做其他准备工作(并显示几乎没有信息的进度条,但我已经对苹果的这一设计 "功能 "进行了咆哮)。 这方面没有特别的准备,标准过程将发挥作用。如果你已经安装了Windows,你可以进入下一步。

第2步。确保设置是稳定的

我们将对机器的启动方式进行修改,因此,最好让其他东西正常工作,并与你的预期配置相一致。请确保。

  • macOS和Windows都能正确启动

  • 你可以在按下电源键后按住选项键来改变你启动的操作系统(需要禁用固件密码1)

  • 磁盘加密(FileVault、BitLocker)已启用(当然,如果你想要的话),并已完全配置(初始加密已完成

  • Windows设置(包括Boot Camp驱动程序)已经完成

  • Boot Camp助手创建的OSXRESERVED 分区已被删除(这应该在安装Windows后第一次启动macOS时发生--有一个缓慢移动的进度条,没有其他信息,这是这个操作系统的惯例--但如果没有发生,可以使用macOS中的磁盘工具或Recovery OS来做--选择你的驱动器,点击分区并删除分区,这将增加macOS的分区)。

  • 启用系统完整性保护(这样的程序会更安全一些

第3步。为rEFInd创建一个分区

首先,在对硬盘布局进行修改之前,先备份你的数据。我们需要为rEFInd创建一个新的分区,让它住在上面。这是最安全的选择,你可以把它安装到EFI系统分区(ESP),但是macOS可能想把它自己的东西放在那里,所以不使用它比较安全。

rEFInd分区不需要很大(50MB就够了);它必须使用HFS+(Mac OS Extended)文件系统。要创建它,你有三个选择。

  • 从macOS,通过缩小macOS分区:打开磁盘工具,选择你的驱动器,选择分区,添加一个新的分区,设置其大小和文件系统(按照这个顺序!)。这将需要几分钟(10-15分钟,或可能更多),而且在调整大小期间,你将不能使用你的Mac。

  • 从恢复系统中,通过缩小macOS分区:同样的步骤,但它可能比从macOS中做更安全一些。

  • 从Windows系统,通过缩小Windows分区:打开磁盘管理(按Windows键并输入分区,或从管理工具中打开计算机管理),右击你的Windows分区,选择收缩卷。输入所需的大小,然后点击收缩。然后,右击未分配的空间,创建一个新的简单卷。现在,选择FAT32或exFAT;以后你需要从macOS内部将其重新格式化为HFS+在磁盘工具中清除)。这将需要几秒钟,即使包括重启的时间,也会更快。

在你创建新的分区并确保它是HFS+(Mac OS Extended)之后,你可以继续进行设置。另外,如果你不希望该分区在Finder中可见,请运行以下命令(为你的系统插入正确的卷路径)。

第4步。配置和安装rEFInd

要设置rEFInd,你需要启动到macOS。从作者的网站上下载rEFInd你需要名为A二进制压缩文件的文件。在你系统的任何地方解压这个档案(~/Downloads 也行)。

首先,你需要修改配置文件refind/refind.conf-sample.找到名为enable_and_lock_vmx 的设置,取消注释(去掉行首的# ),并将其值设为true 。你还可以做其他的配置修改 - 默认的timeout 为 20 秒,可能对你的需求来说太多。

当你的配置文件准备好后,你可以安装 rEFInd。你可以使用 refind-install工具,或者进行手动安装(查看安装文档了解更多细节)。

在安装之前,你需要得到你的rEFInd分区的设备名称。打开磁盘工具,从左边的窗格中选择分区,并勾选设备字段(例如,disk9s9 - 它在你的系统中会有所不同,取决于你的分区布局)。

打开终端,cd 进入提取 rEFInd 的目录,并运行以下命令(用你系统上的设备名称替换disk9s9 )。

如果你启用了SIP,这个命令会产生一个错误,但这个错误对我们来说并不重要,在没有SIP阻止的情况下,安装会正常进行。2

现在你可以关闭你的Mac,在启动时使用Option键来选择操作系统。你应该看到三个选项。Macintosh HD,EFI Boot,和Boot Camp。EFI启动选项是rEFInd 选中它,启动到Windows(微软EFI启动),等一下 Windows现在可以运行虚拟化软件了。

现在还有一些事情你可以做,这取决于你的操作系统的偏好。

  • 你可以让rEFInd成为默认的启动加载器。在苹果启动设备选择屏幕上按住Control键,点击EFI启动驱动器下的Power图标(提示来源)。

  • 你可以使用rEFInd启动到macOS,尽管根据作者的说法,这可能对Big Sur不起作用(对我来说似乎很有效,但YMMV)。你可以对macOS使用标准的启动方式(默认为Macintosh HD,或者从Power+Option选择器中选择),而对Windows使用rEFInd(并将你的超时设置为一个低值)。

  • 你可以修改rEFInd的配置--在这种情况下,配置文件是/Volumes/rEFInd/System/Library/CoreServices/refind.conf 。例如,你可以设置一个自定义的背景图片(rEFInd的网站可以帮助你弄清楚有哪些选项,你可以把它们设置为什么)。

1

如果固件密码对你很重要,你可以在设置完成后恢复它,这将意味着使用rEFInd同时启动Windows和macOS,尽管我决定删除固件密码并从Power+Option启动菜单中启动到macOS。

2

失败的操作是将rEFInd分区标记为Mac意义上的可启动分区,使用bless 命令。然而,该硬盘被认为是可启动的符合EFI标准的启动卷(它在特定的地方有*.efi 文件),这就是我们在这里使用的启动方法。撇开SIP不谈,bless 工具有点小毛病,我们可以在没有祝福分区的情况下使用rEFInd就好了。