最近工作忙些, 幾個月沒空更新部落格, 今天抽空記錄一下 用 VMware 安裝測試 MAC OS X 的狀況.

用 VMware 安裝及測試 MAC OS X


首先, 如果你沒有用過 VM, 先要有個心理建設: "天下沒有白吃的午餐".
怎麼說呢? 使用 VM

  1. 需要 CPU 要夠強, core 數要夠多.
  2. 需要大量的 RAM (4GB 只夠你跑原本的 Win7)
  3. 需要高速IO及大容量的硬碟 (把 VM 建在 SSD 上應該會跑很快吧?)

總歸一個字: "" (好銅臭啊). 你或許會誤以為用 VM 可以省下一整台機器的錢. 不過, 那是在你很閒, 可以等它慢慢跑的情況. 如果你是拿它來工作的, 那該花的錢還是不能省的. 至少至少把 RAM 加大吧 (多多益善, 個人在原本 NB 的 4GB 上再外加一條 8GB).

另外, 就軟體費用來說, 用 VM 也是不會比較省的. 試想除了原本機器上的 OS 授權 (Host OS), 以及虛擬機的 OS 授權 (Guest OS) 之外, 另外還有 VM 軟體的費用. 即便用的是大型 VM 主機專用的 VM 軟體 (如: VMware ESXi + vSphere Client), 可以省略 Host OS 的費用, 但是光 ESXi 的授權費可就很嚇人. 除非你用的 OS 是免費版, VM 軟體也是免費版. 當然啦, 前提是有問題自己處理, 不會處理就慢慢爬文, 自己慢慢試了.

拷! 這樣一無是處的技術, 到底在紅個屁啊? 答案就是方便. 君不見 7-11 的東西比起大賣場至少貴 1~2 成, 卻還是分店到處開, 業績長紅? 因為他們賣的就是方便啊! 至於 VM 到底怎麼個方便法呢?

  • 以 Desktop 的應用來說: 大家總會有許多不同的原因需要換個 desktop, 例如:以前買的軟體沒有跟著升級; 或者開發 Web APP 的人, 需要測試一下在不同執行環境的相容性... 用了 VM, 您可以隨時把一個 VM 開機或者是關機 (不管它到底是執行什麼作業系統). 例如: 你現在的 PC 上灌的是 Win7, 想要試一下 MAC OS X, 或者是 Win10, 或者是想要回到過去執行一下 WinXP 或 Win98. 而且是想開就開, 你現在的工作也不用停下來或者必需像以前那樣得關機才能切換.
  • 以 Server 的應用來說: 您發現 Server 的 CPU 效能不足或者是記憶體不足, 那就設定改一改, 重新啟動就可以了 (當然必需是你的實體主機還有多餘未配置的 CPU 和記憶體). 而高檔次的 VM 軟體還可以讓你不必停機就平順的升級設定. 也可以利用 cluster 的技術, 在負載比較重的時段臨時增加 Server 一起提供服務... 這些工作在以前都要管理人員辛苦的安裝、設定、接線...現在都幾乎只要一下了就可以搞定
  • 另外, VM 軟體還有一個以前只有頂級 storage 才有的功能:快照. 有了這個功能, 我們只要在執行重要的系統或軟體升版/升級前為硬碟 "拍個快照", 就不用像以前要在事前花一大段時間來作系統備份, 程式備份, 還有資料備份. 更不用擔心萬一有個什麼沒備份到, 就有可能會回不去了. 升版後有問題, 只要關機並選擇從快照點開機就可以回復到原先的狀態, 真的很方便是不是啊?!

準備工作


