![如何在 ubuntu 18.04 上為 qemu windows 10 guest 設定動態畫面大小?](https://rvso.com/image/922418/%E5%A6%82%E4%BD%95%E5%9C%A8%20ubuntu%2018.04%20%E4%B8%8A%E7%82%BA%20qemu%20windows%2010%20guest%20%E8%A8%AD%E5%AE%9A%E5%8B%95%E6%85%8B%E7%95%AB%E9%9D%A2%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
我的筆記型電腦上有雙啟動設定:Ubuntu 18.04 和 Windows 10。本指南。我正在使用的命令是這樣的:
sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 \
-drive format=raw,file=/dev/nvme0n1,index=1 \
-bios /usr/share/ovmf/OVMF.fd \
-display sdl -vga qxl \
-device qemu-xhci,id=xhci \
-netdev user,id=vmnic,smb=/home/generic/Downloads \
-device virtio-net,netdev=vmnic -cdrom ~/Downloads/virtio-win-0.1.171.iso
最後一行只是安裝virtio驅動程式所以我很確定我不需要每次都需要它。
第二行確定分區/dev/nvme0n1p1
。
指南中提到了 SPICE,即顯然有利於
動態螢幕調整大小、訪客/主機之間的剪貼簿等。
我想讓虛擬螢幕更改其大小並調整分辨率當我調整視窗大小時。我嘗試按照指南進行操作https://www.linux-kvm.org/page/SPICE並意識到這spicec
不再是一件事 - 這意味著我無法透過 與客人聯繫spicec -h 127.0.0.1 -p 5900
。
這香料使用手冊同意:
建議的客戶端是remote-viewer(隨virt-viewer一起提供)。
GNOME Boxes 也可以用作 Spice 用戶端。
SPICEC 是一個過時的舊客戶端,而辣只是一個測試應用。
所以我嘗試添加-spice port=5900,addr=127.0.0.1,disable-ticketing
到我的qemu
命令中並remote-viewer
在spice://127.0.0.1:5009
.這實際上打開了一個香料視窗 - 所以現在我有兩個視窗顯示我的 win10 客戶端。
Spice 視窗在調整大小時反應更佳,但它保持相同的分辨率,僅在必要時添加白色邊框。
問題
如何獲得能夠很好地適應大小調整的訪客系統的無邊界視圖?
如果這不是一個完全不同的問題:我怎麼才能只有一個窗口,而不是同時使用 qemu 和 SPICE 窗口?
更多細節
當我連接時remote-viewer
,它的控制台視窗顯示
** (remote-viewer:3066): CRITICAL **: 15:54:52.441: virt_viewer_util_extract_host: assertion 'uri != NULL' failed
輸出qemu
顯示
main_channel_link: add main channel client
main_channel_client_handle_pong: net test: latency 0.110000 ms, bitrate 34711864406 bps (33103.813559 Mbps)
inputs_connect: inputs channel client create
red_qxl_set_cursor_peer:
答案1
長話短說
第 3 點和第 12 點可能就足夠了,這取決於其他使用者如何設定其 VM。 --凱亞
奧茲曼迪亞斯42建議嘗試用作virt-manager
前端並引導我完成它。
virt-manager
在主機ubuntu上安裝- 設定一個群組,以便您無需 sudo 即可使用 virt-manager
sudo groupadd --system libvirt sudo usermod -a -G libvirt $(whoami) su - $USER
- 開始
virt-manager
並轉到View -> Edit -> Preferences -> Console
。啟用Resize guest with window: On
- 使用左上角的圖示「建立新虛擬機器」。我在那裡不確定,因為我不想要一台新機器,我只是想啟動我的雙啟動 Windows 分割區。但這就是按鈕。選擇“匯入現有磁碟映像”
- 選擇您的作業系統類型和版本,然後輸入您的裝置作為路徑。我已經使用過,
/dev/nvme0n1
我不確定是否/如何可以只允許虛擬機訪問某些分區(我首先嘗試只給它 EFI 分區,但這當然不起作用。也許可以添加所需的每個分區對於Windows 作為單獨的虛擬磁碟。受限空間) - 繼續瀏覽窗口,確保選中“安裝前自訂配置”
- 在自訂視窗中,我選擇了
Firmware: UEFI x86_64: /usr/share/OVMF/OVMF_CODE.fd
我的 Linux 上已有的。我想我安裝了它,apt install ovmf
但沒有保證。 - 您的磁碟被添加為“IDE 磁碟”,這沒關係,但我被告知 virtio 更好,因為它不模擬磁碟。如果您想使用 virtio,則訪客需要對其的支援。 Ozymandias42 也告訴我,在安裝驅動程式時設定實際使用該驅動程式的裝置/控制器非常重要,因為否則它在啟動時將無法以類似 intiramfs 的狀態可用。因此,添加第二個磁碟,使其變小,由一些檔案支持,並將其磁碟總線類型設為 virtio。您可以在來賓中安裝 virtio guest 工具後再次將其刪除。
- 左上:
Begin Installation
同樣,這聽起來很可怕。但它不會擾亂已安裝的視窗。 - 我已經在來賓上安裝了 Qemu 來賓工具和 SPICE 來賓工具。我想你兩者都需要。還要安裝virtio 訪客工具 exe並運行它。
- 重啟。如果一切正常,您可以刪除臨時磁碟並將網路卡也變更為 virtio。
- 在VM機器中轉到
View -> Scale Display -> Auto resize VM with window
答案2
您需要為虛擬機器新增virtio串列埠設備,以便與主機上的spice用戶端進行通訊。如果您將 virt-manager 與 libvirtd 一起使用,而不是直接使用 qemu,它很可能會自動為您解決這個問題。
嘗試新增
-device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0
-chardev spicevms,id=charchannel1,name=vdagent
-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0
如果這不起作用,我建議使用 virt-manager 作為前端。