Windows

適用於 Windows 10 VM (QEMU-KVM) 的 Virsh 控制台

  • September 11, 2021

我正在嘗試使用virsh console.

但是當我這樣做時,我得到了許多其他人經歷過的空控制台。

virsh console win10
Connected to domain 'win10'
Escape character is ^] (Ctrl + ])

而且我根本不會打字。無論如何,我可以在 VM 中進行配置以允許這樣做,特別是針對 Windows 嗎?謝謝

virsh console是一個 TTY 控制台,它是 VM 中的uart(又名“COM 埠”)。您的 Windows 10 是否向此 COM 埠輸出任何內容?

Windows 需要 VGA 硬體輸出,因此為 VM 配置 VNC 並連接 VNC Viewer 以與 VM 互動。為此,您將在libvirtxml 域配置中進行如下配置:

   <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>

(您可能需要為 VNC 使用另一個 PCI 插槽地址和 TCP 埠連接到這台機器)。

然後重新啟動(停止然後啟動)VM,並確認 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 

請注意,在我的情況下,它會在localhost上偵聽,以確保安全。

要通過 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 支持(至少,前一段時間支持)在 COM 埠上執行的特殊管理控制台 (SAC),可用於執行某些操作(任務終止等)。可以使用 訪問此控制台virsh console。但我懷疑 Windows 10 有這個。

引用自:https://serverfault.com/questions/1077285