Միացնել ընդլայնված նստաշրջանի ռեժիմը Arch Linux-ի հյուրերի համար Hyper-V-ում

Միացնել ընդլայնված նստաշրջանի ռեժիմը Arch Linux-ի հյուրերի համար Hyper-V-ում

Linux-ի վիրտուալ մեքենաների օգտագործումը Hyper-V-ում առանց տուփի որոշ չափով ավելի քիչ հարմարավետ է, քան հյուր Windows-ի մեքենաների դեպքում: Դրա պատճառն այն է, որ Hyper-V-ն ի սկզբանե նախատեսված չէր աշխատասեղանի օգտագործման համար. Դուք չեք կարող պարզապես առաջ գնալ և տեղադրել հյուրերի հավելումների փաթեթը և ստանալ աշխատունակ գրաֆիկական արագացում, clipboard, ընդհանուր գրացուցակներ և կյանքի այլ ուրախություններ, ինչպես դա տեղի է ունենում VirtualBox-ում:

Hyper-V-ն ինքն է ապահովում մի քանի ինտեգրացիոն ծառայություններ - Այսպիսով, հյուրերը կարող են օգտագործել հյուրընկալողի ստվերային պատճենման ծառայությունը (VSS), հյուրերը կարող են ուղարկել անջատման ազդանշան, հյուրերը կարող են համաժամացնել համակարգի ժամանակը վիրտուալացման հոսթի հետ, ֆայլերը կարող են փոխանակվել վիրտուալ մեքենայի հետ հոսթից (Copy-VMFile PowerShell-ում): Որոշ հյուր օպերացիոն համակարգերի համար, ներառյալ, իհարկե, Windows-ը, Virtual Machine Connection հավելվածում (vmconnect.exe) Հասանելի է ընդլայնված նստաշրջանի ռեժիմը, որն աշխատում է RDP արձանագրության միջոցով և թույլ է տալիս սկավառակի սարքերն ու տպիչները փոխանցել վիրտուալ մեքենա, ինչպես նաև օգտագործել համօգտագործվող սեղմատախտակը:

Ընդլայնված նստաշրջանի ռեժիմն աշխատում է Windows-ում Hyper-V-ում տեղադրումից անմիջապես հետո: Linux-ի հյուրերի հետ դուք պետք է տեղադրեք RDP սերվեր, որն աջակցում է vsock-ին (հատուկ վիրտուալ ցանցի հասցեների տարածություն Linux-ում, որը նախատեսված է հիպերվիզորի հետ հաղորդակցվելու համար): Եթե ​​Ubuntu-ի համար, VMCreate հավելվածը, որը գալիս է Hyper-V-ի հետ Windows-ի աշխատասեղանի հրատարակություններում, ունի հատուկ պատրաստված վիրտուալ մեքենայի ձևանմուշ, որտեղ RDP սերվերն աշխատում է vsock-ով: XRDP արդեն նախապես տեղադրված է, ապա այլ բաշխումների դեպքում դա ավելի ու ավելի քիչ պարզ է, օրինակ, հեղինակը այս գրառումը պարզվեց, որ Fedora-ում ESM-ն միացրեց: Այստեղ մենք նաև միացնում ենք Enhanced Session Mode-ը Arch 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 Linux-ի և Ubuntu-ի համար XRDP-ի տեղադրման և կազմաձևման գործընթացը: Տեղադրեք 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 տրանսպորտը VM-ի համար՝ գործարկելով հետևյալ հրամանը 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 նիստը շատ ավելի արձագանքող է աշխատում, քան առանց Ընդլայնված նստաշրջանի վիրտուալ էկրանով աշխատելիս: VM-ի ներսում RDP-ի միջոցով փոխանցված սկավառակները հասանելի են գրացուցակում ${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 Վիքի
  2. Սխալների մասին հաղորդումներ GitHub-ում. 1, 2

Source: www.habr.com

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