Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары

Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары

Виртуалды машиналарды пайдалану Linux Hyper-V жүйесінде қонақтарға қарағанда, бастапқы нұсқадан сәл онша ыңғайлы емес. Windows-машиналары. Мұның себебі, Hyper-V бастапқыда жұмыс үстелінде пайдалануға арналмаған; сіз жай ғана Guest Additions бумасын орнатып, VirtualBox-тағыдай жұмыс істейтін графикалық жеделдетуді, алмасу буферін, ортақ каталогтарды және басқа да артықшылықтарды ала алмайсыз.

Hyper-V өзі қамтамасыз етеді бірнеше интеграциялық қызметтер - осылайша, қонақтар хосттың көлеңкелі көшірме қызметін (VSS) пайдалана алады, қонақтар өшіру сигналын жібере алады, қонақтар жүйе уақытын виртуалдандыру хостымен синхрондауы мүмкін, файлдарды хосттан виртуалды машинамен алмасуға болады (Copy-VMFile PowerShell бағдарламасында). Кейбір қонақ операциялық жүйелер үшін, әрине, мыналарды қамтиды Windows, Виртуалды машина қосылымы қолданбасында (vmconnect.exe) RDP протоколы арқылы жұмыс істейтін және дискі құрылғылары мен принтерлерді виртуалды машинаға жіберуге, сондай-ақ ортақ алмасу буферін пайдалануға мүмкіндік беретін жетілдірілген сеанс режимі қолжетімді.

Жақсартылған сеанс режимі дайын күйінде жұмыс істейді Windows Hyper-V жүйесінде орнатқаннан кейін бірден. Қонақтармен бірге Linux сізге vsock қолдайтын RDP серверін орнату қажет (арнайы виртуалды желі мекенжай кеңістігі) Linux, гипервизормен байланысу үшін жасалған). Егер болса Ubuntu жұмыс үстелі нұсқаларында Hyper-V бағдарламасымен бірге келетін VMCreate қолданбасында Windows, RDP сервері vsock-пен жұмыс істейтін арнайы дайындалған виртуалды машина үлгісі бар XRDP қазірдің өзінде алдын ала орнатылған, содан кейін басқа дистрибутивтермен ол азырақ және анық емес - мысалы, автор осы пост Біз Fedora-да ESM функциясын қоса алдық. Мұнда біз Arch виртуалды машинасы үшін Enhanced Session Mode режимін де іске қосамыз. Linux.

Интеграциялық қызметтерді орнату

Мұнда бәрі азды-көпті қарапайым, бізге тек пакетті орнату керек hyperv қауымдастық репозиторийінен:

% sudo pacman -S hyperv

VSS қызметтерін қосу, алмасу метадеректер және файлдар:

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

XRDP орнату

репозиторий linux-vm-құралдары GitHub сайтында Arch үшін XRDP орнату және конфигурациялау процесін автоматтандыратын сценарийлерді ұсынады Linux и UbuntuЕгер Git әлі орнатылмаған болса, оны компилятормен және қолмен құрастыруға арналған басқа бағдарламалық жасақтамамен бірге орнатып, репозиторийді клондаймыз:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

Осы жазу кезінде сценарий арқылы орнатылған XRDP ең соңғы шығарылымы makepkg.shрепозиторийде ұсынылған 0.9.11, онда талдау бұзылған vsock://-мекенжайлар, сондықтан Git-тен XRDP және оған AUR-дан Xorg драйверін қолмен орнату керек. AUR жүйесінде ұсынылған XRDP патчтары да аздап ескірген, сондықтан PKGBUILD және патчты қолмен өңдеуге тура келеді.

Біз репозиторийлерді AUR-дан PKGBUILD көмегімен клондаймыз (әдетте бұл процедура құрастырумен бірге келесі сияқты бағдарламалармен автоматтандырылған. алақай, бірақ автор бұл процедураны таза жүйеде жасады):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

Алдымен XRDP өзін орнатайық. Файлды ашайық PKGBUILD кез келген мәтіндік редактор.

Құрастыру параметрлерін өңдейік. Git-тен XRDP құруға арналған PKGBUILD құрастыруда vsock қолдауын қамтымайды, сондықтан оны өзіміз қосайық:

 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
 }

