Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V

Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V

Iji Linux mebere igwe na Hyper-V n'ime igbe bụ ahụmịhe na-adịchaghị mma karịa iji igwe ndị ọbịa Windows. Ihe kpatara nke a bụ na Hyper-V abụghị maka iji desktọpụ na mbụ; ị nweghị ike ịwụnye ngwungwu mgbakwunye ndị ọbịa wee nweta ngwa ngwa eserese na-arụ ọrụ, bọọdụ, akwụkwọ ndekọ aha na ọ joyụ ndị ọzọ nke ndụ, dị ka ọ na-eme na VirtualBox.

Hyper-V n'onwe ya na-enye ọtụtụ ọrụ mwekota - yabụ, ndị ọbịa nwere ike iji ọrụ nnomi nke onye ọbịa (VSS), ndị ọbịa nwere ike izipu akara mmechi, ndị ọbịa nwere ike mekọrịta oge sistemụ na onye nnabata virtualization, faịlụ nwere ike gbanwere site na onye ọbịa na igwe mebere (Copy-VMFile na PowerShell). Maka ụfọdụ sistemụ arụmọrụ ndị ọbịa, gụnyere, n'ezie, Windows, na ngwa Njikọ igwe mebere (vmconnect.exe) Ọnọdụ nnọkọ dịwanye mma, na-arụ ọrụ site na usoro RDP ma na-enye gị ohere ịnyefe ngwaọrụ diski na ndị na-ebi akwụkwọ na igwe mebere, yana iji bọọdụ kekọrịtara.

Ọnọdụ nnọkọ emelitere na-arụ ọrụ na igbe dị na Windows na Hyper-V ozugbo echichi. Site na ndị ọbịa na Linux, ịkwesịrị ịwụnye ihe nkesa RDP na-akwado vsock (oghere adreesị netwọk mebere pụrụ iche na Linux emebere maka nkwurịta okwu na hypervisor). Ọ bụrụ na maka Ubuntu na ngwa VMCreate nke na-abịa na Hyper-V na mbipụta desktọpụ nke Windows, enwere ụdị igwe eji arụ ọrụ akwadoro pụrụ iche nke sava RDP na-arụ ọrụ na vsock. XRDP etinyelarịrịrị ya, mgbe ahụ na nkesa ndị ọzọ ọ na-adị ntakịrị ma doo anya - dịka ọmụmaatụ, onye edemede nke a post Ejisiri m ike rụọ ọrụ ESM na Fedora. N'ebe a, anyị ga-eme ka ọnọdụ nnọkọ nkwalite maka Arch Linux mebere igwe.

Ịwụnye ọrụ ntinye

Ihe niile dị mfe ma ọ bụ dị mfe ebe a, naanị anyị kwesịrị ịwụnye ngwugwu ahụ hyperv site na ebe nchekwa obodo:

% sudo pacman -S hyperv

Ka anyị mee ka VSS na ọrụ mgbanwe metadata na faịlụ:

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

Ịwụnye XRDP

ebe nchekwa linux-vm-ngwaọrụ na GitHub na-enye scripts na-emezi usoro nke ịwụnye na ịhazi XRDP maka Arch Linux na Ubuntu. Ka anyị tinye Git, ma ọ bụrụ na etinyebeghị ya, yana onye nchịkọta na ngwanrọ ndị ọzọ maka iwuli akwụkwọ ntuziaka, wee mechie ebe nchekwa ahụ:

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

N'oge edere akụkọ a, ntọhapụ ọhụrụ nke XRDP, nke etinyere na edemede ahụ makepkg.shnke a tụrụ aro na ebe nchekwa ahụ bụ 0.9.11, nke ntughari agbajiwo vsock://-adreesị, yabụ ị ga-etinye XRDP site na Git na onye ọkwọ ụgbọ ala Xorg maka ya site na AUR. Ngwunye XRDP enyere na AUR adịkwaghị agwụla, yabụ ị ga-eji aka dezie PKGBUILD na patch.

Ka anyị jiri PKGBUILD si na AUR mechie ebe nchekwa (na-emekarị usoro a, yana ihe owuwu ahụ, na-arụ ọrụ site na mmemme dị ka Ee, ma odee mere usoro a dum na usoro dị ọcha):

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

Ka anyị buru ụzọ wụnye XRDP n'onwe ya. Ka anyị mepee faịlụ ahụ PKGBUILD editọ ederede ọ bụla.

Ka anyị dezie ihe nrụpụta. PKGBUILD maka iwulite XRDP site na Git anaghị agụnye nkwado vsock mgbe a na-ewu ụlọ, yabụ ka anyị mee ya n'onwe anyị:

 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
 }

N'ime patch arch-config.diff, nke na-ejikwa nkeji na edemede mmalite XRDP n'okpuru ụzọ faịlụ eji na Arch Linux, nwekwara ihe mgbochi na edemede ahụ. instfiles/xrdp.sh, nke n'oge ederede ewepụrụ site na nkesa XRDP, yabụ a ga-eji aka dezie patch ahụ:

  [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

Ka anyị chịkọta ma wụnye ngwugwu na iwu ahụ % makepkg --skipchecksums -si ( igodo --skipchecksums achọrọ iji gbanyụọ nkwenye checksum nke faịlụ isi mmalite, ebe anyị ji aka dezie ha).

Ka anyị gaa na ndekọ xorgxrdp-devel-git, mgbe nke ahụ gasịrị, anyị na-ejikọta ngwugwu ahụ na iwu ahụ % makepkg -si.

Ka anyị gaa na ndekọ linux-vm-tools/arch ma gbaa edemede ahụ install-config.sh, nke na-edozi ntọala XRDP, PolicyKit na PAM:

% sudo ./install-config.sh

Edemede na-etinye ntọala ntọala use_vsock, nke leghaara anya kemgbe ụdị 0.9.11, yabụ ka anyị dezie faịlụ nhazi /etc/xrdp/xrdp.ini aka:

 ;   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

Tinye na faịlụ ~/.xinitrc ibido njikwa windo/desktọpụ masịrị gị, nke a ga-egbu mgbe ihe nkesa X malitere:

% echo "exec i3" > ~/.xinitrc

Ka anyị gbanyụọ igwe mebere. Anyị na-arụ ọrụ ụgbọ njem vsock maka igwe mebere site na iji iwu a na PowerShell dị ka onye nchịkwa:

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

Ka anyị gbanye igwe mebere ọzọ.

Akwụsị

Ozugbo ọrụ XRDP malitere mgbe sistemụ ahụ malitechara, ngwa vmconnect ga-achọpụta nke a na ihe ahụ ga-adị na menu. View -> Oge emelitere. Mgbe ị na-ahọrọ ihe a, a ga-akpali anyị ịtọ mkpebi ihuenyo, yana na taabụ Ngwa mpaghara Na mkparịta ụka na-emepe, ị ga-enwe ike ịhọrọ ngwaọrụ ndị a ga-ebuga na nnọkọ RDP.

Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V
Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V

Ka anyị jikọọ. Anyị ga-ahụ windo nbanye XRDP:

Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V

Tinye aha njirimara na paswọọdụ gị.

Jiri

A na-ahụta uru sitere na nhụsianya ndị a: nnọkọ RDP na-arụ ọrụ nke ọma karịa mgbe ị na-arụ ọrụ na ngosipụta mebere na-enweghị Mmekọahụ Oge. Diski ndị etinyere n'ime VM site na RDP dị na ndekọ ${HOME}/shared-drives:

Kwado ọnọdụ nnọkọ emelitere maka ndị ọbịa Arch Linux na Hyper-V

Klipbọọdụ ahụ na-arụ ọrụ nke ọma. Ị nweghị ike ibugharị ndị nbipute n'ime; nke a abụghị naanị akwadoro, kamakwa na-agbaji mbugharị diski. Ụda ahụ anaghịkwa arụ ọrụ, mana onye edemede ahụ achọghị nke a. Iji weghara ụzọ mkpirisi ahụigodo dị ka Alt+Tab, ịkwesịrị ịgbasa vmconnect na ihuenyo zuru oke.

Ọ bụrụ n'ihi ihe ụfọdụ ịchọrọ iji onye ahịa RDP wuru na Windows kama ngwa vmconnect ma ọ bụ, dịka ọmụmaatụ, jikọọ na igwe a site na igwe ọzọ, mgbe ahụ ị ga-achọ ịgbanwe faịlụ ahụ. /etc/xrdp/xrdp.ini port on tcp://:3389. Ọ bụrụ na ejikọrọ igwe mebere ya na Default Switch wee nweta ntọala netwọkụ site na DHCP, mgbe ahụ ị nwere ike jikọọ na ya site na onye ọbịa. название_машины.mshome.net. Ị nwere ike ịbanye na TTY site na ngwa vmconnect site na gbanyụọ ọnọdụ emelitere.

Isi mmalite ejiri:

  1. Hyper-V - Arch Wiki
  2. Bug na-akọ na GitHub: 1, 2

isi: www.habr.com

Tinye a comment