
Virtual maşınlardan istifadə Linux Hyper-V-də qutudan çıxarkən qonaqla müqayisədə bir az daha az rahat bir təcrübədir Windows-maşınlar. Bunun səbəbi Hyper-V-nin əvvəlcə masaüstü istifadə üçün nəzərdə tutulmamasıdır; sadəcə Qonaq Əlavələri paketini quraşdırıb VirtualBox-da olduğu kimi işləyən qrafik sürətləndirmə, panoya, paylaşılan qovluqlara və digər üstünlüklərə sahib ola bilməzsiniz.
Hyper-V özü təmin edir - beləliklə, qonaqlar ev sahibinin kölgə nüsxəsi xidmətindən (VSS) istifadə edə bilər, qonaqlar bağlanma siqnalı göndərə bilər, qonaqlar sistem vaxtını virtuallaşdırma hostu ilə sinxronlaşdıra bilər, faylları hostdan virtual maşınla mübadilə edə bilər (Copy-VMFile PowerShell-də). Əlbəttə ki, bəzi qonaq əməliyyat sistemləri üçün Windows, Virtual Maşın Bağlantısı tətbiqində (vmconnect.exe) RDP protokolu ilə işləyən və disk cihazlarını və printerləri virtual maşına yönləndirməyə, həmçinin paylaşılan mübadilə buferindən istifadə etməyə imkan verən Təkmilləşdirilmiş Sessiya rejimi mövcuddur.
Təkmilləşdirilmiş Sessiya Rejimi qutudan kənarda işləyir Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, RDP serverinin vsock ilə işlədiyi xüsusi hazırlanmış virtual maşın şablonu var artıq əvvəlcədən quraşdırılmışdır, sonra digər paylamalarla daha az və daha az aydın olur - məsələn, müəllif получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
İnteqrasiya xidmətlərinin quraşdırılması
Burada hər şey az və ya çox sadədir, sadəcə paketi quraşdırmaq lazımdır hyperv icma deposundan:
% sudo pacman -S hypervVSS xidmətlərini aktivləşdirin, mübadilə edin və fayllar:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneXRDP quraşdırılması
anbar на 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/archBu yazı zamanı, skript tərəfindən quraşdırılmış XRDP-nin ən son buraxılışı makepkg.shrepozitoriyada təklif olunan 0.9.11, vsock://-ünvanlar, ona görə də Git-dən XRDP və onun üçün AUR-dan Xorg sürücüsünü əl ilə quraşdırmalısınız. AUR-da təklif olunan XRDP yaması da bir qədər köhnəlmişdir, ona görə də siz PKGBUILD və yamağı əl ilə redaktə etməli olacaqsınız.
Repozitoriyaları AUR-dan PKGBUILD-lərlə klonlayırıq (adətən bu prosedur montajla yanaşı, kimi proqramlar tərəfindən avtomatlaşdırılır. , lakin müəllif bütün bu proseduru təmiz bir sistemdə etdi):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitƏvvəlcə XRDP-nin özünü quraşdıraq. Faylı açaq PKGBUILD istənilən mətn redaktoru.
Quraşdırma parametrlərini redaktə edək. Git-dən XRDP qurmaq üçün PKGBUILD quruluşa vsock dəstəyini daxil etmir, ona görə də onu özümüz işə salaq:
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
}Bir yamaqda arch-config.diff, правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh, yazı zamanı XRDP paylanmasından, ona görə də yamaq əl ilə redaktə edilməli olacaq:
[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 -0600Komanda ilə paketi qurun və quraşdırın % makepkg --skipchecksums -si (açar --skipchecksums mənbə fayllarının yoxlama məbləğinin yoxlanılmasını söndürmək üçün lazımdır, çünki biz onları əl ilə redaktə etdik).
Gəlin kataloqa keçək xorgxrdp-devel-git, bundan sonra sadəcə komanda ilə paketi qururuq % makepkg -si.
Gəlin kataloqa keçək linux-vm-tools/arch və skripti işə salın install-config.shXRDP, PolicyKit və PAM parametrlərini təyin edən:
% sudo ./install-config.shSkript köhnə parametrləri quraşdırır use_vsock, 0.9.11 versiyasından bəri nəzərə alınmır, ona görə də konfiqurasiya faylını redaktə edək /etc/xrdp/xrdp.ini əl ilə:
; 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_nodelayFayla əlavə edin ~/.xinitrc X serveri işə salındıqda yerinə yetiriləcək üstünlük verdiyiniz pəncərə meneceri/masa üstü mühitinin işə salınması:
% echo "exec i3" > ~/.xinitrcVirtual maşını söndürək. PowerShell-də administrator olaraq aşağıdakı əmri işlətməklə VM üçün vsock nəqliyyatını aktivləşdirin:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocketVirtual maşını yenidən işə salaq.
Подключение
Sistem işə salındıqdan sonra XRDP xidməti başlayan kimi vmconnect proqramı bunu müəyyən edəcək və menyu elementi əlçatan olacaq. baxış -> Təkmilləşdirilmiş sessiya. Bu elementi seçdiyiniz zaman bizdən ekran həllini təyin etmək istəniləcək və tabda Yerli qaynaqlar Açılan dialoqda siz RDP sessiyası daxilində yönləndirilən cihazları seçə bilərsiniz.


Qoşulsun. XRDP giriş pəncərəsini görəcəyik:

İstifadəçi adınızı və şifrənizi daxil edin.
Istifadə
Bu manipulyasiyalardan qazanc nəzərə çarpır: RDP sessiyası Enhanced Session olmadan virtual displeylə işləməkdən daha həssas işləyir. RDP vasitəsilə VM daxilində yönləndirilən disklər kataloqda mövcuddur ${HOME}/shared-drives:

Mübadilə buferi yaxşı işləyir. Siz printerləri içəri ata bilməzsiniz, bu nəinki dəstəklənmir, həm də . Səs də işləmir, amma müəllifə lazım deyildi. Alt + Tab kimi klaviatura qısa yollarını çəkmək üçün vmconnect-i tam ekrana genişləndirməlisiniz.
Əgər hər hansı bir səbəbdən yerinə daxili vmconnect tətbiqindən istifadə etmək istəyirsinizsə Windows RDP müştərisi və ya, məsələn, bu maşına başqa bir maşından qoşulmaq, sonra faylı dəyişdirməlisiniz /etc/xrdp/xrdp.ini port haqqında tcp://:3389. Əgər virtual maşın Defolt Switch-ə qoşulubsa və DHCP vasitəsilə şəbəkə parametrlərini qəbul edirsə, onda siz ona hostdan qoşula bilərsiniz. название_машины.mshome.net. Siz yalnız Təkmilləşdirilmiş rejimi söndürməklə vmconnect proqramından TTY-yə daxil ola bilərsiniz.
İstifadə olunan mənbələr:
- GitHub-da səhv hesabatları: ,
Mənbə: www.habr.com
