Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin

Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin

Bikaranîna makîneyên virtual Linux-ê di Hyper-V-ê de ji qutîkê ve ezmûnek piçûktir e ji karanîna makîneyên mêvanên Windows-ê. Sedema vê yekê ev e ku Hyper-V bi eslê xwe ji bo karanîna sermaseyê ne hate armanc kirin; hûn nekarin tenê pakêtek lêzêdekirina mêvanan saz bikin û bilezkirina grafîkên fonksiyonel, clipboard, pelrêça hevpar û şahiyên din ên jiyanê bistînin, wekî ku di VirtualBox de çêdibe.

Hyper-V bixwe peyda dike gelek xizmetên entegrasyonê - Ji ber vê yekê, mêvan dikarin karûbarê kopîkirina siya mêvandar (VSS) bikar bînin, mêvan dikarin îşaretek girtîbûnê bişînin, mêvan dikarin dema pergalê bi mêvandarê virtualbûnê re hevdeng bikin, pelan dikarin ji mêvandarê bi makîneya virtual re werin guheztin (Copy-VMFile di PowerShell de). Ji bo hin pergalên xebitandinê yên mêvan, di nav de, bê guman, Windows, di serîlêdana Girêdana Makîneya Virtual de (vmconnect.exe) Moda Danişînê ya Pêşkeftî heye, ku bi protokola RDP-yê dixebite û dihêle hûn cîhazên dîskê û çaperan li makîneya virtual veguhezînin, û her weha clipboardek hevpar bikar bînin.

Moda Danişîna Pêşkeftî di Windows-ê de di Hyper-V-ê de yekser piştî sazkirinê ji qutiyê dixebite. Digel mêvanên li Linux-ê, hûn hewce ne ku serverek RDP-yê ku vsock-ê piştgirî dike saz bikin (cihê navnîşana torê ya virtual ya taybetî ya li Linux-ê ku ji bo danûstendina bi hypervisor re hatî çêkirin). Ger ji bo Ubuntu di serîlêdana VMCreate ya ku bi Hyper-V re li ser çapên sermaseya Windows-ê tê, şablonek makîneya virtual ya amadekirî ya taybetî heye ku tê de serverek RDP bi vsock re dixebite. XRDP jixwe pêş-sazkirî ye, wê hingê bi belavkirinên din re ew kêmtir û kêmtir zelal e - mînakî, nivîskar ev post Min karî ESM li Fedora çalak bikim. Li vir em ê Moda Danişîna Pêşkeftî ji bo makîneya virtual Arch Linux çalak bikin.

Sazkirina xizmetên entegrasyonê

Li vir her tişt kêm-zêde hêsan e, em tenê hewce ne ku pakêtê saz bikin hyperv ji depoya civakê:

% sudo pacman -S hyperv

Werin em karûbarên VSS û danûstendinê çalak bikin metadata û pelan:

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

Sazkirina XRDP

depo linux-vm-tools li ser GitHub skrîptan peyda dike ku pêvajoya sazkirin û mîhengkirina XRDP ji bo Arch Linux û Ubuntu otomatîk dike. Werin em Git-ê saz bikin, heke ew jixwe nehatibe saz kirin, digel berhevkar û nermalava din ji bo avakirina destan, û dûv re depoyê klon bikin:

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

Di dema nivîsandina vê gotarê de, serbestberdana herî dawî ya XRDP, ku ji hêla skrîptê ve hatî saz kirin makepkg.shya ku di depoyê de tê pêşniyar kirin 0.9.11 e, ku tê de parsek şikestî ye vsock://-navnîşan, ji ber vê yekê hûn neçar in ku XRDP ji Git û ajokarê Xorg ji bo wê ji AUR bi destan saz bikin. Patcha XRDP ya ku di AUR-ê de tê pêşkêş kirin jî hinekî kevnar e, ji ber vê yekê hûn neçar in ku PKGBUILD-ê biguherînin û bi destan patch bikin.

Werin em depoyên bi PKGBUILD-ên ji AUR-ê klon bikin (bi gelemperî ev prosedur, ligel çêkirinê, ji hêla bernameyên mîna Yay, lê nivîskar ev prosedur tev li ser pergalek paqij kir):

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

Werin em pêşî XRDP bixwe saz bikin. Ka em pelê vekin PKGBUILD her edîtorê nivîsê.

Ka em parametreyên avakirinê biguherînin. PKGBUILD ji bo avakirina XRDP ji Git di dema çêkirinê de piştgiriya vsock nake, ji ber vê yekê em bi xwe wê çalak bikin:

 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
 }

Di paçê de arch-config.diff, ku yekîneyan û nivîsarên destpêkirina XRDP di bin rêyên pelan ên ku di Arch Linux-ê de têne bikar anîn de rêve dibe, di heman demê de pişkek ji nivîsê re jî heye. instfiles/xrdp.sh, ku di dema nivîsandinê de hate rakirin ji belavkirina XRDP, ji ber vê yekê pêdivî ye ku patch bi destan were guherandin:

  [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 em pakêtê bi fermanê berhev bikin û saz bikin % makepkg --skipchecksums -si (qûfle --skipchecksums pêdivî ye ku verastkirina kontrolê ya pelên çavkaniyê neçalak bike, ji ber ku me wan bi destan guhert).

Ka em biçin pelrêça xorgxrdp-devel-git, piştî ku em bi tenê bi fermanê pakêtê kom dikin % makepkg -si.

Ka em biçin pelrêça linux-vm-tools/arch û senaryoyê bimeşînin install-config.sh, ku mîhengên XRDP, PolicyKit û PAM-ê destnîşan dike:

% sudo ./install-config.sh

Skrîpt mîhenga mîras saz dike use_vsock, ya ku ji guhertoya 0.9.11 ve hatî paşguh kirin, ji ber vê yekê em pelê veavakirinê biguherînin /etc/xrdp/xrdp.ini bi destan:

 ;   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

Li pelê zêde bike ~/.xinitrc destpêkirina rêveberê pencereya xweya bijare / hawîrdora sermaseyê, ya ku dê gava ku servera X dest pê dike were darve kirin:

% echo "exec i3" > ~/.xinitrc

Werin em makîneya virtual vemirînin. Em veguheztina vsock ji bo makîneya virtual bi xebitandina fermana jêrîn li PowerShell-ê wekî rêveber çalak dikin:

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

Ka em dîsa makîneya virtual vekin.

Подключение

Hema ku karûbarê XRDP dest pê dike piştî ku pergalê dest pê dike, serîlêdana vmconnect dê vê yekê tespît bike û tişt dê di menuyê de peyda bibe. Dîtinî -> Danişîna Enhanced. Dema ku vê babetê hilbijêrin, dê ji me were xwestin ku çareseriya ekranê, û li ser tabê saz bikin Avkaniyên herêmî Di diyaloga ku vedibe, hûn dikarin cîhazên ku di danişîna RDP de werin şandin hilbijêrin.

Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin
Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin

Werin em girêdan. Em ê pencereya têketina XRDP bibînin:

Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin

Navê bikarhêner û şîfreya xwe binivîse.

Bikar bînin

Feydeya van manîpulasyonan diyar e: danişîna RDP ji dema ku bi dîmenderek virtual re bêyî Danişîna Pêşkeftî dixebitin pirtir bersivdar dixebite. Dîskên ku di hundurê VM-ê de bi navgîniya RDP ve hatine avêtin di pelrêçê de hene ${HOME}/shared-drives:

Ji bo mêvanên Arch Linux-ê di Hyper-V de Moda Danişîna Pêşkeftî çalak bikin

Clipboard baş dixebite. Hûn nekarin çapkeran li hundur bişînin; ev ne tenê nayê piştgirî kirin, lê di heman demê de jî şandina dîskê dişkîne. Deng jî naxebite, lê nivîskar hewcedarê vê yekê nebû. Ji bo ku hûn kurtebirên klavyeyê yên mîna Alt+Tab bigirin, hûn hewce ne ku vmconnect li ser ekrana tevahî berfireh bikin.

Ger ji ber hin sedeman hûn dixwazin li şûna serîlêdana vmconnect muwekîlê RDP-ya ku di Windows-ê de hatî çêkirin bikar bînin an, mînakî, ji makîneyek din bi vê makîneyê ve girêdin, wê hingê hûn hewce ne ku pelê biguherînin. /etc/xrdp/xrdp.ini port li ser tcp://:3389. Ger makîneya virtual bi Guhestina Default ve girêdayî ye û mîhengên torê bi DHCP-ê distîne, wê hingê hûn dikarin ji mêvandarê pê ve girêdayî bin. название_машины.mshome.net. Hûn dikarin tenê ji serîlêdana vmconnect bi vegirtina Moda Pêşkeftî têkevin TTY.

Çavkaniyên bikaranîn:

  1. Hyper-V - Arch Wiki
  2. Raporên çewtiyê li ser GitHub: 1, 2

Source: www.habr.com

Add a comment