我正在嘗試透過使用從我的 Linux 主機存取 Windows 10 虛擬機器virsh console
。
但當我這樣做時,我得到了許多其他人都經歷過的空控制台。
virsh console win10
Connected to domain 'win10'
Escape character is ^] (Ctrl + ])
而且我根本不會打字。不管怎樣,我可以在虛擬機器中進行配置來允許這種情況,特別是對於Windows嗎?謝謝
答案1
virsh console
是一個 TTY 控制台,它是串口在虛擬機器中(又稱「COM 連接埠」)。您的 Windows 10 是否會向此 COM 連接埠輸出任何內容?
Windows 需要 VGA 硬體輸出,因此為 VM 配置 VNC 並連接 VNC Viewer 以與 VM 互動。為了實現這一點,您需要在libvirt
xml 域配置中進行如下配置:
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
<video>
<model type='cirrus' vram='5120' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
(您可能需要使用另一個 PCI 插槽位址和 TCP 連接埠來透過 VNC 連接到該電腦)。
然後重新啟動(停止然後開始) 一個虛擬機,並確認 qemu 正在偵聽所選連接埠:
vh1 ~ # netstat -lnpt | grep 590
tcp 0 0 127.0.0.1:5900 0.0.0.0:* LISTEN 1774/qemu-system-x8
tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 13692/qemu-system-x
tcp 0 0 127.0.0.1:5902 0.0.0.0:* LISTEN 2526/qemu-system-x8
tcp 0 0 127.0.0.1:5903 0.0.0.0:* LISTEN 3755/qemu-system-x8
注意,在我的例子中它監聽本機,為了安全。
若要透過 SSH 隧道連線到此,請使用 TCP 連接埠轉送。它內建於標準 Linux VNC 用戶端套件中:
vncviewer -via virtualization.host.name localhost:1
(若要連接到 5901 的 VNC,請使用 VNC 螢幕 1)。它將根據我們的需要透過 SSH 連接到伺服器virtualization.host.name
並將一些本地連接埠轉發到伺服器;localhost:5901
然後將 VNC 用戶端連接到此轉送的連接埠。因此您的 VNC 將透過 SSH 得到保護。
或者,您可以監聽任何 IP 位址(安全性較低)。或者您可以透過其他方式設定此 TCP 隧道。但我這裡介紹的這種方式比較方便。或者,我忘了這一點,用於virt-viewer
連接到螢幕,已經很久沒有使用它了。
另外,Windows Server 支援(至少在不久前支援過)特殊管理控制台 (SAC)運行在COM連接埠上,可用於執行一些操作(任務終止等)。可以透過 存取此控制台virsh console
。但我懷疑 Windows 10 有這個功能。
答案2
virsh console
開啟VM的序列控制台,如果有的話。如果沒有,就像 Windows 的一般情況一樣,那麼什麼事也不會發生。
您應該使用virt-viewer
圖形控制台來查看虛擬機,或者更好的是,使用集成良好的virt-manager
.