2017年7月7日星期五

在 VirtualBox 上運行 Mac OS X

用 Mac OS X 當然需要擁有一部 iMac 或 Macbook (俗稱 Mac 機) ,但很多人又不願意付錢購買 Mac 機
由於現在的 Mac 機使用 Intel 架構,因此有人將其破解並製作成 OSx86 或 Hackintosh
但要使用 Hackintosh 並不容易,必須使用 Intel CPU 但並非所有 Intel CPU 都支援
而且還有很多不同的圖像、音效、網路等驅動程式……

本文章只作測試用途,閣下測試前請考慮相關法律及使用條款,若因使用本文章的內容而導致法律問題,在下並不負責
同樣地已經有人製作了 Mac OS X 的 VMDK 檔案,但 VMDK 檔案在下不會在此提供,請閣下自己尋找

VMDK 是一種虛擬硬碟格式,能於 VMWareVirtualBox 等虛擬機軟件運作
VirtualBox 是一種自由、開源、免費、跨平台軟件,可以在不同作業系統運行,因此建議使用 VirtualBox 測試

見下文
VirtualBox 建立 Mac OS X 的虛擬機
VirtualBox 能自動辨識虛擬機的名稱並盡量匹配對應的虛擬機架構
在下從網上找到的 Mac OS X VMDKSierra 屬於 El Capitan 後繼版本
因此選擇架構時若自動選擇不正確,請手動選擇 Mac OS X 10.11 El Capitan (64-bit) 的架構

見下文
建議最少使用 4GB (4096MB) 記憶體讓虛擬機使用

見下文
見下文
見下文
若已下載 VMDK 可以在選擇 使用現虛擬硬碟檔案,並選擇該 VMDK 檔案

見下文
見下文
若未下載 VMDK 則可以暫時選擇 不使用虛擬硬碟

見下文
已建立虛擬機
先到設定值修改資料

見下文
系統 > 處理由 分頁
處理器數量 建議最少使用 2 CPU

見下文
顯示 > 畫面分頁
視訊記憶體 建議使用 128MB

見下文
網路 分頁
附加到 選擇 橋接介面卡

見下文
見下文
見下文
若先前未載入 Mac OS X 的虛擬硬碟
可以到 存放裝置 分頁,在 SATA 中按 加入硬碟

先前的 VirtualBox 操作還可以使用指令完成,可以更快速及方便設定資料
可以在 Terminal 輸入
vmname="mac-vm"
vmpath="/path/to/vmpath"
vboxmanage createvm --name "${vmname}" --ostype "MacOS1011_64" --register # 建立 VM 類型為 Mac OS X 10.11 64-bit 並註冊到 VirtualBox
vboxmanage modifyvm "${vmname}" --memory 4096 # 設定記憶體為 4096MB
vboxmanage modifyvm "${vmname}" --boot1 dvd # 設定第一啟動裝置為 DVD
vboxmanage modifyvm "${vmname}" --boot2 disk # 設定第二啟動裝置為 Harddisk
vboxmanage modifyvm "${vmname}" --boot3 none # 設定不使用第三啟動裝置
vboxmanage modifyvm "${vmname}" --boot4 none # 設定不使用第四啟動裝置
vboxmanage modifyvm "${vmname}" --chipset ich9 # 設定晶片組為 ICH9
vboxmanage modifyvm "${vmname}" --mouse usbtablet # 設定使用 USB Tablet 的 Mouse
vboxmanage modifyvm "${vmname}" --keyboard usb # 設定使用 USB 的 Keyboard
vboxmanage modifyvm "${vmname}" --ioapic on # 設定啟動 I/O APIC
vboxmanage modifyvm "${vmname}" --firmware efi # 設定韌體為 EFI
vboxmanage modifyvm "${vmname}" --rtcuseutc on # 設定啟動 UTC 硬體時鐘
vboxmanage modifyvm "${vmname}" --cpus 2 # 設定 CPU 數量為 2
vboxmanage modifyvm "${vmname}" --vram 128 # 設定視訊記憶體為 128MB
vboxmanage modifyvm "${vmname}" --nic1 bridged # 設定第一網絡卡為 橋接介面卡
vboxmanage modifyvm "${vmname}" --bridgeadapter1 wlp8s0 # 設定第一橋接介面卡為 wlp8s0
vboxmanage modifyvm "${vmname}" --nic2 none # 設定不使用第二網絡卡
vboxmanage modifyvm "${vmname}" --nic3 none # 設定不使用第三網絡卡
vboxmanage modifyvm "${vmname}" --nic4 none # 設定不使用第四網絡卡
vboxmanage modifyvm "${vmname}" --usb on # 設定啟動第四啟動裝置為
vboxmanage storagectl "${vmname}" --name "SATA Controller" --add "sata" # 建立儲存控制為 SATA Controller (固定名稱)
vboxmanage storageattach "${vmname}" --storagectl "SATA Controller" --port 0 --device 0 --type "hdd" --medium "${vmpath}/${vmname}.vmdk" # 在 SATA Controlle 的第 0 連接位置的第 0 裝置建立硬碟並載入 VMDK 檔案
留意:
--medium 的路徑必須使用 絕對路徑

