Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V

Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V

Ho sebelisa mechini e sebetsang ea Linux ho Hyper-V ka ntle ho lebokose ha ho bonolo ho feta ka mechini ea Windows ea baeti. Lebaka la sena ke hore Hyper-V e ne e sa rereloa tšebeliso ea komporo; u ke ke ua tsoela pele ho kenya sephutheloana sa tlatsetso ea baeti 'me u fumane potlakiso ea litšoantšo tse sebetsang, clipboard, li-directory tse arolelanoang le lintho tse ling tse monate tsa bophelo, joalo ka ha ho etsahala ho VirtualBox.

Hyper-V ka boeona e fana ka litšebeletso tse ngata tsa ho kopanya - ka hona, baeti ba ka sebelisa tšebeletso ea kopi ea moriti (VSS) ea moeti, baeti ba ka romela letšoao la ho koala, baeti ba ka hokahanya nako ea tsamaiso le moeti oa virtualization, lifaele li ka fapanyetsanoa le mochine oa sebele o tsoang ho moamoheli (Copy-VMFile ho PowerShell). Bakeng sa lits'ebetso tse ling tsa moeti, ho kenyeletsoa, ​​ehlile, Windows, ts'ebelisong ea Virtual Machine Connection (vmconnect.exe) Mokhoa o ntlafalitsoeng oa Session oa fumaneha, o sebetsang ka protocol ea RDP mme o o lumella ho fetisetsa lisebelisoa le li-printer tsa disk mochining oa sebele, hammoho le ho sebelisa clipboard e arolelanoang.

Mokhoa o Ntlafetseng oa Session o sebetsa ka ntle ho lebokose la Windows ho Hyper-V hang ka mor'a ho kenya. Le baeti ba Linux, o hloka ho kenya seva ea RDP e tšehetsang vsock (sebaka se khethehileng sa aterese ea marang-rang ho Linux e etselitsoeng ho buisana le hypervisor). Haeba bakeng sa Ubuntu, sesebelisoa sa VMCreate se tlang le Hyper-V ho likhatiso tsa desktop tsa Windows se na le template e khethehileng e lokiselitsoeng ea mochini moo seva ea RDP e sebetsang le vsock. XRDP e se e kentsoe esale pele, joale ka liphatlalatso tse ling ha e hlake haholoanyane - ka mohlala, mongoli poso ena e ile ea thusa ESM ho Fedora. Mona re boetse re nolofalletsa Mokhoa o Matlafalitsoeng oa Session bakeng sa mochini o sebetsang oa Arch Linux.

Ho kenya litšebeletso tsa ho kopanya

Ntho e 'ngoe le e' ngoe e bonolo kapa e bonolo mona, re hloka feela ho kenya sephutheloana hyperv ho tsoa sebakeng sa polokelo ea sechaba:

% sudo pacman -S hyperv

Numella lits'ebeletso tsa VSS, phapanyetsano metadata le lifaele:

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

Kenyelletso ea XRDP

polokelo lisebelisoa tsa linux-vm ho GitHub e fana ka mangolo a ikemetseng a ho kenya le ho lokisa XRDP bakeng sa Arch Linux le Ubuntu. Ha re kenye Git, haeba e se e kentsoe, hammoho le moqapi le software e 'ngoe bakeng sa meaho ea matsoho, ebe o kopanya polokelo:

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

Nakong ea ho ngola sena, tokollo ea morao-rao ea XRDP, e kentsoeng ke script makepkg.she sisintsweng sebakeng sa polokelo ke 0.9.11, eo ho qhetsola ho robehileng teng vsock://-aterese, kahoo o tlameha ho kenya XRDP ho tloha Git le mokhanni oa Xorg bakeng sa eona ho tloha AUR ka letsoho. Patch ea XRDP e fanoeng ho AUR le eona e siiloe ke nako, ka hona, o tla tlameha ho hlophisa PKGBUILD le patch ka letsoho.

Re kopanya libaka tsa polokelo ka li-PKGBUILD tse tsoang ho AUR (hangata ts'ebetso ena, hammoho le kopano, e etsoa ke mananeo a kang. shatee, empa mongoli o entse ts'ebetso ena kaofela ka sistimi e hloekileng):

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

Ha re kenye XRDP ka boeona pele. Ha re bule faele PKGBUILD mohlophisi ofe kapa ofe oa mongolo.

Ha re fetole liparamente tsa moaho. PKGBUILD ea ho aha XRDP ho tloha Git ha e kenyelle tšehetso ea vsock moahong, ka hona, a re e khoneng ka borona:

 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
 }

Ka patch arch-config.diff, e hlophisang likarolo le mangolo a qalang a XRDP tlas'a litsela tsa lifaele tse sebelisoang ho Arch Linux, e na le, har'a lintho tse ling, patch ho script. instfiles/xrdp.sh, eo ka nako ea ho ngola e tlositsoe ho tsoa kabong ea XRDP, kahoo patch e tla tlameha ho hlophisoa ka letsoho:

  [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

Haha le ho kenya sephutheloana ka taelo % makepkg --skipchecksums -si (senotlolo --skipchecksums ea hlokahala ho tima netefatso ea checksum ea lifaele tsa mohloli, kaha re li hlophisitse ka letsoho).

Ha re ee bukeng xorgxrdp-devel-git, ka mor'a moo re haha ​​​​sephutheloana ka taelo % makepkg -si.

Ha re ee bukeng linux-vm-tools/arch ebe o tsamaisa script install-config.sh, e behang litlhophiso tsa XRDP, PolicyKit le PAM:

% sudo ./install-config.sh

Script e kenya litlhophiso tsa lefa use_vsock, e hlokomolohuoang ho tloha phetolelong ea 0.9.11, kahoo ha re fetoleng faele ea tlhophiso /etc/xrdp/xrdp.ini ka letsoho:

 ;   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

Kenya faeleng ~/.xinitrc ho qala tikoloho eo u e ratang ea mookameli oa fensetere/desktop, e tla etsoa ha seva sa X se qala:

% echo "exec i3" > ~/.xinitrc

Ha re tima mochini o sebetsang. Numella sepalangoang sa vsock bakeng sa VM ka ho sebelisa taelo e latelang ho PowerShell joalo ka motsamaisi:

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

Ha re bulele mochine oa sebele hape.

Kopano

Hang ha tšebeletso ea XRDP e qala ka mor'a hore tsamaiso e qale, sesebelisoa sa vmconnect se tla etsa qeto ea sena 'me ntho ea menu e tla ba teng. View -> Seboka se ntlafalitsoeng. Ha u khetha ntho ena, re tla susumelletseha ho seta qeto ea skrine, le ho tab Lisebelisoa tsa sebaka seo puisanong e butsoeng, o ka khetha lisebelisoa tse romelloang ka har'a seshene ea RDP.

Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V
Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V

Ha re hokahaneng. Re tla bona fensetere ea ho kena ea XRDP:

Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V

Kenya lebitso la hau la mosebelisi le password.

Sebelisa

Phaello e tsoang ho maqheka ana e ea bonahala: Seboka sa RDP se sebetsa ka mokhoa o arabelang haholoanyane ho feta ha o sebetsa ka ponts'o ntle le Session e ntlafalitsoeng. Li-disk tse fetiselitsoeng ka har'a VM ka RDP li fumaneha bukeng ${HOME}/shared-drives:

Numella Mokhoa o Ntlafetseng oa Session bakeng sa baeti ba Arch Linux ho Hyper-V

Clipboard e sebetsa hantle. U ke ke ua lahlela li-printer ka hare, sena ha se tšehetsoe feela, empa hape e senya phetisetso ea disk. Molumo le oona ha o sebetse, empa mongoli o ne a sa o hloke. E le hore u khone ho tšoara likheo tsa keyboard joaloka Alt + Tab, u lokela ho atolosa vmconnect ho skrine se feletseng.

Haeba ka lebaka le itseng ho na le takatso ea ho sebelisa moreki oa RDP o hahelletsoeng ka har'a Windows ho fapana le ts'ebeliso ea vmconnect kapa, mohlala, hokela mochining ona ho tsoa mochining o mong, o tla hloka ho fetola faele. /etc/xrdp/xrdp.ini port mabapi le tcp://:3389. Haeba mochini o sebetsang o hoketsoe ho Default Switch mme o amohela litlhophiso tsa marang-rang ka DHCP, o ka hokela ho eona ho tsoa ho moamoheli ho. название_машины.mshome.net. O ka kena feela ho TTY ho tsoa ts'ebelisong ea vmconnect ka ho tima Mokhoa o ntlafalitsoeng.

Mehloli e sebelisitsoeng:

  1. Hyper-V Arch Wiki
  2. Litlaleho tsa Bug ho GitHub: 1, 2

Source: www.habr.com

Eketsa ka tlhaloso