本篇介紹如何在 KVM/QEMU 的環境下,遠端以 virt-install
指令建立虛擬機器,透過 VNC 的方式顯示 VM 畫面。
若想要在 KVM/QEMU 虛擬機器環境中安裝並運行作業系統,最簡單的方式就是使用 Virtual Machine Manager 的視窗操作介面來安裝並執行虛擬機器,但是如果我們需要透過 SSH 登入到遠端的機器上建立虛擬機器的話,有時候就會需要使用指令的方式來操作,以下是使用 virt-install
安裝虛擬機器,並以 virsh
運行虛擬機器的步驟。
安裝虛擬機器之前,要先建立一個要給虛擬機器用的虛擬磁碟檔案:
# 建立 VM 用的硬碟檔案(遠端主機) sudo qemu-img create -f qcow2 /home/seal/kvm/ubuntu1804.qcow2 20G
接著使用 virt-install
將作業系統安裝到剛剛建立好的虛擬磁碟檔案中,以下是安裝 Ubuntu Linux 18.04 的例子:
# 在 VM 中安裝 Ubuntu Linux 18.04(遠端主機) sudo virt-install --virt-type kvm --name ubuntu1804 --ram 2048 --disk /home/seal/kvm/ubuntu1804.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0,password=YOUR_PASSWORD --noautoconsole --os-type=linux --os-variant=ubuntu17.10 --cdrom=/home/seal/Downloads/ubuntu-18.10-desktop-amd64.iso
這裡我們使用 --graphics
參數指定使用 VNC 的方式顯示畫面,並讓 VNC 伺服器傾聽所有的 IP 位址,並設定密碼。
--os-type
是指定作業系統類型(可為 linux
或 windows
),而 --os-variant
則是更詳細的作業系統資訊,可用的選項可以使用 osinfo-query
指令查詢:
# 查詢 --os-variant 可用的選項(遠端主機)
osinfo-query os | grep ubuntu
執行了 virt-install
之後,即可使用 virsh vncdisplay
查詢這台 VM 所開啟的 VNC 連接埠:
# 查看 VNC 連接埠(遠端主機)
virsh vncdisplay ubuntu1804
:0
通常 CentOS Linux 都有防火牆,若是測試用的機器建議可以把防火牆關閉,方便測試:
# 關閉防火牆(遠端主機)
sudo systemctl stop firewalld
假設遠端主機的 IP 位址是 192.168.0.3
,則我們就可以在本地端使用 vncviewer
以 VNC 的方式連到該 VM:
# 開啟 VNC Viewer(本地端) vncviewer 192.168.0.3:0
如果是比較正式的機器,可以建立 SSH 安全加密通道,將遠端機器的 5900
連接埠導向至本地端的 5900
連接埠:
# 建立 SSH 安全加密通道(本地端) ssh -NL 5900:localhost:5900 seal@192.168.0.3
然後再以 vncviewer
開啟本地端的 5900
連接埠:
# 開啟 VNC Viewer(本地端) vncviewer localhost:0
接著就可以按照正常的方式安裝 Ubuntu Linux 作業系統:
安裝完成後,查看一下目前所有的 VM:
# 列出所有 VM(遠端主機) virsh list --all
Id 名稱 狀態 ---------------------------------------------------- - ubuntu1804 關機
使用 virsh start
將指定的 VM 開機:
# 啟動 VM(遠端主機)
virsh start ubuntu1804
區域 ubuntu1804 已開啟
這樣就可以開始使用 Ubuntu Linux 系統了。
如果要遠端在 VM 中安裝 Windows 作業系統,流程都差不多,只要更換一下 ISO 檔案,更改 OS 的類型設定即可:
# 建立 VM 用的硬碟檔案(遠端主機) sudo qemu-img create -f qcow2 /home/seal/kvm/windows10.qcow2 20G # 在 VM 中安裝 Windows 10(遠端主機) sudo virt-install --virt-type kvm --name windows10 --ram 2048 --disk /home/seal/kvm/windows10.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0,password=YOUR_PASSWORD --noautoconsole --os-type=windows --os-variant=win10 --cdrom=/home/seal/Downloads/Win10_1809Oct_Chinese_x64.iso
接著按照正常方式安裝 Windows 10 作業系統:
安裝完成後,啟動該 VM:
# 啟動 VM(遠端主機)
virsh start windows10
區域 windows10 已開啟
這樣就完成了。