在 Mac 上通过 VirtualBox 将 Windows 10 安装到可移动设备中

概述

作为前端开发人员,我们经常需要在不同操作系统对我们的 web 项目进行开发和调试,这个时候,你通常会有如下三种方案可以选择:

  1. 购买多台设备安装不同的操作系统。
  2. 使用虚拟机软件运行虚拟机,在虚拟机中安装新的操作系统。
  3. 在当前机器上安装双系统或多系统。

方案 1 需要购买额外的设备,显然不划算。

方案 2 是个不错的选择,但是前提是你必须购买商业的虚拟机软件,比如 VMWare Fusion 或者 Parallel Desktop。
免费的 VirtualBox 在 macOS 上的运行速度并不能令人满意。目前 RightCapital 技术团队全员使用的是 iMac 作为开发机,
在办公室里给每个前端开发人员购买了 Parallel Desktop 作为运行 Windows 平台的虚拟机,使用体验非常好。
微软也专门针对虚拟机用户提供了 Legacy Microsoft Edge 和 Internet Explorer 11 的虚拟机镜像

如果你不想购买额外的设备和虚拟机软件,那么方案 3 是一个不错的选择,不需要支付额外的成本,直接在物理设备上运行操作系统相比虚拟机也有更好的性能表现,
本文我们就详细地介绍一下 Mac 设备(iMac 或 MacBook Pro)安装双系统的步骤。

macOS 专门提供了 Boot Camp Assistant 来支持多系统引导。但是,macOS 自带的 Boot Camp Assistant
方案无法将系统安装到可移动设备(U盘或者移动硬盘)中,标配的 Mac 设备的硬盘容量通常都不大,难以满足安装多个操作系统的要求。
所以直接通过 Boot Camp Assistant 安装不是理想的方案。

如果想要将 Windows 10 安装到可移动设备上,还有一种方案是使用 Windows 自带的 Windows to GO 功能,
但是它需要你事先有一个运行 Windows 系统的设备来制作启动盘,对于只安装了 macOS 的设备来说,需要先安装双系统然后再使用 Window to GO
将系统安装到可移动设备上,步骤过于繁琐。

这里我推荐一种使用虚拟机软件 VirtualBox,直接将 Windows 10 操作系统安装到可移动设备的方法。
这种方式的好处是大部分的安装过程都是在虚拟机中完成的,安装的过程不会独占你的宿主机器,你可以在安装的同时继续使用你的 MacOS 工作。
在安装完成之后,即可脱离虚拟机,直接通过可移动设备启动进入 Windows 系统。

准备工作

要完成整个安装过程,你需要如下的一些设备和软件:

  • 机器:一台运行 macOS 的 Mac 设备 (我使用一台运行 macOS Catalina 的 iMac 进行演示)
  • 可移动设备:最好是支持 USB 3.1 或 3.0 的自启动 U 盘或者移动硬盘。
  • VirtualBox:我这里是 VirtualBox 6.1,可以从官网进行下载并安装。
  • Windows 10 ISO:可以从微软的官方网站下载
  • Boot Camp Assistant:我们这里只是用它来下载 Mac 设备在 Windows 下的驱动程序。

下载 Windows 驱动

为了让 macOS 的各种设备可以在 Windows 下正常使用(如触摸板),我们需要用 Boot Camp Assistant
来帮我们下载对应的驱动程序。需要首先启动 Boot Camp Assistant

启动Boot Camp Assistant

注意启动之后不要点击界面上的 Continue 按钮,而是要选择顶部菜单栏中的 Action / Download Windows Support Software
下载驱动,因为驱动比较大,所以会耗时蛮久,你可以在这期间进行后续的步骤。

Boot Camp Assistant 菜单项

制作支持访问物理设备的 VirtualBox 磁盘镜像

因为要将系统安装到物理设备上,这里我们需要创建一种特殊的磁盘镜像,与其他的镜像不同,它可以直接访问物理设备而不是将设备映射为宿主机上的文件。

首先,我们需要 抹去 可移动设备的内容,这里需要用到系统自带的 Disk Utility ,启动 Disk Utility
并在顶部菜单栏中设定 View / Show All Devices

Disk Utility Show all Devices

选中对应的可移动设备,并选择 Erase。注意,这里需要选中你的分区的 SchemaGUID Partition Map
分区格式可以选一个 Windows 10 可以识别的分区 exFAT,不过 Windows 10 安装时系统盘会转化为 NTFS
所以这个分区格式最终还是会被替换掉。

Disk Utility Erase

这里你可以根据你的需要建立对应的分区,或者等到安装 Window 10 的时候通过 Windows 10 来创建分区,
GUID Partition Map 也就是我们常说的 GPT 分区表提供了 EFI 系统分区的支持,这个是我们在安装 Windows 10
过程中所需的。

之后,我们可以进入命令行,通过命令 diskutil list 查看你所有设备列表,从中找到你的可移动设备对应的设备文件,
例如我这里对应的是 /dev/disk2

➜  posts git:(master) ✗ diskutil list
/dev/disk0 (internal, physical):
.....
.....

