Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V

Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V

Kugwiritsa ntchito makina a Linux mu Hyper-V kunja kwa bokosi ndikosavuta pang'ono kuposa kugwiritsa ntchito makina a alendo a Windows. Chifukwa chake ndikuti Hyper-V sinapangidwe kuti igwiritsidwe ntchito pakompyuta; simungangoyika phukusi lazowonjezera za alendo ndikupeza mathamangitsidwe azithunzi, bolodi, zolemba zogawana ndi zina zosangalatsa za moyo, monga zimachitika mu VirtualBox.

Hyper-V yokha imapereka ntchito zingapo zophatikiza - kotero, alendo angagwiritse ntchito mthunzi wa mthunzi wa wolandira (VSS), alendo amatha kutumiza chizindikiro chotseka, alendo akhoza kugwirizanitsa nthawi ya dongosolo ndi woyang'anira virtualization, mafayilo akhoza kusinthidwa kuchokera kwa wolandirayo ndi makina enieni (Copy-VMFile mu PowerShell). Kwa machitidwe ena ogwiritsira ntchito alendo, kuphatikizapo, Windows, mu pulogalamu ya Virtual Machine Connection (vmconnect.exe) Njira Yowonjezera ya Session ikupezeka, ikugwira ntchito kudzera pa protocol ya RDP ndikukulolani kusamutsa zida za disk ndi osindikiza kumakina enieni, komanso kugwiritsa ntchito bolodi logawana nawo.

Mawonekedwe Owonjezera a Session amagwira ntchito m'bokosi la Windows mu Hyper-V atangokhazikitsa. Ndi alendo pa Linux, muyenera kukhazikitsa seva ya RDP yomwe imathandizira vsock (malo apadera a adiresi apakompyuta ku Linux opangidwira kulankhulana ndi hypervisor). Ngati kwa Ubuntu mu pulogalamu ya VMCreate yomwe imabwera ndi Hyper-V pamawonekedwe apakompyuta a Windows, pali template yapadera yokonzekera makina momwe seva ya RDP ikugwira ntchito ndi vsock. XRDP zokhazikitsidwa kale, ndiye ndi magawo ena ndizosamveka bwino - mwachitsanzo, wolemba positi iyi Ndidakwanitsa kuloleza ESM ku Fedora. Apa tiyambitsa Njira Yowonjezera ya Session yamakina a Arch Linux.

Kuyika ntchito zophatikiza

Chilichonse chiri chophweka kwambiri apa, timangofunika kukhazikitsa phukusi hyperv kuchokera kumalo osungirako anthu:

% sudo pacman -S hyperv

Tiyeni tiwone VSS ndi ntchito zosinthana metadata ndi mafayilo:

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

Kukhazikitsa XRDP

posungira Linux-vm-zida pa GitHub imapereka zolemba zomwe zimasinthiratu njira yoyika ndikusintha XRDP ya Arch Linux ndi Ubuntu. Tiyeni tiyike Git, ngati siyinayikepo kale, pamodzi ndi chojambulira ndi mapulogalamu ena omangika pamanja, ndikufanizira zosungirako:

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

Pa nthawi yolemba nkhaniyi, kumasulidwa kwaposachedwa kwa XRDP, komwe kumayikidwa ndi script makepkg.shyomwe yaperekedwa m'malo osungirako ndi 0.9.11, momwe kupatulira kwathyoledwa vsock://-address, kotero muyenera kukhazikitsa XRDP kuchokera ku Git ndi Xorg driver wake kuchokera ku AUR pamanja. Chigamba cha XRDP choperekedwa mu AUR nachonso chatha pang'ono, kotero muyenera kusintha PKGBUILD ndikuyika pamanja.

Tiyeni titengere nkhokwe ndi PKGBUILDs kuchokera ku AUR (nthawi zambiri njirayi, pamodzi ndi kumanga, imapangidwa ndi mapulogalamu monga Pamenepo, koma wolemba adachita zonsezi pa dongosolo loyera):

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

Tiyeni tiyike XRDP yokha kaye. Tiyeni titsegule fayilo PKGBUILD mkonzi wa malemba aliwonse.

Tiyeni tisinthe magawo omanga. PKGBUILD yomanga XRDP kuchokera ku Git sikuphatikiza chithandizo cha vsock pomanga, ndiye tiyeni tidzithandizire tokha:

 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
 }

Mu chigamba arch-config.diff, yomwe imayang'anira mayunitsi ndi zolemba zoyambitsa XRDP pansi pa mafayilo omwe amagwiritsidwa ntchito mu Arch Linux, ilinso ndi chigamba cha script. instfiles/xrdp.sh, yomwe pa nthawi yolemba anachotsedwa kuchokera pakugawa kwa XRDP, kotero chigambacho chiyenera kusinthidwa pamanja:

  [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

Tiyeni tipange ndikuyika phukusi ndi lamulo % makepkg --skipchecksums -si (kiyi --skipchecksums zofunikira kuletsa kutsimikizira kwa checksum kwa mafayilo oyambira, popeza tidawasintha pamanja).

Tiyeni tipite ku chikwatu xorgxrdp-devel-git, pambuyo pake timangosonkhanitsa phukusi ndi lamulo % makepkg -si.

Tiyeni tipite ku chikwatu linux-vm-tools/arch ndikuyendetsa script install-config.sh, yomwe imakhazikitsa XRDP, PolicyKit ndi PAM:

% sudo ./install-config.sh

Script imayika zoikamo zakale use_vsock, yomwe yanyalanyazidwa kuyambira mtundu 0.9.11, kotero tiyeni tisinthe fayilo yosinthira /etc/xrdp/xrdp.ini pamanja:

 ;   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

Onjezani ku fayilo ~/.xinitrc kuyambitsa malo omwe mumakonda pawindo lazenera / desktop, zomwe zidzachitike seva ya X ikayamba:

% echo "exec i3" > ~/.xinitrc

Tizimitse makina enieni. Timayatsa zoyendera za vsock pamakina enieni poyendetsa lamulo ili mu PowerShell ngati woyang'anira:

PS Admin > Set-VM -VMName ΠΠΠ—Π’ΠΠΠ˜Π•_МАШИНЫ -EnhancedSessionTransportType HvSocket

Tiyeni tiyatsenso makina enieni.

Kulumikizana

Ntchito ya XRDP ikangoyamba dongosolo litayamba, pulogalamu ya vmconnect idzazindikira izi ndipo chinthucho chipezeka pamenyu. View -> Gawo Lowonjezera. Posankha chinthuchi, tidzauzidwa kuti tiyike mawonekedwe a skrini, ndi pa tabu Zosowa zapanyumba Muzokambirana zomwe zimatsegulidwa, mutha kusankha zida zomwe zikuyenera kutumizidwa mugawo la RDP.

Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V
Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V

Tiyeni tigwirizane. Tiwona zenera lolowera XRDP:

Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V

Lowetsani dzina lanu lolowera ndi mawu achinsinsi.

Gwiritsani ntchito

Phindu lazosokoneza izi likuwoneka bwino: gawo la RDP limagwira ntchito bwino kwambiri kuposa pogwira ntchito ndi chiwonetsero chazithunzi popanda Gawo Lowonjezera. Ma disks omwe adatsitsidwa mkati mwa VM kudzera pa RDP akupezeka m'ndandanda ${HOME}/shared-drives:

Yambitsani Njira Yowonjezera ya Session kwa alendo a Arch Linux mu Hyper-V

Chojambula chojambula chimagwira ntchito bwino. Simungathe kutumizira osindikiza mkati; izi sizongothandizidwa, komanso imaphwanya kutumiza kwa disk. Phokosolinso siligwira ntchito, koma wolemba sanafune izi. Kuti mujambule njira zazifupi za kiyibodi ngati Alt+Tab, muyenera kukulitsa vmconnect ku sikirini yonse.

Ngati pazifukwa zina mukufuna kugwiritsa ntchito kasitomala wa RDP womangidwa mu Windows m'malo mwa pulogalamu ya vmconnect kapena, mwachitsanzo, kulumikizana ndi makinawa kuchokera pamakina ena, ndiye kuti muyenera kusintha fayilo. /etc/xrdp/xrdp.ini port pa tcp://:3389. Ngati makina enieni alumikizidwa ku Default Switch ndikulandila zokonda pamaneti kudzera pa DHCP, ndiye kuti mutha kulumikizana nawo kuchokera kwa wolandila Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠ°ΡˆΠΈΠ½Ρ‹.mshome.net. Mutha kulowa mu TTY kuchokera pa vmconnect application pozimitsa Mode Yowonjezera.

Magwero ogwiritsidwa ntchito:

  1. Hyper-V - Arch Wiki
  2. Malipoti a Bug pa GitHub: 1, 2

Source: www.habr.com

Kuwonjezera ndemanga