Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar

Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar

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 çoxsaylı inteqrasiya xidmətləri - 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 XRDP 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 bu yazı получилось включить 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 hyperv

VSS xidmətlərini aktivləşdirin, mübadilə edin metadata və fayllar:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

XRDP quraşdırılması

anbar linux-vm alətləri на 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/arch

Bu 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, hansı təhlil pozulur 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. yay, 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ı çıxarıldı 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 -0600

Komanda 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.sh

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

Fayla ə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" > ~/.xinitrc

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

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

Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar
Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar

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

Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar

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

Arch üçün Təkmilləşdirilmiş Sessiya Rejimini Aktivləşdirir Linux-Hyper-V-də qonaqlar

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ə disk yönləndirməsini pozur. 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:

  1. Hyper-V Arch Wiki
  2. GitHub-da səhv hesabatları: 1, 2

Mənbə: www.habr.com

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster