Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V

Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V

Kutumia mashine pepe kwenye Linux katika Hyper-V nje ya boksi ni uzoefu usio na raha kidogo kuliko na mgeni Windows-машинами. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΠΌΡƒ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Hyper-V всС ΠΆΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π΅ прСдназначался для дСсктопного пользования; нСльзя просто Π²Π·ΡΡ‚ΡŒ, ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ гостСвых Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ работоспособноС графичСскоС ускорСниС, Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΎΠ±Ρ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ радости ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠ°ΠΊ это происходит Π² VirtualBox.

Hyper-V yenyewe hutoa huduma nyingi za ujumuishaji - kwa hivyo, wageni wanaweza kutumia huduma ya nakala ya kivuli (VSS) ya mwenyeji, wageni wanaweza kutuma ishara ya kuzima, wageni wanaweza kusawazisha wakati wa mfumo na mwenyeji wa uboreshaji, faili zinaweza kubadilishwa na mashine ya kawaida kutoka kwa mwenyeji (Copy-VMFile Π² PowerShell). Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… гостСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π² числС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, находится ΠΈ Windows, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Virtual Machine Connection (vmconnect.exe) Hali ya Kipindi iliyoboreshwa inapatikana, ambayo inafanya kazi kupitia itifaki ya RDP na hukuruhusu kusambaza vifaa vya diski na vichapishi kwenye mashine pepe, na pia kutumia ubao wa kunakili ulioshirikiwa.

Enhanced Session Mode ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Windows Π² Hyper-V сразу послС установки. Π‘ гостями Π½Π° Linux Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ RDP-сСрвСр, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ vsock (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ сСтСвоС адрСсноС пространство Π² Linux, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠΌ). Если для Ubuntu Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ VMCreate, ΠΈΠ΄ΡƒΡ‰ΠΈΠΌ с Hyper-V Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… рСдакциях Windows, Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ шаблон Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с vsock RDP-сСрвСр XRDP tayari imewekwa, basi kwa usambazaji mwingine ni chini na wazi - kwa mfano, mwandishi chapisho hili ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ESM Π² Fedora. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ Enhanced Session Mode для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Arch Linux.

Kufunga huduma za ujumuishaji

Kila kitu ni rahisi zaidi au kidogo hapa, tunahitaji tu kusanikisha kifurushi hyperv kutoka kwa hazina ya jamii:

% sudo pacman -S hyperv

Washa huduma za VSS, kubadilishana metadata na faili:

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

Ufungaji wa XRDP

hazina zana za linux-vm Π½Π° GitHub прСдоставляСт скрипты, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ процСсс установки ΠΈ настройки XRDP, для Arch Linux ΠΈ Ubuntu. Установим Git, Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ установлСн, вмСстС с компилятором ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ софтом для Ρ€ΡƒΡ‡Π½Ρ‹Ρ… сборок, послС Ρ‡Π΅Π³ΠΎ склонируСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

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

Wakati wa kuandika hii, kutolewa hivi karibuni kwa XRDP, ambayo imewekwa na script makepkg.shiliyopendekezwa kwenye ghala ni 0.9.11, ambamo uchanganuzi umevunjwa vsock://-addresses, kwa hivyo lazima usakinishe XRDP kutoka kwa Git na kiendeshi cha Xorg kwa hiyo kutoka kwa AUR kwa mikono. Kiraka cha XRDP kinachotolewa katika AUR pia kimepitwa na wakati, kwa hivyo itabidi uhariri PKGBUILD na kiraka wewe mwenyewe.

Tunaunganisha hazina na PKGBUILDs kutoka kwa AUR (kawaida utaratibu huu, pamoja na mkusanyiko, hujiendesha kiotomatiki na programu kama vile yay, lakini mwandishi alifanya utaratibu huu wote kwenye mfumo safi):

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

Wacha tusakinishe XRDP yenyewe kwanza. Hebu tufungue faili PKGBUILD mhariri wa maandishi yoyote.

Hebu tuhariri vigezo vya kujenga. PKGBUILD ya kujenga XRDP kutoka Git haijumuishi usaidizi wa vsock kwenye ujenzi, kwa hivyo wacha tuiwezeshe wenyewe:

 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
 }

Katika kiraka arch-config.diff, правящСм ΡŽΠ½ΠΈΡ‚Ρ‹ ΠΈ скрипты запуска XRDP ΠΏΠΎΠ΄ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Arch Linux, содСрТится Π² Ρ‚ΠΎΠΌ числС ΠΏΠ°Ρ‚Ρ‡ ΠΊ скрипту instfiles/xrdp.sh, ambayo wakati wa kuandika iliondolewa kutoka kwa usambazaji wa XRDP, kwa hivyo kiraka kitalazimika kuhaririwa kwa mikono:

  [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

Jenga na usakinishe kifurushi kwa amri % makepkg --skipchecksums -si (ufunguo --skipchecksums inahitajika ili kuzima uthibitishaji wa checksum wa faili chanzo, kwa kuwa tulizihariri wenyewe).

Hebu tuende kwenye saraka xorgxrdp-devel-git, baada ya hapo tunaunda kifurushi kwa amri % makepkg -si.

Hebu tuende kwenye saraka linux-vm-tools/arch na endesha hati install-config.sh, ambayo huweka mipangilio ya XRDP, PolicyKit na PAM:

% sudo ./install-config.sh

Hati husakinisha mpangilio wa urithi use_vsock, ambayo imepuuzwa tangu toleo la 0.9.11, kwa hivyo wacha tuhariri faili ya usanidi /etc/xrdp/xrdp.ini kwa mikono:

 ;   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

Ongeza kwenye faili ~/.xinitrc kuzindua meneja wa dirisha/mazingira ya mezani unayopendelea, ambayo yatatekelezwa seva ya X itakapoanzishwa:

% echo "exec i3" > ~/.xinitrc

Hebu tuzime mashine ya mtandaoni. Washa usafiri wa vsock kwa VM kwa kutekeleza amri ifuatayo katika PowerShell kama msimamizi:

PS Admin > Set-VM -VMName ΠΠΠ—Π’ΠΠΠ˜Π•_МАШИНЫ -EnhancedSessionTransportType HvSocket

Wacha tuwashe tena mashine pepe.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Mara tu huduma ya XRDP inapoanza baada ya mfumo kuanza, programu ya vmconnect itaamua hili na kipengee cha menyu kitapatikana. Angalia -> Kipindi kilichoboreshwa. Unapochagua kipengee hiki, tutaulizwa kuweka azimio la skrini, na kwenye kichupo Rasilimali za Mitaa kwenye kidirisha kinachofungua, unaweza kuchagua vifaa vinavyotumwa ndani ya kipindi cha RDP.

Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V
Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V

Hebu tuunganishe. Tutaona dirisha la kuingia la XRDP:

Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V

Ingiza jina lako la mtumiaji na nenosiri.

Matumizi ya

Faida kutokana na upotoshaji huu inaonekana: kipindi cha RDP hufanya kazi kwa kuitikia zaidi kuliko wakati wa kufanya kazi na onyesho pepe bila Kipindi Kilichoboreshwa. Diski zilizotumwa ndani ya VM kupitia RDP zinapatikana kwenye saraka ${HOME}/shared-drives:

Kuwezesha Hali ya Kipindi Kilichoboreshwa kwa ajili ya Arch Linux-wageni katika Hyper-V

Ubao wa kunakili unafanya kazi vizuri. Huwezi kutupa vichapishi ndani, hii haitumiki tu, bali pia huvunja usambazaji wa diski. Sauti pia haifanyi kazi, lakini mwandishi hakuihitaji. Ili kunasa mikato ya kibodi kama vile Alt + Tab, unahitaji kupanua vmconnect kwenye skrini nzima.

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто прилоТСния vmconnect встроСнный Π² Windows RDP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ этой машинС ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/xrdp/xrdp.ini port juu ya tcp://:3389. Ikiwa mashine pepe imeunganishwa kwenye Swichi ya Chaguomsingi na kupokea mipangilio ya mtandao kupitia DHCP, basi unaweza kuiunganisha kutoka kwa seva pangishi kwa. Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠ°ΡˆΠΈΠ½Ρ‹.mshome.net. Unaweza tu kuingia kwa TTY kutoka kwa programu ya vmconnect kwa kuzima Hali Iliyoboreshwa.

Vyanzo vilivyotumika:

  1. Hyper-V Arch Wiki
  2. Ripoti za mdudu kwenye GitHub: 1, 2

Chanzo: mapenzi.com

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS πŸ”₯ Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster