E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V

E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V

ʻO ka hoʻohana ʻana i nā mīkini virtual Linux ma Hyper-V ma waho o ka pahu kahi ʻike ʻoluʻolu iki ma mua o ka hoʻohana ʻana i nā mīkini malihini Windows. ʻO ke kumu o kēia, ʻaʻole i manaʻo mua ʻia ʻo Hyper-V no ka hoʻohana ʻana i ka desktop; ʻAʻole hiki iā ʻoe ke hoʻokomo i kahi pūʻulu o nā mea hoʻohui malihini a loaʻa i ka wikiwiki kiʻi hana, kahi clipboard, nā papa kuhikuhi a me nā leʻaleʻa ʻē aʻe o ke ola, e like me ka mea i VirtualBox.

Hāʻawi ʻo Hyper-V iā ia iho kekahi mau lawelawe hoʻohui - no laila, hiki i nā malihini ke hoʻohana i ka lawelawe kope kope o ka host (VSS), hiki i nā malihini ke hoʻouna i kahi hōʻailona pani, hiki i nā malihini ke hoʻonohonoho i ka manawa ʻōnaehana me ka host virtualization, hiki ke hoʻololi ʻia nā faila mai ka host me ka mīkini virtual (Copy-VMFile ma PowerShell). No kekahi mau ʻōnaehana lawelawe malihini, ʻo ia hoʻi, ʻo Windows, ma ka noi Virtual Machine Connection (vmconnect.exe) Loaʻa ka Enhanced Session Mode, e hana ana ma o ka protocol RDP a ʻae iā ʻoe e hoʻololi i nā polokalamu disk a me nā mea paʻi i ka mīkini virtual, a me ka hoʻohana ʻana i kahi clipboard.

Hana ʻia ka mode Session Enhanced ma waho o ka pahu ma Windows ma Hyper-V ma hope koke o ke kau ʻana. Me nā malihini ma Linux, pono ʻoe e hoʻokomo i kahi kikowaena RDP e kākoʻo ana i ka vsock (kahi kikowaena kikowaena kikowaena kikowaena kūikawā ma Linux i hoʻolālā ʻia no ke kamaʻilio me ka hypervisor). Inā no Ubuntu i ka palapala VMCreate e hele mai ana me Hyper-V ma nā paʻi papapihi o Windows, aia kahi ʻōnaehana mīkini virtual mākaukau kūikawā kahi e hana ai kahi server RDP me vsock. XRDP ua hoʻokomo mua ʻia, a laila me nā māhele ʻē aʻe he mea liʻiliʻi a liʻiliʻi - no ka laʻana, ka mea kākau keia pou Ua hiki iaʻu ke hiki iā ESM ma Fedora. Ma ʻaneʻi e hoʻāla mākou i ka mode Session Enhanced no ka mīkini virtual Arch Linux.

Ke hoʻouka nei i nā lawelawe hoʻohui

ʻOi aku ka maʻalahi o nā mea āpau ma aneʻi, pono mākou e hoʻokomo i ka pūʻolo hyperv mai ka waihona kaiaulu:

% sudo pacman -S hyperv

E hoʻohana i ka VSS a me nā lawelawe hoʻololi metadata a me nā faila:

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

Ke hoʻokomo nei i ka XRDP

waihona waihona linux-vm-mea hana ma GitHub hāʻawi i nā palapala e hoʻokaʻawale i ke kaʻina hana o ka hoʻonohonoho ʻana a me ka hoʻonohonoho ʻana iā XRDP no Arch Linux a me Ubuntu. E hoʻokomo iā Git, inā ʻaʻole i hoʻokomo ʻia, me ka compiler a me nā polokalamu ʻē aʻe no ka hana manual, a laila clone i ka waihona:

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

I ka manawa e kākau ai i kēia ʻatikala, ʻo ka hoʻokuʻu hou loa o XRDP, i kau ʻia e ka palapala makepkg.shʻO ka mea i manaʻo ʻia ma ka waihona ʻo 0.9.11, kahi i haki ai ka parsing vsock://-addresses, no laila pono ʻoe e hoʻokomo iā XRDP mai Git a me ka mea hoʻokele Xorg no ia mai AUR me ka lima. ʻO ka ʻāpana XRDP i hāʻawi ʻia ma ka AUR ʻaʻole i pau ka manawa, no laila pono ʻoe e hoʻoponopono i ka PKGBUILD a hoʻopaʻa lima me ka lima.

E hoʻopili i nā waihona me nā PKGBUILDs mai AUR (ʻo ka maʻamau kēia kaʻina hana, me ke kūkulu ʻana, hoʻohana ʻia e nā polokalamu e like me ia, akā ua hana ka mea kākau i kēia kaʻina hana ma kahi ʻōnaehana maʻemaʻe):

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

E hoʻokomo mua iā XRDP iā ia iho. E wehe kākou i ka faila PKGBUILD kekahi mea hoʻoponopono kikokikona.

E hoʻoponopono kākou i nā ʻāpana kūkulu. PKGBUILD no ke kūkulu ʻana i ka XRDP mai Git ʻaʻole i hoʻokomo i ke kākoʻo vsock i ke kūkulu ʻana, no laila e hoʻohana iā mākou iho:

 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 loko o ka pā arch-config.diff, nāna e hoʻokele i nā ʻāpana a me nā palapala hoʻomaka XRDP ma lalo o nā ala faila i hoʻohana ʻia ma Arch Linux, loaʻa pū kekahi ʻāpana i ka palapala. instfiles/xrdp.sh, i ka manawa i kakau ai ua wehe ʻia mai ka hoʻohele XRDP, no laila e hoʻoponopono lima ʻia ka 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

E hōʻuluʻulu a hoʻokomo i ka pūʻolo me ke kauoha % makepkg --skipchecksums -si (ki --skipchecksums pono e hoʻopau i ka hōʻoia checksum o nā faila kumu, ʻoiai mākou i hoʻoponopono lima iā lākou).

E hele kāua i ka papa kuhikuhi xorgxrdp-devel-git, a laila hoʻohui wale mākou i ka pūʻolo me ke kauoha % makepkg -si.

E hele kāua i ka papa kuhikuhi linux-vm-tools/arch a holo i ka palapala install-config.sh, e hoʻonohonoho ana i nā hoʻonohonoho XRDP, PolicyKit a me PAM:

% sudo ./install-config.sh

Hoʻokomo ʻia ka hoʻonohonoho hoʻoilina use_vsock, ka mea i mālama ʻole ʻia mai ka mana 0.9.11, no laila e hoʻoponopono kākou i ka faila hoʻonohonoho /etc/xrdp/xrdp.ini ma ka 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

Hoʻohui i ka faila ~/.xinitrc Ke hoʻomaka nei i kāu mea hoʻokele puka makani / kaiapuni papapihi, e hoʻokō ʻia i ka wā e hoʻomaka ai ke kikowaena X:

% echo "exec i3" > ~/.xinitrc

E hoʻopau kākou i ka mīkini virtual. Hoʻoikaika mākou i ka lawe ʻana i ka vsock no ka mīkini virtual ma ka holo ʻana i kēia kauoha ma PowerShell ma ke ʻano he luna:

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

E ho'ā hou kāua i ka mīkini virtual.

Подключение

I ka hoʻomaka ʻana o ka lawelawe XRDP ma hope o ka hoʻomaka ʻana o ka ʻōnaehana, e ʻike ka noi vmconnect i kēia a loaʻa ka mea i ka papa kuhikuhi. View -> Kau Hoʻonui. I ke koho ʻana i kēia mea, e koi ʻia mākou e hoʻonohonoho i ka hoʻonā pale, a ma ka pā Punawai Kūloko Ma ke kamaʻilio e wehe ana, hiki iā ʻoe ke koho i nā mea hana e hoʻouna ʻia i ka hālāwai RDP.

E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V
E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V

E hoʻohui kāua. E ʻike mākou i ka puka aniani komo XRDP:

E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V

E hoʻokomo i kāu inoa inoa a me ka ʻōlelo huna.

E hoʻohana

ʻIke ʻia ka pōmaikaʻi o kēia mau manipulations: ʻoi aku ka maikaʻi o ka hana RDP ma mua o ka hana ʻana me kahi hōʻike virtual me ka Enhanced Session. Loaʻa nā disks i loko o ka VM ma o RDP i ka papa kuhikuhi ${HOME}/shared-drives:

E ho'ā i ke ʻano Session Enhanced no nā malihini Arch Linux ma Hyper-V

Hana maikaʻi ka papa ʻoki. ʻAʻole hiki iā ʻoe ke hoʻouna i nā mea paʻi i loko; ʻaʻole kākoʻo wale ʻia kēia, akā pū kekahi haki i ka hoʻouna ʻana i ka disk. ʻAʻole pono ke kani, akā ʻaʻole pono ka mea kākau i kēia. I mea e hopu ai i nā ʻaoʻao pōkole e like me Alt+Tab, pono ʻoe e hoʻonui i ka vmconnect i ka pale piha.

Inā no kekahi kumu makemake ʻoe e hoʻohana i ka mea kūʻai aku RDP i kūkulu ʻia i loko o Windows ma kahi o ka noi vmconnect a i ʻole, no ka laʻana, hoʻopili i kēia mīkini mai kahi mīkini ʻē aʻe, a laila pono ʻoe e hoʻololi i ka faila. /etc/xrdp/xrdp.ini port maluna o tcp://:3389. Inā pili ka mīkini virtual i Default Switch a loaʻa iā ʻoe nā hoʻonohonoho pūnaewele ma o DHCP, a laila hiki iā ʻoe ke hoʻopili iā ia mai ka host ma название_машины.mshome.net. Hiki iā ʻoe ke komo i loko o TTY mai ka noi vmconnect ma ka hoʻopau ʻana i ke ʻano Enhanced.

Nā kumu hoʻohana:

  1. Hyper-V - Arch Wiki
  2. Nā hōʻike bug ma GitHub: 1, 2

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka