Kết xuất OpenGL + 3D hoạt động tốt với iommu nếu bạn có hỗ trợ VT-D trên bo mạch chủ + bộ xử lý của mình.
cộng intel_iommu=on iommu=pt
đến /etc/default/grub/
, cập nhật grub và khởi động lại. (AMD là amd_iommu=bật
)
Ví dụ.:
$ grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt"
Để đầy đủ, tôi nên đề cập đến /etc/default/grub/
cần phải được chỉnh sửa như root (sử dụng sudo
hoặc su
).
Lệnh cập nhật là:
cập nhật-grub
cho Debian/Ubuntu/Derivatives và:
grub2-mkconfig -o /boot/grub/grub.cfg
đối với hầu hết các bản phân phối khác (trên một số bản phân phối, grub2-mkconfig
lệnh được đặt tên grub-mkconfig
).
- Cần lưu ý rằng đây là chế độ truyền qua (chia sẻ) "yếu", không chiếm toàn bộ thiết bị.Truyền qua "đúng" loại bỏ hoàn toàn thiết bị khỏi sự kiểm soát của máy chủ. Điều đó đòi hỏi một
vfio-pci=vendId:devId
sơ khai trong grub hoặc /etc/modprobe.d
(và xây dựng lại initramfs). Để biết thêm thông tin về thông qua, đây là một nơi tốt để bắt đầu: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
- Thậm chí còn có nhiều cách phức tạp hơn để chia sẻ đồ họa của bạn, mỗi nhà cung cấp có phiên bản riêng của họ. Ví dụ: Intel-GVT-g cho intel iGD: https://wiki.archlinux.org/title/Intel_GVT-g
Đây là của tôi xml
cho các thiết bị trong câu hỏi:
Display Spice - lưu ý: với tính năng thông qua, bạn không thể bật máy chủ từ xa:
<graphics type="spice">
<listen type="none"/>
<image compression="off"/>
<gl enable="yes"/>
</graphics>
Video Virtio (thay đổi từ QXL):
<video>
<model type="virtio" heads="1" primary="yes">
<acceleration accel3d="yes"/>
</model>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
Không liên quan, tôi đang sử dụng thiết bị khối zvol trên cấu hình trình cài đặt ZFS của Ubuntu. Đây là một tùy chọn chỉ có trong phiên bản Ubuntu Desktop:
zvols thực sự tuyệt vời vì bạn có thể chuyển đổi giữa việc sử dụng chúng cho kvm-qemu
và [systemd-container][5]
(chỉ dành cho linux, rõ ràng) - cộng với ảnh chụp nhanh và gửi/nhận chúng.
Nhưng vì zvols bắt chước một đĩa thông thường, chúng chứng minh rằng bạn có thể sử dụng một đĩa chuyên dụng cho máy ảo của mình nếu bạn cũng có chỗ để cài đặt một đĩa.
Khi bạn tạo zvol, hãy cung cấp cho nó cấu trúc phân vùng gpt bằng cách sử dụng fdisk/sgdisk/{g}đã chia tay
v.v. giống như bất kỳ đĩa nào khác. Khi tôi tạo phân vùng gpt, tôi đã sử dụng Windows ISO để thực hiện phân vùng thực tế.
btrfs
có một cái gì đó tương tự nên được hỗ trợ tốt hơn bởi systemd-nspawn
, nhưng tôi không chắc liệu bạn có thể vận hành chúng như một thiết bị khối trong qemu
.
Mẹo cuối cùng: Tôi cần sao chép một số tệp từ Máy chủ sang VM. Bạn thực sự không thể gắn thư mục từ Linux -> Windows, nhưng tôi có thể gắn phân vùng (#3) Windows được tạo trên zvol trong Máy chủ dưới dạng phân vùng NTFS thông thường.
Vì vậy, trong khi VM tắt, tôi đã gắn phân vùng 3 vào /mnt
, sao chép thư mục tôi cần, số lượng /mnt
phân vùng và bắt đầu sao lưu VM.
Đôi khi có một chút khó khăn để tìm ra phải làm gì trong tình huống đó, vì vậy tôi nghĩ rằng tôi sẽ đưa nó vào. Những người trong hướng dẫn mà tôi đã đọc cũng khuyên bạn nên thiết lập chia sẻ Samba nếu bạn cần thứ gì đó thường xuyên hơn hoặc tôi cũng từ xa tới máy ảo Windows bằng OpenSSH-Server và PSRemoting, vì vậy có rất nhiều tùy chọn (Windows thậm chí hiện có SSHFS, nếu bạn kiểm tra sô cô la).