完成基本設定後還需要修改一些選項,在 Terminal 輸入
vmname="mac-vm"
# VirtualBox 4.x
vboxmanage modifyvm "${vmname}" --cpuidset 00000001 000306a9 04100800 7fbae3ff bfebfbff
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3" 
# VirtualBox 5.x
vboxmanage modifyvm "${vmname}" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3" 
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
vboxmanage setextradata "${vmname}" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
vboxmanage setextradata "${vmname}" "VBoxInternal2/EfiGraphicsResolution" 800x60
# vboxmanage setextradata "${vmname}" "VBoxInternal2/EfiGraphicsResolution" 1024x768
# vboxmanage setextradata "${vmname}" "VBoxInternal2/EfiGraphicsResolution" 1280x1024
# vboxmanage setextradata "${vmname}" "VBoxInternal2/EfiGraphicsResolution" 1440x900
# vboxmanage setextradata "${vmname}" "VBoxInternal2/EfiGraphicsResolution" 1920x1200

變數 vmc 為 Mac OS X 的虛擬機名稱,而 Windows 還要先到 VirtualBox 的路徑位置才能生效
經測試當中的設定值都需要符合相應大小寫
由於 VirtualBox 沒有 Mac OS X 的 Guest Additional Driver 因此不能設定 Mac OS X 畫面的解像度
若不設定解像度,預設為 1024x768 但進入 Mac OS X 後便不能再設定,而解像度只能使用以上固定的設定值
將合適的解像度的指令取消備註,Linux 為刪除 #號,Windows 為刪除 rem 指令
在下建議使用 800x600 解像度下試用,避免 Host 熒幕不足而需要捲動畫面,造成操作上的麻煩

完成指令後正式啟動 Mac OS X

見下文
第一步已經是啟動 Mac OS X 的關鍵
若剛才的設定錯誤會起動失敗,或直接出現 VirtualBox 錯誤訊息
若畫面顯示 DSMOS has arrived 即表示能啟動 Mac OS X

見下文
載入 Mac OS X 後選擇註冊地方

見下文
設定鍵盤

見下文
查詢過去有否使用並復原舊狀態
若果是第一次使用 Mac OS X 基本上都是選擇 Don't transfer any information now

見下文
見下文
查詢是否啟動定位服務
若沒有特殊操作暫時先不要啟動

見下文
見下文
查詢是否登入 Apple ID
若沒有特殊操作暫時先不要啟動

見下文
見下文
同意使用者條款

見下文
見下文
見下文
建立本機的使用者帳戶
若剛才設定鍵盤時使用中文輸入法,需要將輸入方法改回英文,避免建立的使用者帳戶資料有非英文字元

見下文
設定時間地區

見下文
查詢是否同意能傳送使用者回報資料

見下文
查詢是否啟用 Siri

見下文
準備並設定使用者桌面

見下文
測試鍵盤

見下文
按下左 Shift 及 Z 鍵

見下文
按下右 Shift 及 / 鍵

見下文
一般會使用 ANSI 類型鍵盤

見下文
按下桌面左上角的 Apple圖示 > System Preferences

見下文
見下文
若不習慣使用 Natural Scrolling
可以到 Mouse 後設定不選擇 Natural Scrolling

見下文
見下文
見下文
見下文
見下文
Language
Preferred Language加號 , 新增 繁體中文(香港) 的語言
確定是否使用 繁體中文(香港) 為預設語言,並重新啟動來套用設定值

見下文
重新啟動後登入帳戶

見下文
改變成 繁體中文(香港) 的介面

在 VirtualBox 中運行 Mac OS X 顯然有些慢
而且連同 Host 都一併拖慢,若硬係太勉強不建議使用

2 則留言 :

  1. 高登三聖到此一遊.
    閣下寫得不錯, 加油.
    寫下呢D, 總比亂咁叫人裝linux有用得多.

    回覆刪除
    回覆
    1. 我寫左200幾篇電腦文章
      如果只用眼前一句說話去審判對方,只能講呢個人好膚淺

      多謝你睇我 D 文章
      #adore#

      刪除