Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V

Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V

Lilo awọn ẹrọ foju Linux ni Hyper-V lati inu apoti jẹ iriri itunu diẹ diẹ ju lilo awọn ẹrọ alejo Windows. Idi fun eyi ni pe Hyper-V ko ni ipilẹṣẹ fun lilo tabili tabili; o ko le fi sori ẹrọ package kan ti awọn afikun alejo ki o gba isare awọn eya aworan iṣẹ, agekuru agekuru kan, awọn ilana pinpin ati awọn ayọ miiran ti igbesi aye, bi o ti ṣẹlẹ ni VirtualBox.

Hyper-V ara pese orisirisi awọn iṣẹ Integration - nitorinaa, awọn alejo le lo iṣẹ ẹda ẹda ojiji (VSS), awọn alejo le fi ami ifihan tiipa kan ranṣẹ, awọn alejo le muuṣiṣẹpọ akoko eto pẹlu agbalejo agbara agbara, awọn faili le paarọ lati ọdọ agbalejo pẹlu ẹrọ foju (Copy-VMFile ni PowerShell). Fun diẹ ninu awọn ọna ṣiṣe awọn alejo, pẹlu, dajudaju, Windows, ninu ohun elo Asopọmọ ẹrọ Foju (vmconnect.exe) Ipo Ipele Imudara wa, ṣiṣẹ nipasẹ ilana RDP ati gbigba ọ laaye lati gbe awọn ẹrọ disiki ati awọn atẹwe si ẹrọ foju, bakannaa lo iwe-atẹwe ti o pin.

Ipo Ikoni Imudara ṣiṣẹ jade kuro ninu apoti ni Windows ni Hyper-V lẹsẹkẹsẹ lẹhin fifi sori ẹrọ. Pẹlu awọn alejo lori Lainos, o nilo lati fi sori ẹrọ olupin RDP kan ti o ṣe atilẹyin vsock (aaye adirẹsi nẹtiwọọki foju pataki kan ni Linux ti a ṣe apẹrẹ fun ibaraẹnisọrọ pẹlu hypervisor). Ti o ba jẹ fun Ubuntu ninu ohun elo VMCreate ti o wa pẹlu Hyper-V lori awọn itọsọna tabili tabili ti Windows, awoṣe ẹrọ foju ti a pese silẹ pataki wa ninu eyiti olupin RDP ti n ṣiṣẹ pẹlu vsock XRDP ti fi sori ẹrọ tẹlẹ, lẹhinna pẹlu awọn ipinpinpin miiran o kere ati ki o kere si - fun apẹẹrẹ, onkọwe yi post Mo ti ṣakoso lati mu ESM ṣiṣẹ ni Fedora. Nibi a yoo mu Ipo Imudara Imudara ṣiṣẹ fun ẹrọ foju Arch Linux.

Fifi awọn iṣẹ Integration sori ẹrọ

Ohun gbogbo jẹ diẹ sii tabi kere si rọrun nibi, a kan nilo lati fi sori ẹrọ package naa hyperv lati ibi ipamọ agbegbe:

% sudo pacman -S hyperv

Jẹ ki a mu VSS ṣiṣẹ ati awọn iṣẹ paṣipaarọ metadata ati awọn faili:

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

Fifi XRDP sori ẹrọ

ibi ipamọ linux-vm-irinṣẹ lori GitHub n pese awọn iwe afọwọkọ ti o ṣe adaṣe ilana ti fifi sori ẹrọ ati tunto XRDP fun Arch Linux ati Ubuntu. Jẹ ki a fi Git sori ẹrọ, ti ko ba ti fi sii tẹlẹ, pẹlu akopọ kan ati sọfitiwia miiran fun awọn kikọ afọwọṣe, ati lẹhinna ẹda ibi ipamọ naa:

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

Ni akoko kikọ nkan yii, itusilẹ to ṣẹṣẹ julọ ti XRDP, eyiti o fi sii nipasẹ iwe afọwọkọ naa makepkg.sheyi ti a daba ni ibi ipamọ jẹ 0.9.11, nínú èyí tí ìtúpalẹ̀ ti fọ́ vsock://Awọn adirẹsi, nitorinaa iwọ yoo ni lati fi sori ẹrọ XRDP lati Git ati awakọ Xorg fun AUR pẹlu ọwọ. Patch XRDP ti a nṣe ni AUR tun ti pẹ diẹ, nitorinaa iwọ yoo ni lati ṣatunkọ PKGBUILD ati patch pẹlu ọwọ.

Jẹ ki a ṣe awọn ibi ipamọ oniye pẹlu PKGBUILDs lati AUR (nigbagbogbo ilana yii, pẹlu kikọ, jẹ adaṣe nipasẹ awọn eto bii yay, ṣugbọn onkọwe ṣe gbogbo ilana yii lori eto mimọ):

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

Jẹ ki a fi sori ẹrọ XRDP funrararẹ ni akọkọ. Jẹ ki a ṣii faili naa PKGBUILD eyikeyi ọrọ olootu.

Jẹ ki ká satunkọ awọn Kọ sile. PKGBUILD fun kikọ XRDP lati Git ko pẹlu atilẹyin vsock nigba kikọ, nitorinaa jẹ ki a mu ki o funra wa:

 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
 }

Ninu alemo arch-config.diff, eyiti o ṣakoso awọn iwọn ati awọn iwe afọwọkọ ifilọlẹ XRDP labẹ awọn ọna faili ti a lo ni Arch Linux, tun ni alemo si iwe afọwọkọ naa. instfiles/xrdp.sh, eyi ti o wa ni akoko kikọ ti yọ kuro lati pinpin XRDP, nitorinaa alemo naa yoo ni lati ṣatunkọ pẹlu ọwọ:

  [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

Jẹ ki a ṣe akopọ ati fi sori ẹrọ package pẹlu aṣẹ naa % makepkg --skipchecksums -si (bọtini --skipchecksums nilo lati mu ijẹrisi checksum kuro ti awọn faili orisun, niwọn igba ti a ṣatunkọ wọn pẹlu ọwọ).

Jẹ ká lọ si liana xorgxrdp-devel-git, lẹhin eyi a nìkan ṣajọpọ package pẹlu aṣẹ naa % makepkg -si.

Jẹ ká lọ si liana linux-vm-tools/arch ati ṣiṣe awọn akosile install-config.sh, eyiti o ṣeto XRDP, PolicyKit ati awọn eto PAM:

% sudo ./install-config.sh

Iwe afọwọkọ nfi eto iní sori ẹrọ use_vsock, eyiti a ti bikita lati ẹya 0.9.11, nitorinaa jẹ ki a ṣatunkọ faili iṣeto ni /etc/xrdp/xrdp.ini pẹlu ọwọ:

 ;   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

Fikun-un si faili ~/.xinitrc ṣe ifilọlẹ oluṣakoso window ti o fẹ / agbegbe tabili tabili, eyiti yoo ṣiṣẹ nigbati olupin X ba bẹrẹ:

% echo "exec i3" > ~/.xinitrc

Jẹ ká pa awọn foju ẹrọ. A mu irinna vsock ṣiṣẹ fun ẹrọ foju nipa ṣiṣe pipaṣẹ atẹle ni PowerShell bi olutọju:

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

Jẹ ki a tan-an ẹrọ foju lẹẹkansi.

Ilana

Ni kete ti iṣẹ XRDP bẹrẹ lẹhin ti eto naa bẹrẹ, ohun elo vmconnect yoo rii eyi ati pe ohun naa yoo wa ninu akojọ aṣayan. Wo -> Imudara Igba. Nigbati o ba yan nkan yii, a yoo ti ọ lati ṣeto ipinnu iboju, ati lori taabu Awọn alaye agbegbe Ninu ifọrọwerọ ti o ṣi, o le yan awọn ẹrọ lati firanṣẹ siwaju si igba RDP.

Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V
Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V

Jẹ ki a sopọ. A yoo rii window iwọle XRDP:

Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V

Tẹ orukọ olumulo ati ọrọ igbaniwọle rẹ sii.

Lo

Anfaani lati awọn ifọwọyi wọnyi jẹ akiyesi: igba RDP n ṣiṣẹ diẹ sii ni idahun ju nigbati o n ṣiṣẹ pẹlu ifihan foju laisi Imudara Ipese. Awọn disiki silẹ inu VM nipasẹ RDP wa ninu itọsọna naa ${HOME}/shared-drives:

Mu Ipo Imudara ṣiṣẹ fun awọn alejo Arch Linux ni Hyper-V

Awọn agekuru ṣiṣẹ daradara. O ko le dari awọn atẹwe inu; eyi kii ṣe atilẹyin nikan, ṣugbọn pẹlu fi opin si disk firanšẹ siwaju. Ohun naa tun ko ṣiṣẹ, ṣugbọn onkọwe ko nilo eyi. Lati le gba awọn ọna abuja keyboard bii Alt + Tab, o nilo lati faagun vmconnect si iboju kikun.

Ti o ba jẹ fun idi kan o fẹ lo alabara RDP ti a ṣe sinu Windows dipo ohun elo vmconnect tabi, fun apẹẹrẹ, sopọ si ẹrọ yii lati ẹrọ miiran, lẹhinna o yoo nilo lati yi faili naa pada. /etc/xrdp/xrdp.ini port on tcp://:3389. Ti ẹrọ foju ba ti sopọ si Yipada Aiyipada ati gba awọn eto nẹtiwọọki nipasẹ DHCP, lẹhinna o le sopọ si ọdọ agbalejo ni название_машины.mshome.net. O le wọle si TTY nikan lati ohun elo vmconnect nipa pipa Ipo Imudara.

Awọn orisun ti a lo:

  1. Hyper-V - Arch Wiki
  2. Awọn ijabọ kokoro lori GitHub: 1, 2

orisun: www.habr.com

Fi ọrọìwòye kun