
Sử dụng máy ảo trên Linux Trải nghiệm Hyper-V khi mới cài đặt có phần kém thoải mái hơn so với khi dùng chế độ khách. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
Bản thân Hyper-V cung cấp - như vậy, khách có thể sử dụng dịch vụ Shadow Copy (VSS) của Host, khách có thể gửi tín hiệu tắt máy, khách có thể đồng bộ thời gian hệ thống với Host ảo hóa, file có thể được trao đổi từ Host với máy ảo (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Chế độ phiên nâng cao có sẵn, hoạt động thông qua giao thức RDP và cho phép bạn chuyển các thiết bị đĩa và máy in sang máy ảo cũng như sử dụng khay nhớ tạm được chia sẻ.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер đã được cài đặt sẵn, thì với các bản phân phối khác, điều đó ngày càng ít rõ ràng hơn - ví dụ: tác giả получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
Cài đặt dịch vụ tích hợp
Mọi thứ ở đây ít nhiều đơn giản, chúng ta chỉ cần cài đặt gói hyperv từ kho lưu trữ cộng đồng:
% sudo pacman -S hypervHãy kích hoạt VSS và dịch vụ trao đổi và tập tin:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneCài đặt XRDP
kho на GitHub предоставляет скрипты, автоматизирующие процесс установки и настройки XRDP, для Arch Linux и Ubuntu. Установим Git, если он еще не установлен, вместе с компилятором и другим софтом для ручных сборок, после чего склонируем репозиторий:
% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/archTại thời điểm viết bài này, bản phát hành XRDP mới nhất, được cài đặt theo tập lệnh makepkg.shcái được đề xuất trong kho là 0.9.11, vsock://-addresses, vì vậy bạn sẽ phải cài đặt XRDP từ Git và trình điều khiển Xorg cho nó từ AUR theo cách thủ công. Bản vá XRDP được cung cấp trong AUR cũng hơi lỗi thời, vì vậy bạn sẽ phải chỉnh sửa PKGBUILD và vá theo cách thủ công.
Hãy sao chép các kho lưu trữ với PKGBUILD từ AUR (thông thường quy trình này, cùng với quá trình xây dựng, được tự động hóa bởi các chương trình như , nhưng tác giả đã thực hiện toàn bộ quy trình này trên một hệ thống sạch):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitTrước tiên hãy cài đặt XRDP. Hãy mở tập tin PKGBUILD bất kỳ trình soạn thảo văn bản nào.
Hãy chỉnh sửa các tham số xây dựng. PKGBUILD để xây dựng XRDP từ Git không bao gồm hỗ trợ vsock khi xây dựng, vì vậy hãy tự kích hoạt nó:
build() {
cd $pkgname
./configure --prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--sbindir=/usr/bin
--with-systemdsystemdunitdir=/usr/lib/systemd/system
--enable-jpeg
--enable-tjpeg
--enable-fuse
--enable-opus
--enable-rfxcodec
--enable-mp3lame
- --enable-pixman
+ --enable-pixman
+ --enable-vsock
make V=0
}trong một bản vá arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, tại thời điểm viết bài từ bản phân phối XRDP, do đó bản vá sẽ phải được chỉnh sửa thủ công:
[Install]
WantedBy=multi-user.target
-diff -up src/xrdp-devel-git/instfiles/xrdp.sh.orig src/xrdp-devel-git/instfiles/xrdp.sh
---- src/xrdp-devel-git/instfiles/xrdp.sh.orig 2017-08-30 00:27:28.000000000 -0600
-+++ src/xrdp-devel-git/instfiles/xrdp.sh 2017-08-30 00:28:00.000000000 -0600
-@@ -17,7 +17,7 @@
- # Description: starts xrdp
- ### END INIT INFO
-
--SBINDIR=/usr/local/sbin
-+SBINDIR=/usr/bin
- LOG=/dev/null
- CFGDIR=/etc/xrdp
-
diff -up src/xrdp-devel-git/sesman/startwm.sh.orig src/xrdp-devel-git/sesman/startwm.sh
--- src/xrdp-devel-git/sesman/startwm.sh.orig 2017-08-30 00:27:30.000000000 -0600Hãy biên dịch và cài đặt gói bằng lệnh % makepkg --skipchecksums -si (chìa khóa --skipchecksums cần thiết để tắt xác minh tổng kiểm tra các tệp nguồn vì chúng tôi đã chỉnh sửa chúng theo cách thủ công).
Chúng ta hãy đi đến thư mục xorgxrdp-devel-git, sau đó chúng ta chỉ cần lắp ráp gói bằng lệnh % makepkg -si.
Chúng ta hãy đi đến thư mục linux-vm-tools/arch và chạy tập lệnh install-config.sh, đặt cài đặt XRDP, PolicyKit và PAM:
% sudo ./install-config.shTập lệnh cài đặt cài đặt cũ use_vsock, đã bị bỏ qua kể từ phiên bản 0.9.11, vì vậy hãy chỉnh sửa tệp cấu hình /etc/xrdp/xrdp.ini thủ công:
; port=vsock://<cid>:<port>
-port=3389
+port=vsock://-1:3389
; 'port' above should be connected to with vsock instead of tcp
; use this only with number alone in port above
; prefer use vsock://<cid>:<port> above
-use_vsock=true
+;use_vsock=true
; regulate if the listening socket use socket option tcp_nodelayThêm vào tập tin ~/.xinitrc khởi chạy môi trường máy tính để bàn/trình quản lý cửa sổ ưa thích của bạn, môi trường này sẽ được thực thi khi máy chủ X khởi động:
% echo "exec i3" > ~/.xinitrcHãy tắt máy ảo. Chúng tôi kích hoạt vận chuyển vsock cho máy ảo bằng cách chạy lệnh sau trong PowerShell với tư cách quản trị viên:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketHãy bật lại máy ảo.
Подключение
Ngay khi dịch vụ XRDP khởi động sau khi hệ thống khởi động, ứng dụng vmconnect sẽ phát hiện điều này và mục sẽ có sẵn trong menu Xem -> Phiên nâng cao. Khi chọn mục này, chúng ta sẽ được nhắc đặt độ phân giải màn hình và trên tab Tài nguyên địa phương Trong hộp thoại mở ra, bạn có thể chọn thiết bị để chuyển tiếp vào phiên RDP.


Hãy kết nối. Chúng ta sẽ thấy cửa sổ đăng nhập XRDP:

Nhập tên người dùng và mật khẩu của bạn.
Sử dụng
Lợi ích từ những thao tác này là đáng chú ý: phiên RDP hoạt động phản hồi nhanh hơn nhiều so với khi làm việc với màn hình ảo không có Phiên nâng cao. Các đĩa được thả bên trong VM thông qua RDP có sẵn trong thư mục ${HOME}/shared-drives:

Bảng nhớ tạm hoạt động tốt. Bạn không thể chuyển tiếp máy in bên trong; điều này không những không được hỗ trợ mà còn . Âm thanh cũng không hoạt động, nhưng tác giả không cần điều này. Để chụp các phím tắt như Alt+Tab, bạn cần mở rộng vmconnect ra toàn màn hình.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port trên tcp://:3389. Nếu máy ảo được kết nối với Default Switch và nhận cài đặt mạng qua DHCP thì bạn có thể kết nối với nó từ máy chủ tại название_машины.mshome.net. Bạn chỉ có thể đăng nhập vào TTY từ ứng dụng vmconnect bằng cách tắt Chế độ nâng cao.
Nguồn đã sử dụng:
- Báo cáo lỗi trên GitHub: ,
Nguồn: www.habr.com
