1. 程式人生 > 其它 >FreeBSD作為主機(host)使用bhyve虛擬機器安裝windows10

FreeBSD作為主機(host)使用bhyve虛擬機器安裝windows10

系統版本:

  • FreeBSD 13.0
  • Windows 10

1. 預安裝

1.1. 載入bhyve核心模組

# kldload vmm

1.2. 然後,為虛擬機器中的網路裝置建立一個tap介面做連線用。

# ifconfig tap1 create
# sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1
# ifconfig bridge0 create
# ifconfig bridge0 addm em0 addm tap1
# ifconfig bridge0 up

em0 : 看你到網絡卡名稱是什麼就寫什麼(終端輸入 ifconfig

便可檢視)

1.3. 安裝VNC客戶端(我用的tightvnc)

# pkg install tightvnc

1.4. 下載virtio-win驅動
只下載 virtio-win-0.1.118.iso 便可

1.5. 準備好 windows10.iso

2. 建立虛擬磁碟

2.1 直接建立
建立一個檔案以用作guest計算機的虛擬磁碟

# truncate -s 88G win10.img

刪除:

# rm win10.img

2.2 使用zfs建立
如果FreeBSD是ZFS檔案系統可用ZFS建立(我用的就是ZFS).

# zfs create -V16G -o volmode=dev zroot/win10disk0

建立的檔案到絕對路徑是/dev/zvol/zroot/win10disk0
刪除:

# zfs destroy zroot/win10disk0

3. 安裝

使用影象化的UEFI Framebuffer來安裝 bhyve guest.
下面會用到兩個指令碼,一個是installwin10.sh,另外一個是firststart.sh(這指令碼要執行次).
3.1. 開始安裝

# sh installwin10.sh

開始執行,新開啟一個終端使用tightvnc輸入:

% vncviewer

輸入0.0.0.0:5900進行連線,以便操作圖形化安裝畫面.

安裝結束後,vnc會關閉和斷開.

然後為後面執行firststart需要刪除vm

# bhyvectl --destroy --vm=guestwin10

3.2. 第一次執行firststart.sh

# sh firststart.sh

執行tightvnc

% vncviewer

輸入0.0.0.0:5900進行連線

3.3. 第二次執行firststart.sh

# sh firststart.sh

執行tightvnc

% vncviewer

輸入0.0.0.0:5900進行連線進行win10安裝配置.

3.4 進行windows10網路配置
因為剛安裝好的windows10是沒有驅動無法上網的.
電腦-> CD virtio-win-xxx.iso -> NetKVM -> amd64(如果是32位就選x86) -> 右鍵點選 netkvm ->安裝.

4.指令碼及引數解析

如果建立的是 win10.img,則指令碼中使用 win10.img 替換 win10disk0(路徑一起替換).
4.1. installwin10.sh 如下:

#!/bin/sh
bhyve -c 2 -m 2G -w -H \
-s 0,hostbridge \
-s 3,ahci-cd,/path/to/win10.iso \
-s 4,ahci-hd,/dev/zvol/zroot/win10disk0 \
-s 5,virtio-net,tap1 \
-s 29,fbuf,tcp=0.0.0.0:5900,w=1280,h=720,wait \
-s 30,xhci,tablet \
-s 31,lpc \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd guestwin10

4.2. firststart.sh 如下

#!/bin/sh
bhyve -c 2 -m 2G -w -H \
-s 0,hostbridge \
-s 3,ahci-cd,/path/to/virtio-win-0.1.118.iso \
-s 4,ahci-hd,/dev/zvol/zroot/win10disk0 \
-s 5,virtio-net,tap1 \
-s 29,fbuf,tcp=0.0.0.0:5900,w=1280,h=720,wait \
-s 30,xhci,tablet \
-s 31,lpc \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd guestwin10

4.3. 引數解析

  • -c: 分配給虛擬機器的CPU核數
  • -m: 分配給虛擬機器記憶體大小
  • -w: 忽略未實現的 MSR(特定模型的暫存器)
  • -H: vmexit from the guest on hlt(這個不會翻譯)
  • -s: <slot,driver,configinfo> PCI 插槽配置
  • -l: LPC裝置配置

參考:
FreeBSD bhyve Win10
FreeBSD handbook 22.7. FreeBSD as a Host with bhyve
virtio-win-0.1.118
How to install Linux VM on FreeBSD using bhyve and ZFS