Патчта arch-config.diff, Arch бағдарламасында пайдаланылған файл жолдарының астындағы басқарушы бірліктер және XRDP іске қосу скрипттері Linux, скриптке патч кіреді instfiles/xrdp.sh, ол жазу кезінде жойылды XRDP таратуынан, сондықтан патчты қолмен өңдеу керек болады:

  [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

Пәрмен арқылы буманы құрастырыңыз және орнатыңыз % makepkg --skipchecksums -si (кілт --skipchecksums бастапқы файлдарды тексеру сомасын тексеруді өшіру үшін қажет, өйткені біз оларды қолмен өңдедік).

Анықтамаға барайық xorgxrdp-devel-git, содан кейін біз жай ғана пәрмен арқылы буманы құрастырамыз % makepkg -si.

Анықтамаға барайық linux-vm-tools/arch және сценарийді іске қосыңыз install-config.sh, ол XRDP, PolicyKit және PAM параметрлерін орнатады:

% sudo ./install-config.sh

Сценарий бұрынғы параметрді орнатады use_vsock, ол 0.9.11 нұсқасынан бері еленбейді, сондықтан конфигурация файлын өңдейік /etc/xrdp/xrdp.ini қолмен:

 ;   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

Файлға қосу ~/.xinitrc X сервері іске қосылғанда орындалатын қалаған терезе менеджерін/жұмыс үстелі ортасын іске қосу:

% echo "exec i3" > ~/.xinitrc

Виртуалды машинаны өшірейік. PowerShell бағдарламасында әкімші ретінде келесі пәрменді іске қосу арқылы VM үшін vsock тасымалдауын қосыңыз:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

Виртуалды машинаны қайтадан қосайық.

Подключение

Жүйе іске қосылғаннан кейін XRDP қызметі іске қосылғанда, vmconnect қолданбасы мұны анықтайды және мәзір элементі қолжетімді болады. көрініс -> Жетілдірілген сеанс. Бұл элементті таңдаған кезде, бізден экран ажыратымдылығын және қойындысында орнату сұралады Жергілікті ресурстар ашылатын диалогтық терезеде RDP сеансында қайта жіберілген құрылғыларды таңдауға болады.

Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары
Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары

Қосылайық. Біз XRDP кіру терезесін көреміз:

Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары

Пайдаланушы аты мен құпия сөзді енгізіңіз.

Пайдаланыңыз

Бұл манипуляциялардан түсетін пайда байқалады: RDP сеансы Жетілдірілген сеанссыз виртуалды дисплеймен жұмыс істегенге қарағанда әлдеқайда жауапты жұмыс істейді. RDP арқылы VM ішінде қайта жіберілген дискілер каталогта қол жетімді ${HOME}/shared-drives:

Arch үшін кеңейтілген сессия режимін қосу Linux-Hyper-V қонақтары

Алмасу буфері жақсы жұмыс істейді. Принтерді ішке лақтыра алмайсыз, бұл тек қолдау көрсетілмейді, сонымен қатар дискіні қайта жіберуді бұзады. Дыбыс та жұмыс істемейді, бірақ авторға бұл қажет емес. Alt + Tab сияқты пернелер тіркесімін түсіру үшін vmconnect толық экранға дейін кеңейту керек.

Егер қандай да бір себептермен сіз кірістірілген vmconnect қолданбасын пайдаланғыңыз келсе Windows RDP клиенті немесе, мысалы, осы машинаға басқа машинадан қосылу, содан кейін файлды өзгерту қажет болады /etc/xrdp/xrdp.ini port туралы tcp://:3389. Егер виртуалды машина әдепкі қосқышқа қосылған болса және желі параметрлерін DHCP арқылы қабылдаса, оған хосттан қосылуға болады: название_машины.mshome.net. TTY жүйесіне тек Жетілдірілген режимді өшіру арқылы vmconnect қолданбасынан кіруге болады.

Пайдаланылған көздер:

  1. Hyper-V Arch Wiki
  2. GitHub сайтындағы қателер туралы есептер: 1, 2

Ақпарат көзі: www.habr.com

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster