Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin

Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin

Hyper-V-də Linux virtual maşınlarını qutudan kənarda istifadə etmək qonaq Windows maşınları ilə müqayisədə bir qədər az rahatdır. Bunun səbəbi Hyper-V-nin əvvəlcə masaüstü istifadə üçün nəzərdə tutulmamasıdır; Siz sadəcə davam edib qonaq əlavələri paketini quraşdıra və VirtualBox-da olduğu kimi işlək qrafik sürətləndirilməsi, mübadilə buferi, paylaşılan kataloqlar və həyatın digər sevinclərini əldə edə 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ə). Bəzi qonaq əməliyyat sistemləri üçün, o cümlədən, əlbəttə ki, Windows, Virtual Maşın Əlaqəsi proqramında (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 Windows-da Hyper-V-də quraşdırıldıqdan dərhal sonra işləyir. Linux-da qonaqlarla vsock-u (hipervizorla əlaqə saxlamaq üçün nəzərdə tutulmuş Linux-da xüsusi virtual şəbəkə ünvan sahəsi) dəstəkləyən RDP serverini quraşdırmalısınız. Əgər Ubuntu üçün, Windows-un masa üstü versiyalarında Hyper-V ilə gələn VMCreate proqramında 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ı Fedora-da ESM-i işə saldığı ortaya çıxdı. Burada biz həmçinin Arch Linux virtual maşını üçün Təkmilləşdirilmiş Sessiya rejimini işə salırıq.

İ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-da Arch Linux və Ubuntu üçün XRDP-nin quraşdırılması və konfiqurasiyası prosesini avtomatlaşdıran skriptlər təqdim edir. Git-i, əgər o, artıq quraşdırılmayıbsa, kompilyator və əl ilə qurmaq üçün digər proqram təminatı ilə birlikdə quraşdırın və sonra deponu klonlayın:

% 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.diffArch Linux-da istifadə olunan fayllara gedən yollar altında vahidləri və XRDP başlanğıc skriptlərini redaktə edən , digər şeylər arasında skript üçün yamaq ehtiva edir. 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.

Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin
Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin

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

Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin

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

Hyper-V-də Arch Linux qonaqları üçün Təkmilləşdirilmiş Sessiya Rejimini aktiv edin

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 nədənsə vmconnect tətbiqi əvəzinə Windows-da quraşdırılmış RDP müştərisini istifadə etmək və ya məsələn, başqa bir maşından bu maşına qoşulmaq istəyi varsa, onda siz 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

Добавить комментарий