Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V

Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V

Ngagunakeun mesin virtual Linux Ubuntu dina Hyper-V out of the box mangrupakeun pangalaman rada kirang nyaman ti ngagunakeun mesin tamu Windows. Alesan keur ieu nu Hyper-V teu asalna dimaksudkeun pikeun pamakéan desktop; Anjeun teu bisa ngan masang pakét tambahan tamu jeung meunang akselerasi grafik fungsi, clipboard a, diréktori dibagikeun jeung joys séjén tina kahirupan, sakumaha kajadian dina VirtualBox.

Hyper-V sorangan nyadiakeun sababaraha layanan integrasi - janten, sémah tiasa nganggo jasa salinan bayangan host (VSS), sémah tiasa ngirim sinyal shutdown, sémah tiasa nyinkronkeun waktos sistem sareng host virtualisasi, file tiasa disilihtukeurkeun tina host sareng mesin virtual (Copy-VMFile dina PowerShell). Kanggo sababaraha sistem operasi tamu, kalebet, tangtosna, Windows, dina aplikasi Virtual Machine Connection (vmconnect.exe) Mode Sidang Enhanced sayogi, tiasa dianggo nganggo protokol RDP sareng ngamungkinkeun anjeun nransfer alat disk sareng panyitak kana mesin virtual, ogé nganggo clipboard anu dibagikeun.

Mode Sesi Enhanced jalan kaluar tina kotak dina Windows di Hyper-V langsung saatos instalasi. Kalayan tamu di Linux, anjeun kedah masang server RDP anu ngadukung vsock (ruang alamat jaringan virtual khusus dina Linux anu dirancang pikeun komunikasi sareng hypervisor). Upami pikeun Ubuntu dina aplikasi VMCreate anu hadir sareng Hyper-V dina édisi desktop Windows, aya template mesin virtual anu disiapkeun khusus dimana server RDP damel sareng vsock. XRDP tos dipasang sateuacana, teras sareng distribusi sanésna kirang jelas - contona, panulis pos ieu Kuring junun ngaktipkeun ESM di Fedora. Di dieu urang bakal ngaktipkeun Mode Sesi Enhanced pikeun mesin virtual Arch Linux.

Masang jasa integrasi

Sagalana langkung atanapi kirang saderhana di dieu, urang ngan ukur kedah pasang pakét hyperv ti gudang komunitas:

% sudo pacman -S hyperv

Hayu urang aktipkeun VSS sareng jasa bursa metadata sareng file:

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

Masang XRDP

gudang linux-vm-parabot on GitHub nyadiakeun skrip anu ngajadikeun otomatis prosés masang sareng ngonpigurasikeun XRDP pikeun Arch Linux sareng Ubuntu. Hayu urang pasang Git, upami éta henteu acan dipasang, sareng kompiler sareng parangkat lunak sanés pikeun ngawangun manual, teras clone gudang:

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

Dina waktos nyerat tulisan ieu, sékrési panganyarna tina XRDP, anu dipasang ku naskah makepkg.shanu disarankeun dina gudang nyaéta 0.9.11, di mana parsing rusak vsock://-alamatna, janten anjeun kedah masang XRDP ti Git sareng supir Xorg pikeun éta tina AUR sacara manual. XRDP patch ditawarkeun dina AUR oge rada ketinggalan jaman, jadi Anjeun kudu ngédit PKGBUILD na patch sacara manual.

Hayu urang clone repositories sareng PKGBUILDs ti AUR (biasana prosedur ieu, sareng ngawangun, otomatis ku program sapertos wéw, tapi panulis ngalakukeun sakabeh prosedur ieu dina sistem bersih):

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

Hayu urang masang XRDP sorangan heula. Hayu urang muka file PKGBUILD pangropéa téksu naon waé.

Hayu urang ngédit parameter ngawangun. PKGBUILD pikeun ngawangun XRDP ti Git henteu kalebet dukungan vsock nalika ngawangun, janten hayu urang aktipkeun nyalira:

 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
 }

Dina patch arch-config.diff, anu ngatur unit sareng skrip peluncuran XRDP handapeun jalur file anu dianggo dina Arch Linux, ogé ngandung patch kana naskah. instfiles/xrdp.sh, nu dina waktu nulis ieu dihapus tina distribusi XRDP, janten patch kedah diédit sacara manual:

  [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

Hayu urang kompilasi sareng pasang pakét nganggo paréntah % makepkg --skipchecksums -si (konci --skipchecksums diperlukeun pikeun nganonaktipkeun verifikasi checksum tina file sumber, sabab urang diédit sacara manual).

Hayu urang buka diréktori xorgxrdp-devel-git, Sanggeus éta urang ngan saukur ngumpul pakét jeung paréntah % makepkg -si.

Hayu urang buka diréktori linux-vm-tools/arch jeung ngajalankeun naskah install-config.sh, anu nyetél XRDP, PolicyKit sareng setélan PAM:

% sudo ./install-config.sh

Skrip masang setelan warisan use_vsock, nu geus teu dipaliré saprak versi 0.9.11, jadi hayu urang ngédit file konfigurasi /etc/xrdp/xrdp.ini sacara manual:

 ;   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

Tambahkeun ka file ~/.xinitrc ngaluncurkeun manajer jandela / lingkungan desktop anu anjeun pikaresep, anu bakal dieksekusi nalika server X dimimitian:

% echo "exec i3" > ~/.xinitrc

Hayu urang mareuman mesin virtual. Urang ngaktipkeun angkutan vsock pikeun mesin virtual ku ngajalankeun paréntah di handap ieu dina PowerShell salaku administrator:

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

Hayu urang ngahurungkeun mesin virtual deui.

Подключение

Pas jasa XRDP dimimitian saatos sistem dimimitian, aplikasi vmconnect bakal ngadeteksi ieu sareng itemna bakal sayogi dina ménu. View -> Sesi ditingkatkeun. Nalika milih item ieu, urang bakal dipenta pikeun nyetél resolusi layar, sareng dina tab Sumberdaya Lokal Dina dialog anu muka, anjeun tiasa milih alat pikeun diteruskeun kana sési RDP.

Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V
Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V

Hayu urang sambungkeun. Urang bakal ningali jandela login XRDP:

Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V

Asupkeun ngaran pamaké sarta sandi anjeun.

pamakean

Kauntungan tina manipulasi ieu katingali: sési RDP jalanna langkung responsif tibatan nalika damel sareng tampilan virtual tanpa Sesi Enhanced. Disk turun di jero VM via RDP sayogi dina diréktori ${HOME}/shared-drives:

Aktipkeun Modeu Sesi Ditingkatkeun pikeun sémah Arch Linux dina Hyper-V

Clipboard tiasa dianggo saé. Anjeun teu tiasa neraskeun printer di jero; ieu sanés ngan ukur dirojong, tapi ogé ngarecah disk diteruskeun. Sora ogé henteu jalan, tapi panulis henteu peryogi ieu. Pikeun nyandak potong kompas keyboard sapertos Alt + Tab, anjeun kedah ngagedekeun vmconnect ka layar pinuh.

Upami kusabab sababaraha alesan anjeun hoyong nganggo klien RDP anu diwangun kana Windows tinimbang aplikasi vmconnect atanapi, contona, sambungkeun ka mesin ieu tina mesin anu sanés, maka anjeun kedah ngarobih filena. /etc/xrdp/xrdp.ini port dina tcp://:3389. Upami mesin virtual disambungkeun ka Default Switch sareng nampi setélan jaringan via DHCP, teras anjeun tiasa nyambung ka éta tina host di название_машины.mshome.net. Anjeun ngan bisa asup kana TTY tina aplikasi vmconnect ku mareuman Mode Enhanced.

Sumber dipaké:

  1. Hyper-V - Arch Wiki
  2. Laporan bug dina GitHub: 1, 2

sumber: www.habr.com

Tambahkeun komentar