那麼, 來看一下事前的準備工作:

  1. VMware Workstation
    • 如果經費不足, 用 VMware Player 也可以 (VMware Player 非商用部份是免費的). 我個人用的是 WS (Workstation), 這裡記錄的也是以 WS 為主. 用 Player 的人需要自己對照轉換一下.
    • Player 版本虛擬化的能力和 WS 完全一致, 但是只能同時啟動一個 VM, 其他差異主要都是在後台管理功能上. 對一般使用者來說應該是夠用的.
    • WS 的版本只要 9 以上即可, 但是建議你使用 10 版以後的版本, 較新的版本 "虛擬硬體" 的支援程度越好.
    • 個人用的是 Workstation 11 版, 後來改用 Workstation Pro 12 版.
    • VMware 的 30天試用版可以從 這裡 下載到.
    • 另一個有用的 URL: VMware 公司的 CDS 下載目錄. 這裡面各個 Desktop 用的 VMware 都有, 包括 MAC 用的 Fusion, Winodws 和 Linux 用的 Workstation, 以及簡化版的 Player. 同時新舊版本都可以下載到.
    • 附帶一提, Windows 版的 VMware 本身是 Windows 32 位元應用程式, 所以主機不必一定要 64 位元版本的 OS. 但是它同時可以模擬 32 位元及 64 位元的 Guest OS, 不會因為你的 windows 用的是 32 位元的就無法模擬 64 位元的虛擬機器, 這點和 MS 的 VirtualPC 是不一樣的. 至於使用的硬體我猜是一定要 64 位元的機器吧? (目前 486, 或 intel Pentium 應該都已經淘汰光了吧?)
    • VMware WorkStation Pro 12.5 版已經更新為 64 位元應用程式了. (2016/11/29)
  2. unlocker for VMware
    • 這個東東是網路論壇 insanelymac 上的高手 POST 出來的, 為的就是解決 VMware WS 不支援 guest OS 是 MAC OS X 的狀況. 執行 unlocker 就可以修改設定讓 VMware 支援 MAC OS X.
    • unlocker 在 insanelymac 論壇 的連結如下:
      • 給 VMware 9/10 用的在 這裡, 目前版本為 1.3.0.
      • 還有新版本給 VMware 11 和 VMware 12 Pro 用的在 這裡, 目前版本為 2.0.8.
      • 目前 unlocker 版本已更新至 2.1.1.. 不過根據 release note 看來, 一般使用 player 或者 WS 的朋友並不需要跟進. (2017/12/04)
      • 發現 unlocker 已經將原始檔案移到 github 上了 (https://github.com/paolo-projects/unlocker), 所以現在各位可以很方便就下載到最新的版本. 另外, 目前最新的版本是 3.0, 已經將新舊版本合併起來了. 改天測試 OK 再進一步分享給各位. (2018/12/04)
    • insanelymac 論壇 需要註冊才能下載檔案, 不過其他地方也有很多人分享 unlocker. 如果不想註冊 insanelymac 論壇, google 一下 "unlocker vmware" 就可以找到其他人的分享. 我下載到的是 2.0.7 目前暫時沒有甚麼問題.
  3. MAC OS X 的映像檔
    • 要安裝 MAC OS X, 它的安裝光碟映像檔理所當然是重頭戲. 有些人以為需要找到最新版本的 MAC OS 映像檔, 實際上並不需要, 你只要找到 10.6 (含) 以後的任何一個版本都可以. 如果 VM 在安裝 MAC OS X 時用的不是最新的版本的 OS, 只要在 MAC OS X 安裝完成後連上 Apple 的 App Store 就可以免費升級, 只不過需要多花一點時間下載就是了.
    • 在安裝 guest OS 時, VMware 可以直接以 "虛擬光碟" 的方式掛載 "可開機的 ISO 檔" 來進行安裝. 如果你只下載到 MAC OS X 的 DMG 檔, 那也沒關係, 參考一下後面補記中的 這個連結, 裡面有教學教你如何 DMG 轉 ISO, 及製作 MAC 的開機光碟.
    • 如果你想下次重新安裝 MAC OS X 時不要那麼麻煩的裝了舊版再升級, 可以在新版本下載完要進行升級之前 (如果已經進入升級畫面請先關閉該升級的APP) 先將 MAC OS X 的映像檔轉存成 ISO 檔 (或者是製作成可開機的 USB 隨身碟).
      附註: 正常狀況下, 新版本下載完成後會立刻進入升級畫面, 請先點選安裝視窗, 然後由螢幕上方的選單點選 '安裝 macOS xxx', 再點選 '結束安裝 macOS' 來關閉該升級 APP. (或者點選安裝視窗後, 按 ⌘R 也是可以的.)
      • 轉存成 ISO 檔: 請參考 這一篇 或者是 這一篇下面 2017/05/13 的說明更新: 可以用來安裝新機的光碟映像檔.
      • 製作成可開機的 USB 隨身碟: 請參考 Apple 繁中官網 或者是 Apple 英文官網 或者是 這一篇.
        • 執行結束時請留意一下是否有執行成功 (沒有 'copy fail' 的訊息).
        • 另外: El Capitan 和 Sierra 都需至少 16GB 的 USB 隨身碟 (其他的版本我沒有實際測試).
          之前以為 USB 只要 8GB 就夠了, 然後又沒有注意到執行完成時有錯誤訊息, 結果一直卡在用 USB 開機載入到 50% 附近就出現禁止符號 (Stop Sign), 還以為是無法用 USB 直接安裝新機. 冏rz.
        • 使用可開機的 USB 隨身碟裝機請另外參照 2017/05/13 的更新: 使用 USB 隨身碟裝機之注意事項
    • 就我所知 Apple 官方出的光碟最後一個版本是 10.6 Snow Leopard, 以後沒再出 "開機光碟" 了, OS X 10.6 Snow Leopard 以後的版本都是透過 App Store 提供下載. 使用 MAC 的用戶如果需要可開機的安裝光碟可以自行製作 (如上述).
    • 對於還不是 Apple 用戶的使用者來說, 要在 App Store 找到並下載 MAC OS X 的映像檔, 會是個大問題 (如果你是在 Windows 上用 browser 找, 包你找死了也找不到. 得用 Apple 的 "APP Store" 這支 APP 才行). 不過呢, 網際網路厲害的地方就是: 網路上什麼都有, 什麼都下載得到. 只要拜一下 google 大神, 尋找 "MAC OS X download" 就可以找到有一堆人分享, 不過大小約 6 GB 多, 需要花一點時間下載. 用 torrent 下載是個不錯的方法 (要小心挑一個可開機的 ISO 檔會比較方便).
    • 個人找到的是 10.9 Mavericks 的可開機光碟映像檔.
    • 請勿使用黑金塔/黑蘋果類的破解光碟映像檔. (那是直接把 PC 改成 MAC 用的)

安裝步驟


第一步當然是先安裝 VMware. 這一步一般不會有大問題, 唯一會出現的問題是某些 PC 或 NB 的 BIOS 預設把虛擬化的功能 (Intel VT-x) 關掉了, 需要進 BIOS 把這個選項打開.

第二步是執行 unlocker. 這一步要用 '系統管理員身分' 執行. 請注意: 任何時候 VMware 一旦升版, 必需再執行一次 unlocker, 否則你的 MAC VM 會無法開機. 所以如果你想要將 VMware 更新到最新的版本, 那就更新完 VMware 之後再執行 unlocker, 會方便些.

  • VMware Unlocker for OS X 1.3.0 是執行 install.cmd
  • unlocker 2.0.8 則是執行 win-install.cmd

這一個步驟常見的錯誤是:

  1. 沒有 '以系統管理員身分執行' win-install.cmd.
  2. VMware 已經在執行了! 請你關閉 VM 並關閉 VMware 的控制台.
  3. VMware 的背景服務程式已經啟動了, 但是 unlocker 無法順利關閉它們並修改 VMware 相關的執行檔. 遇到這種情請執行 services.msc, 手動把 'VMware' 開頭的服務關閉 (總共有 5 個服務, 應該有 4 個是啟動的).
  4. VMware Servies

    VMware 相關的服務 (Services)

  5. unlocker 執行失敗, 出現 unlocker.exe 停止運作的錯誤視窗, 有時連 gettools.exe 也會發生停止運作的錯誤視窗. 原因是 unlocker 的完整路徑中有非英文字母, 例如: 把 unlocker 的目錄放在中文名稱的子目錄裡.
  6. Unlocker.exe Error

    Unlocker.exe 停止運作

    gettools.exe Error

    gettools.exe 停止運作

  7. 出現 'microsoft.vc90.crt.manifest could not be extracted' 的錯誤訊息. 原因是暫存檔路徑中有非英文字母, 例如: 把 unlocker 的目錄直接放在 '下載' 目錄裡, 或是 '桌面' 上, 抑或是 windows 的登入帳號含有中文字. 解決方法是改以 cmd 視窗執行 win-install.cmd, 並在執行之前先修正暫存檔路徑的設定: 在 cmd 視窗輸入下列指令
    set temp=d:\temp
    set tmp=d:\temp
  8. Unlocker Error

    Unlocker 執行錯誤: microsoft.vc90.crt.manifest could not be extracted!
    8樓的訪客不好意思喔, 借你貼的錯誤訊息圖片一用

  9. 還有, 執行 win-install.cmd 時請保持網路通暢, win-install.cmd 會呼叫 gettools.exe 即時上網抓 MAC 用的工具程式 darwin.iso, 網路無法連線也會產生錯誤訊息.

建議你可以 '以系統管理者身分執行' 來打開 windows 的 cmd 視窗, 然後在 cmd 視窗中執行 win-install.cmd, 這樣你可以清楚看到到底 unlocker 有沒有執行成功. 完整成功的執行訊息如下:

VMware Unlocker 2.0.8
========================
(c) Dave Parsons 2011-15
VMware is installed at: C:\Program Files (x86)\VMware\VMware Workstation\
Stopping VMware services...
Backing up files...
C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe -> C:\Users\unlocker208\backup\x64\vmware-vmx.exe
已複製 1 個檔案
C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-debug.exe -> C:\Users\unlocker208\backup\x64\vmware-vmx-debug.exe
已複製 1 個檔案
C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-stats.exe -> C:\Users\unlocker208\backup\x64\vmware-vmx-stats.exe
已複製 1 個檔案
C:\Program Files (x86)\VMware\VMware Workstation\vmwarebase.dll -> C:\Users\unlocker208\backup\vmwarebase.dll
已複製 1 個檔案
Patching...
File: C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe
appleSMCTableV0 (smc.version = "0")
appleSMCTableV0 Address      : 0xb447e0
appleSMCTableV0 Private Key #: 0xF2/242
appleSMCTableV0 Public Key  #: 0xF0/240
appleSMCTableV0 Table        : 0xb403d0
+LKS Key:
002 0xb40418 +LKS 01 flag 0x90 0x140122380L 07
OSK0 Key Before:
241 0xb44750 OSK0 32 ch8* 0x80 0x140122400L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
241 0xb44750 OSK0 32 ch8* 0x80 0x140122380L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
242 0xb44798 OSK1 32 ch8* 0x80 0x140122400L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
242 0xb44798 OSK1 32 ch8* 0x80 0x140122380L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

appleSMCTableV1 (smc.version = "1")
appleSMCTableV1 Address      : 0xb403b0
appleSMCTableV1 Private Key #: 0x01B4/436
appleSMCTableV1 Public Key  #: 0x01B0/432
appleSMCTableV1 Table        : 0xb38910
+LKS Key:
004 0xb389e8 +LKS 01 flag 0x90 0x140122380L 01
OSK0 Key Before:
435 0xb40320 OSK0 32 ch8* 0x90 0x140122400L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
435 0xb40320 OSK0 32 ch8* 0x90 0x140122380L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
436 0xb40368 OSK1 32 ch8* 0x90 0x140122400L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
436 0xb40368 OSK1 32 ch8* 0x90 0x140122380L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

File: C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-debug.exe
appleSMCTableV0 (smc.version = "0")
appleSMCTableV0 Address      : 0xcd7ae0
appleSMCTableV0 Private Key #: 0xF2/242
appleSMCTableV0 Public Key  #: 0xF0/240
appleSMCTableV0 Table        : 0xcd36d0
+LKS Key:
002 0xcd3718 +LKS 01 flag 0x90 0x140160c90L 07
OSK0 Key Before:
241 0xcd7a50 OSK0 32 ch8* 0x80 0x140160df0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
241 0xcd7a50 OSK0 32 ch8* 0x80 0x140160c90L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
242 0xcd7a98 OSK1 32 ch8* 0x80 0x140160df0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
242 0xcd7a98 OSK1 32 ch8* 0x80 0x140160c90L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

appleSMCTableV1 (smc.version = "1")
appleSMCTableV1 Address      : 0xcd36b0
appleSMCTableV1 Private Key #: 0x01B4/436
appleSMCTableV1 Public Key  #: 0x01B0/432
appleSMCTableV1 Table        : 0xccbc10
+LKS Key:
004 0xccbce8 +LKS 01 flag 0x90 0x140160c90L 01
OSK0 Key Before:
435 0xcd3620 OSK0 32 ch8* 0x90 0x140160df0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
435 0xcd3620 OSK0 32 ch8* 0x90 0x140160c90L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
436 0xcd3668 OSK1 32 ch8* 0x90 0x140160df0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
436 0xcd3668 OSK1 32 ch8* 0x90 0x140160c90L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

File: C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-stats.exe
appleSMCTableV0 (smc.version = "0")
appleSMCTableV0 Address      : 0xb751e0
appleSMCTableV0 Private Key #: 0xF2/242
appleSMCTableV0 Public Key  #: 0xF0/240
appleSMCTableV0 Table        : 0xb70dd0
+LKS Key:
002 0xb70e18 +LKS 01 flag 0x90 0x140131340L 07
OSK0 Key Before:
241 0xb75150 OSK0 32 ch8* 0x80 0x1401313c0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
241 0xb75150 OSK0 32 ch8* 0x80 0x140131340L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
242 0xb75198 OSK1 32 ch8* 0x80 0x1401313c0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
242 0xb75198 OSK1 32 ch8* 0x80 0x140131340L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

appleSMCTableV1 (smc.version = "1")
appleSMCTableV1 Address      : 0xb70db0
appleSMCTableV1 Private Key #: 0x01B4/436
appleSMCTableV1 Public Key  #: 0x01B0/432
appleSMCTableV1 Table        : 0xb69310
+LKS Key:
004 0xb693e8 +LKS 01 flag 0x90 0x140131340L 01
OSK0 Key Before:
435 0xb70d20 OSK0 32 ch8* 0x90 0x1401313c0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK0 Key After:
435 0xb70d20 OSK0 32 ch8* 0x90 0x140131340L 6F 75 72 68 61 72 64 77 6F 72 6B 62 79 74 68 65 73 65 77 6F 72 64 73 67 75 61 72 64 65 64 70 6C
OSK1 Key Before:
436 0xb70d68 OSK1 32 ch8* 0x90 0x1401313c0L 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
OSK1 Key After:
436 0xb70d68 OSK1 32 ch8* 0x90 0x140131340L 65 61 73 65 64 6F 6E 74 73 74 65 61 6C 28 63 29 41 70 70 6C 65 43 6F 6D 70 75 74 65 72 49 6E 63

GOS Patching: C:\Program Files (x86)\VMware\VMware Workstation\vmwarebase.dll
GOS Patched flag @: 0x44e560
GOS Patched flag @: 0x44e5a0
GOS Patched flag @: 0x44e5e0
GOS Patched flag @: 0x44e620
GOS Patched flag @: 0x44e660
GOS Patched flag @: 0x44e6a0
GOS Patched flag @: 0x44e6e0
GOS Patched flag @: 0x44e720
GOS Patched flag @: 0x44e760
GOS Patched flag @: 0x44e7a0
GOS Patched flag @: 0x44e7e0
GOS Patched flag @: 0x4c5738
GOS Patched flag @: 0x4c5778
GOS Patched flag @: 0x4c57b8
GOS Patched flag @: 0x4c57f8
GOS Patched flag @: 0x4c5838
GOS Patched flag @: 0x4c5878
GOS Patched flag @: 0x4c58b8
GOS Patched flag @: 0x4c58f8
GOS Patched flag @: 0x4c5938
GOS Patched flag @: 0x4c5978
GOS Patched flag @: 0x4c59b8
GOS Patched: C:\Program Files (x86)\VMware\VMware Workstation\vmwarebase.dll
Getting VMware Tools...
Retrieving tools from: http://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.6/5234762/packages/com.vmware.fusion.tools.darwin.zip.tar
C:\Users\unlocker208\tools\darwin.iso -> C:\Program Files (x86)\VMware\VMware Workstation\darwin.iso
C:\Users\unlocker208\tools\darwin.iso.sig -> C:\Program Files (x86)\VMware\VMware Workstation\darwin.iso.sig
已複製 2 個檔案
Starting VMware services...
Finished!

準備好 VMware 之後, 再來第三步是建立一個空的 VM 準備安裝 MAC OS X. VMware 各種 guest OS 的 VM 設定步驟其實都大同小異, 用來安裝 MAC OS X 用的 VM 詳細的設定步驟請你參考這一篇: VMware Workstation 11安裝Mac OS X 10.10.x虛擬機器或者是這一篇: OSX-在Windows PC上安裝OS X 10 Yosemite, 不過有幾個需要注意的重點, 如下 (步驟編號是對照第2篇的步驟):

  • 沒有執行過 unlocker (或者是執行失敗), 在步驟5是看不到 "Apple MAC OS X" 這個選項的. 另外 unlocker 的版本太舊會沒有新版本的 MAC OS X 可選, 不過並無大礙.
  • 新版本的 VMware 步驟7. 前會多一個 Firmware 選項是 BIOS 還是 EFI. 請你選擇 EFI. (官網說是 WS 11 版開始支援, 可是我開始用 WS11 時就是沒看過這個選項啊!)
  • 步驟7. CPU 的核心數必需依你自己的配備選擇. 大於自己實際的配備, 反而會拖慢二邊的系統. 最多就是和自己的配備一樣多: 因為大部份情況下二邊的系統並不會完全把 CPU 的時間佔滿, 所以可以發揮到最大的效能. 不過, 剛在安裝 MAC OS X 時, 建議先用一半的核心數就好, 等 VM 上的 MAC OS X 裝好了之後再把 CPU 的核心數改成一致, 免得需要在 Windows 這一邊查找資料時電腦反應太慢.
  • 請注意: MAC OS X Mavericks (10.9.X) (含)以後的系統最小系統需求是 2 核 2GB RAM(2017/05/12)
  • 步驟13. 虛擬硬碟
    • 建議你使用單一硬碟檔案. (建立 VM 之前最好有用類似 Smart Defrag 之類的軟體整理過你的硬碟空間.)
    • 硬碟容量的部份可以開大一點沒關係, 尤其是如果你需要安裝像 Xcode 這種大傢伙時. (給個 120GB 吧, 大過實體硬碟實際剩餘的空間也沒關係. 等到真的不夠用時, 再把整個 VM 搬到新買的硬碟上就可以了.)
    • VMware 預設會先要一塊小的磁碟空間, 再依據該 VM 實際上的儲存空間需要慢慢長大.
    • 注意: 在安裝了 MAC OS X 的 VM 上, 如果一開始指定的硬碟容量用光了, 要再擴大硬碟容量可不像安裝了 Windows 的 VM 那麼容易 (實際上是非常的麻煩, 尤其是 / (root file system) 的空間不夠用了).
  • 步驟17. CPU 的虛擬化技術選項請記得勾選.
  • 步驟20. 顯卡的設定先不必修改. (因為一定會錯, 必需在 OS 安裝完成之後, 在 goust OS 上安裝 VMware 的工具程式並修改設定才會正確)
  • 步驟21. 視情況, 依自己的需求設定. 可以等步驟20所提到的工具程式安裝完之後再設定.
  • 步驟22. 先不要執行. (因為現在新的 PC 或者 NB 都是多核 CPU, 所以一定會錯, 請完成下面的步驟後再執行.)
    • 步驟15. 完成時, 會在 步驟6. 所指定的目錄產生這個 VM 相關的所有檔案. 步驟16~步驟21完成之後, 請先找到該目錄, 用純文字編輯器打開前述目錄中的 .vmx 檔, 並找到這一行
      smc.present = "TRUE"
      並在它的下方新增一行.
      smc.version = 0
    • 少了這一行, 在安裝 MAC OS X 時, 會出現: VMware Workstation unrecoverable error: (vcpu-0)... (vCPU-0 無法復原的錯誤) 之類的錯誤訊息.
    • 註: 你也可以不更動上面的設定, 直接在設定 MAC VM 時, 選用相容於 VMware WorkStation 10 版的虛擬硬體. 一樣可以正常運作. 如果一開始是選用 10 版以上的虛擬硬體, 事後為了其他因素想要更改, 那就請你在 .vmx 檔找到這一行
      virtualHW.version = "12"
      ("12" 是我的 VMware 版本號碼) 把版本號碼改為 "10"
  • 好了, 你的 VM 可以開機, 進行安裝 MAC OS X 了.

第四步是安裝 MAC OS X. 各個不同版本的 MAC OS X 安裝步驟都大同小異, 請自行參考上面提到的這一篇: VMware Workstation 11安裝Mac OS X 10.10.x虛擬機器第二部份, 或者是這一篇: OSX-在Windows PC上安裝OS X 10 Yosemite. 注意事項如下:

  • 分割磁區: 放 OS 的磁區可以大一點 (> 60GB), 或者不分割直接選 "清除" 把整顆虛擬硬碟 format 掉.

後續的工作


到此 MAC VM 應該可以動了, 不過剛裝好的 MAC OS X 應該螢幕解析度被鎖定在 1024x768 而且無法更改, (顯示卡用的記憶體只有 3MB 而已, 所以無法執行需要高階顯卡的程式, 同時 MAC 操作起來也可能會有點卡卡的), 還有我們也無法經由分享的方式把 windows 上的檔案傳到 MAC VM 上. 所以接下來的工作是安裝 VMware 的工具程式, 並修改 .vmx 的設定.

  • MAC OS X 升級後有可能會造成 VMware 的 Display driver 無法順利運作. 如果你擔心到時弄壞了救不回來, 可以先把 MAC OS X 升級到最新版, 再進行安裝 VMware 的工具程式. 我自己是安裝完工具程式後再將 MAC OS X 由 Mavericks 升級到 El Capitan, 一切順利並沒有遇到不相容的狀況.
  • MAC 版的 VMware 工具程式是放在 darwin.iso 中, 需要自己手動在 MAC 上掛載起來.
    • 啊! 不知道如何在 VM 上掛載光碟機嗎?
    • 在 VMware 視窗右下方的光碟機符號上 (圓形的那一個) 點一下, 再選擇 "Setting..." 就會出現 VM 的虛擬光碟機設定,點選 "Use ISO Image file:" 選項, 並選擇 darwin.iso 的檔案位置, 設好之後關閉設定視窗. 再點選一下 VMware 視窗右下方的光碟機符號, 這一次改用 "Connect", 就會在 MAC 的桌面上出現 VMware 工具程式的光碟機及安裝畫面了.
    mount-cd

    在 VM 上掛載光碟機

    darwin_iso

    在 VM 上掛載光碟機: 設定項目

  • darwin.iso 是 VMware Fusion 的一部份, 但不包含在 VMware WS 或 WMware Player 中, 它可能會隨著 unlocker 安裝到 VMware 的安裝目錄中, 一般是放在目錄 C:\Program Files (x86)\VMware\VMware Workstation 裡.
  • 如果沒找到的話也沒關係, 可以從這裡下載到目前最新的版本 (8.1.0).
  • 如果你用的是舊版本的 darwin.iso, 可能會有工具程式安裝失敗的狀況, 那會需要執行下列步驟: (詳細可以參考 這個 Youtube 影片). 不過還是建議你直接下載最新的 darwin.iso 來安裝比較快.
    1. 打開 "終端機程式" (terminal), 執行下列指令
      sudo nvram boot-args=rootless=0
    2. MAC OS X 重新開機, 安裝 VMware 工具程式.
    3. 打開 "終端機程式" (terminal), 執行下列指令
      sudo nvram -d boot-args
  • "終端機程式" (terminal): 點選在 MAC VM 螢幕右上方的 "放大鏡" (search 功能), 輸入 "terminal" 即可以找到.
  • 工具程式安裝 OK 後, 需要再把 MAC VM 關機, 修改 .vmx檔.
    1. svga.maxWidth = "1024" --> 1024 改成你的螢幕的最大解析度的寬度, 如: 1920
    2. svga.maxHeight = "768" --> 768 改成你的螢幕的最大解析度的高度, 如: 1080
    3. 這二個參數是 MAC VM 的螢幕的最大解析度, 如果設定是 1366 x 768, 那 MAC VM 的螢幕最大就只能拉大到 1366 x 768, 再大的部份都會變成黑框.
  • 再修改一下 VMware 的整體設定 (Edit -> Preference... -> Display):
    1. 把 Autofit 的兩個選項都打勾 (Autofil window, Autofil guest)
    2. 還有 Full srceen 的選項, 請點選第一個選項 Autofit guest
VMware Display Setting

調整 VMware 的顯示設定

好了, 再次啟動 MAC VM 後, 把 MAC 的執行視窗 "拉大" 就可以改變 MAC 的螢幕解析度了. (不過我的 MAC VM 在 Icon View 時, 畫面捲動太快還是會有 bug, 不知道是不是原本顯卡驅動的問題?如下圖中的黑色區域. 已經確定是顯卡或顯卡驅動的問題了, 有朋友用 Lenovo 筆電 run 是 OK 的. 哎! 我的爛 ASUS NB + NVIDIA GEFORCE GT 630M)

Display Driver Bug

ASUS NB 所附的 nVidia display Driver 有 Bug

如果你以前有用過 MAC 一定會說: 不對喔! MAC 的螢幕解析不是這樣子調的啦!
各位看倌! 沒辦法啊! VMware 官方出的 Display driver 就長這樣, 網路上高手 POST 的那個可以在 MAC 螢幕設定裡直接改螢幕解析度的那個 Display driver 在新版本的 MAC OS X 上裝不起來啊! 而原作者一直沒有改版更新...

另外, 如果你在 MAC VM 的設定中啟用了 "分享" 的功能, 把原本 Windows 裡的資料目錄或碟磁機分享給 MAC VM 使用的話, 點選 前往 --> 電腦 可以找到 "VMware Shared Folder", 分享的目錄就放在裡面.

VM Share Folder

在 MAC VM 上找到主機分享出來的檔案夾

補記


整個安裝測試期間參看了許多國內外部落格、網頁及 Youtube 的影片, 最後發現有下列這幾篇中文的比較易懂. (只怪咱媽沒從小把我丟國外去自生自滅, 中文還是親切一些)

這幾篇文章記錄的步驟較為完整詳細. 不過還是有些問題沒有說清楚或沒有記錄到, 因此自己補記了這一篇.

2016/09/30


今天花了一點時間進行版本升級.

  • VMware 順利升級至 WS 12 Pro ver. 12.5, 並重新執行 Unlocker OK.
  • 順利升級至 macOS Sierra, 並重新安裝 VMware Tools.

各位可以安心升級. 升級到 masOS Sierra 後, 整個 VM 執行起來並沒有比較快, 但是平順了許多. 不會像以前那樣 Windows 和 MAC 之間的切換操作太快就會卡很久.

另外, display 的 bug 也解了. 不過因為順便換了新版 intel 及 nvidia display driver, 所以不知到底是哪一個把問題解了? VMware 升級? mscOS Sierra 升級? 還是新版的 display driver? 或者是複選題?

2016/10/11


如果你用的是 WS Pro v12 或者是以後的版本, 還有一個小小的困擾: 就是每次打開 VM 時都會有一個訊息告訴你 "printer 無法連線, 不能使用", 平時不用 printer 倒也還好, 可是真的要用到 printer 時, 那不就糗了嗎? 還好只要改一改設定就可以了.

你可以經由在 Menu Bar "Edit" -> "Preferences..." 選單的 "Devices" 選項頁中, 把 "Enable Virtual Printers" 打勾, 來啟用 "虛擬印表機".

Enable Virtual Printers

"虛擬印表機" 啟用設定

ProgramData Path

找到正確的 ProgramData 路徑

或者請你找到這個檔案
"%programdata%\VMware\VMware Workstation\settings.ini".

內容如果有這一行
printers.enabled = "FALSE"

請你把它修正為:
printers.enabled = "TRUE"
就可以了. ("%programdata% 的真實路徑一般在 C:\ProgramData, 它是一個隱藏路徑. 確實的位置可以在 cmd 視窗中輸入 set programdata 指令後找到.)

2016/11/21


VMware 順利升級至 WS 12 Pro ver. 12.5.1 build-4542065, 並重新執行 Unlocker OK. 初步測試結果 MAC 可以順利開機. 先這樣, 有狀況再跟大家報告.

2016/11/24


煩! 又有更新. 升級至 WS 12 Pro ver. 12.5.2 build-4638234, 並重新執行 Unlocker OK. MAC 也升級至 masOS Sierra 10.12.1 了.

更新至 WS 12 Pro ver. 12.5.2 之後, Guest OS 是 Win7 VM 的音效卡驅動出現問題, VMware 的工具程式需一併升級才行.

2017/04/07


更新至 WS 12 Pro ver. 12.5.5. 並追加了一些執行 unlocker 會遇到的錯誤狀況, 還有一份完整的 unlocker 執行訊息.

2017/05/13


更新 "由 OSX 升級 APP 製作可以支援全新安裝之光碟映像檔" 之方法, 以及 "使用 USB 隨身碟裝機之注意事項".

  1. 可以用來安裝新機的光碟映像檔: 想由 Apple 官方下載的 OSX 升級 APP 製作成可開機光碟每個版本都不盡相同, 下面我列出由 Install macOS Sierra APP 轉成 ISO 檔的 shell script 內容如下:
    #!/bin/bash
    
    # Mount the Installer image
    hdiutil attach /Applications/Install\ macOS\ Sierra.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app
    
    # Create the Sierra Blank CDR image of 7316mb with a Single Partition - Apple Partition Map
    hdiutil create -o /tmp/Sierra.cdr -size 7316m -layout SPUD -fs HFS+J
    
    # Mount the Sierra Blank CDR image
    hdiutil attach /tmp/Sierra.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/install_build
    
    # Restore the Base System into the Sierra Blank CDR image
    asr restore -source /Volumes/install_app/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
    
    # Remove Packages link and replace with actual files
    rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages
    cp -rp /Volumes/install_app/Packages /Volumes/OS\ X\ Base\ System/System/Installation/
    
    # Copy Sierra installer dependencies
    cp -rp /Volumes/install_app/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System/BaseSystem.chunklist
    cp -rp /Volumes/install_app/BaseSystem.dmg /Volumes/OS\ X\ Base\ System/BaseSystem.dmg
    
    # Unmount the installer image
    hdiutil detach /Volumes/install_app
    
    # Unmount the Base System image
    hdiutil detach /Volumes/OS\ X\ Base\ System/
    
    # Rename the Sierra CDR image and move it to the desktop
    # mv /tmp/Sierra.cdr.dmg ~/Desktop/Sierra.dmg
    
    # Convert the Sierra CDR image to ISO/CD master (Optional)
    hdiutil convert /tmp/Sierra.cdr.dmg -format UDTO -o /tmp/Sierra.iso
    
    # Rename the Sierra ISO image and move it to the desktop
    mv /tmp/Sierra.iso.cdr ~/Desktop/Sierra.iso
    
    上面所列由 # 開頭的是註解說明, 沒有 # 的才是指令, 你可以開一個 terminal session 輸入上面的指令一行一行的執行; 怕 keyin 錯誤的話可以一行一行 copy/paste 複製貼上去執行也行; 或由下列的載點下載到 MAC 上去執行 (不過下載下來之後, 要再用 chmod u+x 來附加上執行權限才能執行). 執行需要花好一會兒工夫才能完成. 各個版本的載點及執行方法如後:
    • macOS High Sierra (OS X 10.13): 下載點. 製作方法: 執行下列指令:
      ./HighSierraCD.sh
    • macOS Sierra (OS X 10.12): 下載點. 製作方法: 執行下列指令:
      ./SierraCD.sh
    • El Capitan (OS X 10.11): 下載點. 製作方法: 執行下列指令:
      ./ElCapitanCD.sh
    • Yosemite (OS X 10.10): 下載點(暫不提供). 製作方法: 執行下列指令:
      ./YosemiteCD.sh /Applications/Install\ OS\ X\ Yosemite.app InstallESD.dmg
    • Mavericks (OS X 10.9): 下載點(暫不提供). 製作方法: 執行下列指令:
      ./MavericksCD.sh /Applications/Install\ OS\ X\ Mavericks.app InstallESD.dmg
  2. 使用 USB 隨身碟裝機之注意事項:
    • 使用 USB 開機, VMware 的 BIOS 並不需要特別設定. VMware 的 BIOS 在找不到可以開機的 硬碟, 光碟, 網路之後就會試著使用 USB 開機. 不過你得先讓 USB 是掛在 VM 上而不是你原本的 Windows 上.
    • VMware BIOS Boot Sequence

      VMware BIOS 預設的開機順序

      VMware mount USB Stick

      選擇 Connect 可以把 USB 隨身碟轉成掛在 VM 上

    • 用 USB 開機在載入時會比用光碟慢一些請耐心等候, 而且用 USB 是進入 '復原模式', 而不是像用光碟那樣立刻進入安裝程式. 一般會出現的錯誤是: 開機到一半時, 出現禁止符號. 會如此, 大部份是因為 USB 開機隨身碟 製作時有問題. 可能 USB 的空間不足; 或者 USB 有錯軌; 要修復錯軌, 最簡單的方法是用 windows 重新 '格式化' 一次 (必需取消 '執行快速格式化'); 或者簡單一點直接換一支新的 USB 隨身碟.
    • 先選擇 '磁碟工具程式' 將完全空白的 VMware 虛擬硬碟進行格式化.
    • 選擇 VMware 的虛擬硬碟, 然後點選上方的 '清除' 按鈕. 如果看不到你設定的 VMware 虛擬硬碟, 應該是 '磁碟工具程式' 版本不同, 系統預設把它隱藏起來了. 這時候, 你可以看一下視窗左上方是否有 '顯示方式'. 如果有, 點選的 '顯示方式', 並選擇 '顯示所有裝置', 就可以看到了.
    • 給你的硬碟取個名字, 輸入到 '名稱' 欄. '格式' 及 '架構' 則保持預設的 'Mac OS Extended (Journaled)' 和 'GUID 分割區配置表' 即可.
    • 分割及格式化完成後, 選擇上方的選單 '磁碟工具程式'-->'結束磁碟工具程式' 離開.
    • 再選擇 '安裝 macOS' 就會進入和開機光碟一樣的安裝畫面.
    • 其他選項要麻煩各位自己作功課, 在此就不多介紹了.
    • 在 VM 上, 感覺用 USB 安裝比用光碟 ISO 檔慢好多. 可能是 VMware 的 USB driver 效能沒有調校好吧?

2017/10/10


有關 macOS High Sierra (10.13)

  • macOS High Sierra 升級 OK. (用 VMware WS pro v12 即可, 不必升級到最新版 pro v14)
    註: 如果升級失敗可能是 CPU core 數不足. 可以調到 4 核再試一下, 我第一次以 CPU 2 核, 5GB RAM 結果升級失敗. 改用 CPU 4 核, 6GB RAM 再升級一次, 結果 OK. (又多花了好多時間下載 :( ...)
  • USB 開機碟的製作方法 Apple 官方網站已更新.
  • 開機光碟製作完成, '全新安裝' 測試 OK. Shell Script 的下載點已經補充到 2017/05/13 的更新中.

註一: 這一版產出的 ISO 檔大小只有 5,130MB. 執行中會問一次密碼 (因為其中有一行指令是用 sudo 執行的). 同時也會產 .dmg 檔, 可以依自己的需求保留或者刪除.

註二: 因為和建立 USB 開機碟同樣是使用 createinstallmedia 指令的關係, 這一版的安裝操作程序和用 USB 安裝的操作程序相同: 不會找到並列出空白硬碟, 讓我們在安裝過程中選擇, 必需先自行操作 '空白硬碟的格式化動作' 之後再進行安裝 macOS High Sierra.

註三: 網路上有另一個接近 9G 的版本, 實測是有問題的: CD Boot 後會要連網下載 macOS 的更新 APP, 再以下載的 APP 安裝 macOS High Sierra. 所以浪費時間和頻寬再下載一次... :(

2017/11/28 有關 macOS High Sierra (10.13.1)


由於 20 樓的 "威斯特" 反應使用 10/10 更新的 HighSierra.sh 製作出來的光碟無法裝機. 今天找空檔檢查了一下: 原因出在 10.13.1 比 10.13 的安裝檔大了一點, 然後 HighSierra.sh 開硬碟空間給 ISO 檔時抓得太剛好, 沒有多留一些空間, 所以開機 ISO 製作時出現了空間不足的錯誤. 已經修正 HighSierra.sh 多給了 170MB, 下次再改版應該還夠吧? 不想重新下載 HighSierra.sh 的人, 可以自行修改第一行, 把 5130m 改成 5300m 即可.

抱歉, 浪費了大家的時間

2018/02/21 有關 MAC VM 的硬碟重組


過年, 小空了幾天, 想到應該把有關 MAC VM 硬碟重組的問題整理一下.

注意: 如果你的 VM 是放置在 SSD 上, 或者你有真實的 MAC, 而且是 SSD 的版本, 請謹慎執行下面的指令. 因為它會加速 SSD 的老化.

下列幾點是使用 VMWare 的人應該要了解的:

  • 現下我們常用的作業系統都有這個特性: 刪除檔案時只是在 '目錄區' 把檔案標記為 '已刪除' 並沒有真的把檔案內容清掉. 一方面這是為了加快 '刪除檔案' 這個指令的執行速度; 另一方面則是為了提供 '垃圾筒' 的功能: 讓使用者可以反悔, 把誤刪的檔案救回來.
  • 甚至, 在磁碟空間還夠用的情況下, 刪除的檔案空間不會被優先用於檔案的寫入 (不論是修改或者是新增檔案). 這也是為了讓進階的工具程式還可以把已經倒掉的垃圾從 '垃圾場' 裡再找回來.
  • VMware 雖然可以不用一次就把硬碟空間全部佔用下來, 但是一但佔用了也不會輕易還回給 Host OS, 即便是目前 VMWare 的設定 UI 上有提供 '重組' (Defragment) 及 '壓實' (Compact) 的功能.
  • 要真的回收 VM 裡沒有使用的硬碟空間, 有一個先決要件是該 '磁區' 的內容必需是全部填滿 0, 不可以有任何一個不為 0 的內容.

因為上述原因, VM 用著用著也就會愈來愈肥大, 同時也愈來愈慢 (尤其是 Guest OS 更新/昇級了之後). 所以需要減肥一下.

MAC VM 的減肥步驟, 如下:

  1. 先將不用的空間清為 0. 指令如下:
    sudo diskutil secureErase freespace 0 Macintosh\ HD
    • 你必需把上面的 Macintosh\ HD 更換成你的 MAC VM 的硬碟名稱 (volumn name) (註: 其中的倒斜線+空白是因為這個例子的硬碟名稱在這個位置是個空白字元).
    • 這個指令的執行時間會有點久. 同時到快完成時會出現 '硬碟空間已滿' 之類的告警. 這時請你忽略它, 直接把這個告警關閉, 並等候指令執行結束.
    • 執行前請注意 Host OS 必需有足夠的硬碟空間讓 MAC VM 把這個 volumn 撐到最大, 同時還要留下和這個 volumn 一樣大小的空間.
  2. 再來是進行 '壓實' 動作. 這個動作需要先把 VM 關機, 然後在 Host OS 執行指令 (只能以指令操作, 沒有 UI 介面) 把標的 vmdk 檔案縮小. Windows 的指令如下:
    vmware-vdiskmanager.exe -k "d:\VM\OSX\OSX 10.13.vmdk"
    • 其中指令檔 vmware-vdiskmanager.exe 可以在 VMWare 的安裝目錄下找到. (註: 要像上面這樣直接輸入指令, 你需要切換到 VMWare 的安裝目錄, 或者是把 VMWare 的安裝路徑加到你的環境變數 path 裡.)
    • "d:\VM\OSX\OSX 10.13.vmdk" 則需要換成你自己的 MAC VM 的 vmdk 路徑及檔名.
    • 因為這個動作會重新產生一份新的 vmdk, 所以 VMWare 會檢查是否硬碟還有原本設定的磁碟大小, 不夠的話會操作失敗. 這就是上面的紅字說 同時還要留下和這個 volumn 一樣大小的空間 的原因.

2020/05/02 更新


今天把荒廢許多的 VMware Workstation Pro 更新到 15.5.2, 並將 macOS VM 的設定檔一併更新到 Workstation 15.x. 然後也把 macOS VM 順便更新到 Catalina (10.15.4). 使用起來算是還可以, 只是覺得它好慢啊... 應該是因為剛換了 MacBookPro 所以 VM 用起來就 low 了... 吧? 哎! 真的一下了就被慣壞了.

arrow
arrow

    MagicJackTing 發表在 痞客邦 留言(61) 人氣()