Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి

Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి

విండోస్ గెస్ట్ మెషీన్‌లను ఉపయోగించడం కంటే హైపర్-వి అవుట్ ఆఫ్ ది బాక్స్‌లో Linux వర్చువల్ మిషన్‌లను ఉపయోగించడం కొంచెం తక్కువ సౌకర్యవంతమైన అనుభవం. దీనికి కారణం హైపర్-వి వాస్తవానికి డెస్క్‌టాప్ ఉపయోగం కోసం ఉద్దేశించబడలేదు; మీరు వర్చువల్‌బాక్స్‌లో జరిగే విధంగా అతిథి జోడింపుల ప్యాకేజీని ఇన్‌స్టాల్ చేయలేరు మరియు ఫంక్షనల్ గ్రాఫిక్స్ యాక్సిలరేషన్, క్లిప్‌బోర్డ్, షేర్డ్ డైరెక్టరీలు మరియు జీవితంలోని ఇతర ఆనందాలను పొందలేరు.

హైపర్-వి స్వయంగా అందిస్తుంది అనేక ఏకీకరణ సేవలు - కాబట్టి, అతిథులు హోస్ట్ షాడో కాపీ సేవ (VSS) ఉపయోగించవచ్చు, అతిథులు షట్‌డౌన్ సిగ్నల్‌ను పంపవచ్చు, అతిథులు సిస్టమ్ సమయాన్ని వర్చువలైజేషన్ హోస్ట్‌తో సమకాలీకరించవచ్చు, ఫైల్‌లను హోస్ట్ నుండి వర్చువల్ మెషీన్‌తో మార్పిడి చేసుకోవచ్చు (Copy-VMFile పవర్‌షెల్‌లో). వర్చువల్ మెషిన్ కనెక్షన్ అప్లికేషన్‌లో విండోస్‌తో సహా కొన్ని అతిథి ఆపరేటింగ్ సిస్టమ్‌ల కోసం (vmconnect.exe) మెరుగైన సెషన్ మోడ్ అందుబాటులో ఉంది, ఇది RDP ప్రోటోకాల్ ద్వారా పని చేస్తుంది మరియు డిస్క్ పరికరాలు మరియు ప్రింటర్‌లను వర్చువల్ మెషీన్‌కు బదిలీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, అలాగే షేర్డ్ క్లిప్‌బోర్డ్‌ను ఉపయోగించండి.

ఇన్‌స్టాలేషన్ తర్వాత వెంటనే హైపర్-విలో విండోస్‌లోని బాక్స్ వెలుపల మెరుగైన సెషన్ మోడ్ పని చేస్తుంది. Linuxలో అతిథులతో, మీరు vsock (హైపర్‌వైజర్‌తో కమ్యూనికేషన్ కోసం రూపొందించబడిన Linuxలో ప్రత్యేక వర్చువల్ నెట్‌వర్క్ అడ్రస్ స్పేస్)కు మద్దతు ఇచ్చే RDP సర్వర్‌ను ఇన్‌స్టాల్ చేయాలి. విండోస్ డెస్క్‌టాప్ ఎడిషన్‌లలో హైపర్-వితో వచ్చే VMCreate అప్లికేషన్‌లో ఉబుంటు కోసం, ప్రత్యేకంగా సిద్ధం చేయబడిన వర్చువల్ మెషీన్ టెంప్లేట్ ఉంది, దీనిలో RDP సర్వర్ vsockతో పని చేస్తుంది. XRDP ఇప్పటికే ముందే ఇన్‌స్టాల్ చేయబడింది, ఆపై ఇతర పంపిణీలతో ఇది తక్కువ మరియు తక్కువ స్పష్టంగా ఉంటుంది - ఉదాహరణకు, రచయిత ఈ పోస్ట్ నేను Fedoraలో ESMని ప్రారంభించగలిగాను. ఇక్కడ మేము ఆర్చ్ లైనక్స్ వర్చువల్ మెషీన్ కోసం మెరుగైన సెషన్ మోడ్‌ని సక్రియం చేస్తాము.

ఇంటిగ్రేషన్ సేవలను ఇన్‌స్టాల్ చేస్తోంది

ఇక్కడ ప్రతిదీ ఎక్కువ లేదా తక్కువ సులభం, మేము ప్యాకేజీని ఇన్‌స్టాల్ చేయాలి hyperv కమ్యూనిటీ రిపోజిటరీ నుండి:

% sudo pacman -S hyperv

VSS మరియు మార్పిడి సేవలను ప్రారంభిద్దాం మెటాడేటా మరియు ఫైళ్లు:

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

XRDPని ఇన్‌స్టాల్ చేస్తోంది

రిపోజిటరీ linux-vm-టూల్స్ ఆర్చ్ లైనక్స్ మరియు ఉబుంటు కోసం XRDPని ఇన్‌స్టాల్ చేసే మరియు కాన్ఫిగర్ చేసే ప్రక్రియను ఆటోమేట్ చేసే స్క్రిప్ట్‌లను GitHub అందిస్తుంది. మాన్యువల్ బిల్డ్‌ల కోసం కంపైలర్ మరియు ఇతర సాఫ్ట్‌వేర్‌తో పాటు ఇది ఇప్పటికే ఇన్‌స్టాల్ చేయబడకపోతే Gitని ఇన్‌స్టాల్ చేద్దాం, ఆపై రిపోజిటరీని క్లోన్ చేయండి:

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

ఈ కథనాన్ని వ్రాసే సమయంలో, స్క్రిప్ట్ ద్వారా ఇన్‌స్టాల్ చేయబడిన XRDP యొక్క తాజా విడుదల makepkg.shరిపోజిటరీలో సూచించబడినది 0.9.11, దీనిలో పార్సింగ్ విరిగిపోయింది vsock://-చిరునామాలు, కాబట్టి మీరు Git నుండి XRDPని మరియు AUR నుండి దాని కోసం Xorg డ్రైవర్‌ను మాన్యువల్‌గా ఇన్‌స్టాల్ చేయాలి. AURలో అందించబడిన XRDP ప్యాచ్ కూడా కొంచెం పాతది, కాబట్టి మీరు PKGBUILDని సవరించి, మాన్యువల్‌గా ప్యాచ్ చేయాలి.

AUR నుండి PKGBUILDలతో రిపోజిటరీలను క్లోన్ చేద్దాం (సాధారణంగా ఈ విధానం, బిల్డ్‌తో పాటు, వంటి ప్రోగ్రామ్‌ల ద్వారా ఆటోమేట్ చేయబడుతుంది అవును, కానీ రచయిత ఈ మొత్తం ప్రక్రియను క్లీన్ సిస్టమ్‌లో చేసారు):

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

ముందుగా XRDPని ఇన్‌స్టాల్ చేద్దాం. ఫైల్‌ని ఓపెన్ చేద్దాం PKGBUILD ఏదైనా టెక్స్ట్ ఎడిటర్.

బిల్డ్ పారామితులను ఎడిట్ చేద్దాం. Git నుండి XRDPని నిర్మించడానికి PKGBUILD నిర్మించేటప్పుడు vsock మద్దతును కలిగి ఉండదు, కాబట్టి మనమే దీన్ని ఎనేబుల్ చేద్దాం:

 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
 }

పాచ్ లో arch-config.diff, ఇది ఆర్చ్ లైనక్స్‌లో ఉపయోగించిన ఫైల్ పాత్‌ల క్రింద యూనిట్లు మరియు XRDP లాంచ్ స్క్రిప్ట్‌లను నిర్వహిస్తుంది, స్క్రిప్ట్‌కు ప్యాచ్ కూడా ఉంటుంది. instfiles/xrdp.sh, ఇది వ్రాసే సమయంలో తొలగించబడింది XRDP పంపిణీ నుండి, కాబట్టి ప్యాచ్ మానవీయంగా సవరించబడాలి:

  [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

కమాండ్‌తో ప్యాకేజీని కంపైల్ చేసి ఇన్‌స్టాల్ చేద్దాం % makepkg --skipchecksums -si (కీ --skipchecksums సోర్స్ ఫైల్‌ల చెక్‌సమ్ ధృవీకరణను నిలిపివేయడం అవసరం, ఎందుకంటే మేము వాటిని మాన్యువల్‌గా సవరించాము).

డైరెక్టరీకి వెళ్దాం xorgxrdp-devel-git, దాని తర్వాత మేము కేవలం ఆదేశంతో ప్యాకేజీని సమీకరించాము % makepkg -si.

డైరెక్టరీకి వెళ్దాం linux-vm-tools/arch మరియు స్క్రిప్ట్‌ను అమలు చేయండి install-config.sh, ఇది XRDP, PolicyKit మరియు PAM సెట్టింగ్‌లను సెట్ చేస్తుంది:

% sudo ./install-config.sh

స్క్రిప్ట్ లెగసీ సెట్టింగ్‌ని ఇన్‌స్టాల్ చేస్తుంది use_vsock, ఇది వెర్షన్ 0.9.11 నుండి విస్మరించబడింది, కాబట్టి కాన్ఫిగరేషన్ ఫైల్‌ని ఎడిట్ చేద్దాం /etc/xrdp/xrdp.ini మానవీయంగా:

 ;   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

ఫైల్‌కు జోడించండి ~/.xinitrc మీ ప్రాధాన్య విండో మేనేజర్/డెస్క్‌టాప్ ఎన్విరాన్‌మెంట్‌ను ప్రారంభించడం, ఇది X సర్వర్ ప్రారంభమైనప్పుడు అమలు చేయబడుతుంది:

% echo "exec i3" > ~/.xinitrc

వర్చువల్ మిషన్‌ను ఆఫ్ చేద్దాం. అడ్మినిస్ట్రేటర్‌గా పవర్‌షెల్‌లో కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మేము వర్చువల్ మెషీన్ కోసం vsock రవాణాను సక్రియం చేస్తాము:

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

వర్చువల్ మిషన్‌ను మళ్లీ ఆన్ చేద్దాం.

Подключение

సిస్టమ్ ప్రారంభమైన తర్వాత XRDP సేవ ప్రారంభమైన వెంటనే, vmconnect అప్లికేషన్ దీన్ని గుర్తిస్తుంది మరియు అంశం మెనులో అందుబాటులోకి వస్తుంది చూడండి -> మెరుగైన సెషన్. ఈ అంశాన్ని ఎంచుకున్నప్పుడు, మేము స్క్రీన్ రిజల్యూషన్‌ను మరియు ట్యాబ్‌లో సెట్ చేయమని ప్రాంప్ట్ చేయబడతాము స్థానిక వనరులు తెరుచుకునే డైలాగ్‌లో, మీరు RDP సెషన్‌లోకి ఫార్వార్డ్ చేయాల్సిన పరికరాలను ఎంచుకోవచ్చు.

Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి
Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి

కనెక్ట్ చేద్దాం. మేము XRDP లాగిన్ విండోను చూస్తాము:

Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి

మీ వినియోగదారు పేరు మరియు పాస్‌వర్డ్‌ను నమోదు చేయండి.

ఉపయోగం

ఈ అవకతవకల నుండి ప్రయోజనం గమనించదగినది: RDP సెషన్ మెరుగైన సెషన్ లేకుండా వర్చువల్ డిస్‌ప్లేతో పనిచేసేటప్పుడు కంటే చాలా ఎక్కువ ప్రతిస్పందనాత్మకంగా పనిచేస్తుంది. RDP ద్వారా VM లోపల పడిపోయిన డిస్క్‌లు డైరెక్టరీలో అందుబాటులో ఉన్నాయి ${HOME}/shared-drives:

Hyper-Vలో Arch Linux గెస్ట్‌ల కోసం మెరుగైన సెషన్ మోడ్‌ని ప్రారంభించండి

క్లిప్‌బోర్డ్ బాగా పనిచేస్తుంది. మీరు లోపల ప్రింటర్‌లను ఫార్వార్డ్ చేయలేరు; దీనికి మద్దతు ఇవ్వడమే కాదు, కూడా డిస్క్ ఫార్వార్డింగ్‌ను విచ్ఛిన్నం చేస్తుంది. ధ్వని కూడా పనిచేయదు, కానీ రచయితకు ఇది అవసరం లేదు. Alt+Tab వంటి కీబోర్డ్ షార్ట్‌కట్‌లను క్యాప్చర్ చేయడానికి, మీరు vmconnectని పూర్తి స్క్రీన్‌కి విస్తరించాలి.

కొన్ని కారణాల వల్ల మీరు vmconnect అప్లికేషన్‌కు బదులుగా Windowsలో నిర్మించిన RDP క్లయింట్‌ని ఉపయోగించాలనుకుంటే లేదా ఉదాహరణకు, మరొక మెషీన్ నుండి ఈ మెషీన్‌కు కనెక్ట్ చేస్తే, మీరు ఫైల్‌ను మార్చవలసి ఉంటుంది. /etc/xrdp/xrdp.ini porttcp://:3389. వర్చువల్ మెషీన్ డిఫాల్ట్ స్విచ్‌కి కనెక్ట్ చేయబడి, DHCP ద్వారా నెట్‌వర్క్ సెట్టింగ్‌లను స్వీకరిస్తే, మీరు హోస్ట్ నుండి దానికి కనెక్ట్ చేయవచ్చు название_машины.mshome.net. మీరు మెరుగైన మోడ్‌ని ఆఫ్ చేయడం ద్వారా మాత్రమే vmconnect అప్లికేషన్ నుండి TTYకి లాగిన్ అవ్వగలరు.

ఉపయోగించిన మూలాలు:

  1. హైపర్-వి - ఆర్చ్ వికీ
  2. GitHubపై బగ్ నివేదికలు: 1, 2

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి