在 Mac 上通過 VirtualBox 將 Windows 10 安裝到可移動裝置中

RightCapital發表於2020-03-30

概述

作為前端開發人員,我們經常需要在不同作業系統對我們的 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」

相關文章