Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V

Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V

O le faʻaaogaina o masini komepiuta Linux i Hyper-V i fafo o le atigipusa o se faʻafitauli laʻititi laʻititi nai lo le faʻaaogaina o masini malo Windows. O le mafuaʻaga o lenei mea o le Hyper-V e leʻi faʻamoemoe muamua mo le faʻaogaina o le komepiuta; e le mafai ona na o le faʻapipiʻiina o se afifi o faʻaopoopoga faʻafeiloaʻi ma maua faʻavavevave faʻataʻitaʻiga, se laupapa kilipa, faʻasalalauga faʻasoa ma isi fiafiaga o le olaga, e pei ona tupu i VirtualBox.

Hyper-V lava ia e maua tele auaunaga tu'ufa'atasi - o lea, e mafai e malo ona faʻaogaina le auʻaunaga kopi ata a le talimalo (VSS), e mafai e malo ona tuʻuina atu se faʻailoga tapuni, e mafai e malo ona faʻafetaui le taimi faʻaoga ma le virtualization host, faila e mafai ona fesuiaʻi mai le talimalo ma le masini masini (Copy-VMFile i le PowerShell). Mo nisi faiga faʻaoga faʻapitoa, e aofia ai, ioe, Windows, i le Virtual Machine Connection application (vmconnect.exe) O loʻo avanoa le Faʻasalalauga Faʻaleleia, galue e ala i le RDP protocol ma faʻatagaina oe e faʻafeiloaʻi masini tisiki ma lomitusi i le masini komepiuta, faʻapea foʻi ma le faʻaogaina o se laupapa faʻasoa.

Faʻaleleia Faiga Faʻasalalauga e galue i fafo o le atigipusa i Windows i Hyper-V i le taimi lava e uma ai le faʻapipiʻiina. Faatasi ai ma malo i luga o Linux, e te manaʻomia le faʻapipiʻiina o se RDP server e lagolagoina vsock (se avanoa faʻapitoa fesoʻotaʻiga fesoʻotaiga vavave i Linux ua fuafuaina mo fesoʻotaʻiga ma le hypervisor). Afai mo le Ubuntu i le VMCreate talosaga e sau ma Hyper-V i luga o lomiga o le komepiuta o Windows, o loʻo i ai se faʻataʻitaʻiga faʻapitoa faʻapipiʻi masini masini e galue ai se server RDP ma vsock. XRDP ua uma ona faʻapipiʻiina, ona faʻatasi ai lea ma isi faʻasalalauga e faʻaitiitia ma itiiti le manino - mo se faʻataʻitaʻiga, o le tusitala lenei pou Na mafai ona ou faʻaogaina le ESM i Fedora. O iinei o le a matou faʻagaoioia ai le Faʻaleleia o le Sauniga Mode mo le Arch Linux masini masini.

Fa'apipi'i 'au'aunaga tu'ufa'atasi

O mea uma e sili atu pe itiiti ifo faigofie iinei, e tatau ona matou faʻapipiʻi le afifi hyperv mai le fale teu oloa a le nuu:

% sudo pacman -S hyperv

Tatou fa'aagaina le VSS ma le fa'afesuia'i auaunaga metadata ma faila:

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

Fa'apipi'i le XRDP

faleteuoloa linux-vm-meafaigaluega i luga ole GitHub o loʻo tuʻuina atu ai faʻamaumauga e faʻaogaina ai le faagasologa o le faʻapipiʻiina ma le faʻatulagaina o XRDP mo Arch Linux ma Ubuntu. Sei o tatou faʻapipiʻi Git, pe a fai e leʻi faʻapipiʻiina, faʻatasi ai ma le tuʻufaʻatasia ma isi polokalama mo le fausiaina o tusi, ona faʻapipiʻi lea o le fale teu oloa:

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

I le taimi na tusia ai lenei tusiga, o le faʻasalalauga lata mai o le XRDP, lea e faʻapipiʻiina e le tusitusiga makepkg.shle tasi o loʻo fautuaina i totonu o le fale teu oloa o le 0.9.11, lea e malepe ai le parsing vsock://-addresses, o lea e tatau ai ona e faʻapipiʻi le XRDP mai Git ma le avetaavale Xorg mo ia mai le AUR ma le lima. O le XRDP patch o loʻo ofoina atu i le AUR e fai si tuai, o lea e tatau ai ona e faʻasaʻo le PKGBUILD ma patch ma le lima.

Seʻi o tatou faʻapipiʻi faleoloa ma PKGBUILDs mai le AUR (e masani lava o lenei faiga, faʻatasi ai ma le fausiaina, e otometi e polokalame pei o ioe, ae na faia e le tusitala lenei faiga atoa i luga o se faiga mama):

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

Se'i fa'apipi'i muamua le XRDP lava ia. Tatou tatala le faila PKGBUILD so'o se fa'atonu tusitusiga.

Se'i o tatou fa'asa'o le fa'asologa o le fausiaina. PKGBUILD mo le fausiaina o le XRDP mai le Git e le aofia ai le lagolago vsock pe a fausia, ia tatou faʻatagaina i tatou lava:

 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
 }

I totonu o le patch arch-config.diff, lea e pulea iunite ma XRDP faʻalauiloa tusitusiga i lalo o ala faila o loʻo faʻaaogaina i Arch Linux, o loʻo i ai foi se patch i le tusitusiga. instfiles/xrdp.sh, lea i le taimi na tusia ai na aveesea mai le tufatufaina atu o le XRDP, o lea e tatau ai ona faʻasaʻo lima le patch:

  [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

Sei o tatou tuufaatasia ma faapipii le afifi ma le poloaiga % makepkg --skipchecksums -si (ki --skipchecksums mana'omia e fa'amalo le fa'amaoniaina o fa'amatalaga fa'apogai, talu ai na matou fa'asa'oina ma le lima).

Tatou o i le lisi xorgxrdp-devel-git, a maeʻa ona matou faʻapipiʻiina lea o le afifi ma le faʻatonuga % makepkg -si.

Tatou o i le lisi linux-vm-tools/arch ma fa'agasolo le tusitusiga install-config.sh, lea e setiina XRDP, PolicyKit ma PAM faʻatulagaina:

% sudo ./install-config.sh

Fa'apipi'i le fa'asologa o talatuu use_vsock, lea ua le amanaiaina talu mai le version 0.9.11, o lea seʻi o tatou faʻasaʻo le faila faila /etc/xrdp/xrdp.ini lima:

 ;   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

Fa'aopoopo i le faila ~/.xinitrc faʻalauiloa lau pule faʻamalama / siosiomaga desktop, lea o le a faʻatinoina pe a amata le X server:

% echo "exec i3" > ~/.xinitrc

Se'i tatou tapeina le masini fa'anatura. Matou te faʻagaoioia le felauaiga vsock mo le masini komepiuta e ala i le faʻatinoina o le poloaiga lenei i le PowerShell o se pule:

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

Sei o tatou toe ki le masini masini.

Подключение

O le taimi lava e amata ai le auaunaga XRDP pe a uma ona amata le polokalama, o le a iloa e le vmconnect application lenei mea ma o le a maua le mea i le lisi. View -> Sauniga Fa'aleleia. A filifilia lenei mea, o le a uunaia i tatou e seti le iugafono o lau, ma luga o le tab Punaoa Faalelotoifale I le talanoaga e tatala, e mafai ona e filifilia masini e tuʻuina atu i le RDP session.

Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V
Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V

Tatou fesootai. O le a matou vaʻai i le XRDP login window:

Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V

Ulufale i lou username ma upu faataga.

Faaaoga

O le aoga mai nei togafiti e iloagofie: o le RDP sauniga e sili atu le tali atu nai lo le taimi e galue ai ma se faʻaaliga faʻapitoa e aunoa ma le Faʻaleleia Session. O pusi na pa'ū i totonu o le VM e ala i le RDP o loʻo avanoa i le lisi ${HOME}/shared-drives:

Fa'asa'o le Fa'aleleia o le Sauniga mo malo Arch Linux i Hyper-V

O lo'o galue lelei le laupapa kilipa. E le mafai ona tuʻuina atu lomitusi i totonu; e le gata e le lagolagoina, ae faʻapea foi motu le fa'asolo atu o tisiki. E le aoga foi le leo, ae e leʻi manaʻomia e le tusitala lenei mea. Ina ia mafai ona pu'e ala pupuu keyboard e pei o Alt+Tab, e tatau ona e faalautele le vmconnect ile mata atoa.

Afai mo nisi mafuaʻaga e te manaʻo ai e faʻaoga le RDP client na fausia i totonu o Windows nai lo le vmconnect application pe, mo se faʻataʻitaʻiga, faʻafesoʻotaʻi i lenei masini mai se isi masini, ona e manaʻomia lea e sui le faila. /etc/xrdp/xrdp.ini port i tcp://:3389. Afai e fesoʻotaʻi le masini komepiuta i le Default Switch ma maua faʻasalalauga fesoʻotaʻiga e ala i le DHCP, ona mafai lea ona e faʻafesoʻotaʻi mai le talimalo ile название_машины.mshome.net. E mafai ona e ulufale i totonu o le TTY mai le vmconnect application e ala i le tapeina o le Enhanced Mode.

Punaoa fa'aaogaina:

  1. Hyper-V - Arch Wiki
  2. Lipoti a le bug ile GitHub: 1, 2

puna: www.habr.com

Faaopoopo i ai se faamatalaga