/dev/disk2 (external, physical):
 #:                       TYPE NAME                    SIZE       IDENTIFIER 0:      GUID_partition_scheme                        *251.7 GB   disk2 1:                        EFI EFI                     209.7 MB   disk2s1 2:       Microsoft Basic Data                         107.4 GB   disk2s3
/dev/disk3 (disk image):
 #:                       TYPE NAME                    SIZE       IDENTIFIER 0:                            Boot Camp              +1.4 GB     disk3```

然后,在 `Disk Utility` 里将设备对应的 `Volume` 弹出,注意这里弹出的对应的 `Volume`,而不是物理设备。

![Disk Utility Eject](https://cdn.learnku.com/uploads/images/202003/30/4675/CzAojVLpU7.png!large)

之后,我们就可以用 VirtualBox 的内部命令来创建对应的磁盘镜像了。命令如下。

```bash
➜  sudo VBoxManage internalcommands createrawvmdk
 -filename "bootcamp.vmdk" -rawdisk /dev/disk2RAW host disk access VMDK file bootcamp.vmdk created successfully.

其中 /dev/disk2 需要替换为你的移动设备的设备文件名,bootcamp.vmdk 是你创建的 VirtualBox 镜像文件的文件名。

注意,上面的命令会重新 mount 你的可移动设备 Volume,在执行后续的步骤之前,你需要重新使用 Disk Utility
弹出对应的 Volume

创建虚拟机并安装系统

接下来,你需要在 VirtualBox 中创建新的虚拟机用来安装 Windows 10,为了让虚拟机可以有权限访问可移动设备,
你需要使用 root 身份来启动 VirtualBox

sudo /Applications/VirtualBox.app/Contents/MacOS/VirtualBox

启动之后,选择 New 创建新的虚拟机,选择 专家模式,在 Hard disk 区域选择
Use an exsiting virtual hard disk file,然后选择下图的图标:

VirtualBox New

接下来在弹出的对话框中点击 Add,添加你创建的 bootcamp.vmdk 文件。

VirtualBox add vm image

点击 Create 创建新的虚拟机,创建好虚拟机之后,你需要在 Settting 对话框的 Storage
页面中挂载你下载的 iso 安装镜像为 Optical Drive。并且,你需要在 Controller
中开启 Use Host I/O Cache 选项,完成之后如下图所示。

VirtualBox Mount iso

另外,你还需要在 Setting 对话框的 System 页面,选中 Enable EFI
这可以让你的虚拟机识别你的可移动设备的 EFI 分区。

VirtualBox Enabled EFI

安装 Windows

之后,你可以启动虚拟机,开始 Windows 的安装了。启动虚拟机后,你会先进入 EFI Interactive Shell
在这个界面输入 exit

EFI Interactive Shell

在后续的交互式界面中选择 Boot Manager / EFI DVD/CDROM,之后就进入了 Windows 10
的安装步骤。在安装过程中,你可以根据个人需要对你的可移动设备进行分区,但是 Windows
的主系统只能安装在 NTFS 格式的分区上,我一般会保留一个 exFAT 分区用于 macOS 和
Windows 之间的文件传输。尤其是对后续 Windows 驱动程序的安装将会大有帮助。

安装驱动程序

在安装好操作系统之后,你需要将上面步骤 Boot Camp Assistant 下载的驱动程序,安装到你新安装的
Windows 10 系统中。如果你在上面的步骤创建了 exFAT 分区,可以直接在 macOS 上挂载该分区,
把之前下载的 WindowsSupport 目录拷贝到该分区。如果没有。你也可以通过在虚拟机中启动 Windows 10,
并在其中安装 VirtualBox guest additions 来把 WindowsSupport 目录同步到 Windows 系统所在的分区。

之后,你可以退出虚拟机环境,直接使用可移动设备来启动 Windows 了,在 macOS 系统选择重新启动,
在启动的时候按住键盘上的 option 键,选择 EFI Boot 启动选项进入 Windows 10 环境。

注意,由于目前还没有安装设备的 Windows 驱动,针对有些特定的机型(我的 13 款 iMac 并没有遇到这个问题),
可能会出现无法使用鼠标或键盘等情况。如果这样类似情况,你可能需要外接的的输入设备来临时解决。

进入 Windows 10 之后,执行 WindowsSupport/BootCamp/Setup.exe 安装你的硬件驱动,
这样整个安装过程就完成了,你的 Mac 设备的所有硬件应该都可以正常使用了。

收尾工作

对于目标是在物理设备上安装双系统的我们,在安装完成之后,你使用的虚拟机就不再需要了,
你可以选择性地将安装过程中的一些辅助文件和软件删除,例如:

  • 删除 bootcamp.vmdk 文件
  • 删除 VirtualBox 创建的 Win10 虚拟机
  • 删除 VirtualBox
  • 删除 WindowsSupport 驱动目录

很高兴你完成了所有的步骤,根据本文的思路,你可以将 VirtualBox 替换为 VMWare Fusion
或者 Parallel Desktop 甚至 QEMU 等任何支持 raw disk access
的虚拟机软件来完成整个安装过程。

Happy hacking!

本作品采用《CC 协议》,转载必须注明作者和本文链接
欢迎关注我们的微信公众号「RightCapital」
RightCapital
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

Parallel Desktop真香 只要498

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!