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 Դուք պետք է տեղադրեք RDP սերվեր, որը աջակցում է vsock-ին (հատուկ վիրտուալ ցանցային հասցեների տարածք) Linux, նախատեսված է հիպերվիզորի հետ հաղորդակցվելու համար): Եթե Ubuntu VMCreate ծրագրում, որը գալիս է Hyper-V-ի հետ աշխատասեղանի տարբերակներում 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-tools տրամադրում է 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://-հասցեներ, այնպես որ դուք պետք է տեղադրեք XRDP Git-ից, իսկ դրա համար Xorg դրայվերը AUR-ից ձեռքով: AUR-ում տրամադրված XRDP պատչը նույնպես փոքր-ինչ հնացած է, այնպես որ դուք պետք է խմբագրեք PKGBUILD-ը և կարկատեք ձեռքով:

Եկեք կլոնավորենք պահեստները PKGBUILD-ներով AUR-ից (սովորաբար այս ընթացակարգը, կառուցման հետ մեկտեղ, ավտոմատացված է այնպիսի ծրագրերի միջոցով, ինչպիսիք են. yay, բայց հեղինակն այս ամբողջ ընթացակարգն արել է մաքուր համակարգում).

% 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, կառավարող միավորներ և XRDP գործարկման սկրիպտներ Arch-ում օգտագործվող ֆայլի ուղիների ներքո 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

Եկեք անջատենք վիրտուալ մեքենան։ Միացնել vsock transport-ը վիրտուալ մեքենայի համար՝ գործարկելով հետևյալ հրամանը PowerShell-ում՝ որպես ադմինիստրատոր.

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. Եթե ​​վիրտուալ մեքենան միացված է Default Switch-ին և ստանում է ցանցի կարգավորումներ DHCP-ի միջոցով, կարող եք միանալ դրան հոսթից՝ հասցեով: название_машины.mshome.net. Դուք կարող եք մուտք գործել TTY միայն vmconnect հավելվածից՝ անջատելով Ընդլայնված ռեժիմը:

Օգտագործված աղբյուրներ:

  1. Hyper-V - Arch Wiki
  2. Սխալների մասին հաղորդումներ GitHub-ում. 1, 2

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster