
వర్చువల్ మెషీన్లను ఉపయోగించడం Linux హైపర్-విలో బాక్స్ నుండి బయటకు తీసిన వెంటనే లభించే అనుభవం, గెస్ట్తో పోలిస్తే కొంచెం తక్కువ సౌకర్యవంతంగా ఉంటుంది. Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.
హైపర్-వి స్వయంగా అందిస్తుంది - కాబట్టి, అతిథులు హోస్ట్ షాడో కాపీ సేవ (VSS) ఉపయోగించవచ్చు, అతిథులు షట్డౌన్ సిగ్నల్ను పంపవచ్చు, అతిథులు సిస్టమ్ సమయాన్ని వర్చువలైజేషన్ హోస్ట్తో సమకాలీకరించవచ్చు, ఫైల్లను హోస్ట్ నుండి వర్చువల్ మెషీన్తో మార్పిడి చేసుకోవచ్చు (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) మెరుగైన సెషన్ మోడ్ అందుబాటులో ఉంది, ఇది RDP ప్రోటోకాల్ ద్వారా పని చేస్తుంది మరియు డిస్క్ పరికరాలు మరియు ప్రింటర్లను వర్చువల్ మెషీన్కు బదిలీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, అలాగే షేర్డ్ క్లిప్బోర్డ్ను ఉపయోగించండి.
Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер ఇప్పటికే ముందే ఇన్స్టాల్ చేయబడింది, ఆపై ఇతర పంపిణీలతో ఇది తక్కువ మరియు తక్కువ స్పష్టంగా ఉంటుంది - ఉదాహరణకు, రచయిత получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.
ఇంటిగ్రేషన్ సేవలను ఇన్స్టాల్ చేస్తోంది
ఇక్కడ ప్రతిదీ ఎక్కువ లేదా తక్కువ సులభం, మేము ప్యాకేజీని ఇన్స్టాల్ చేయాలి hyperv కమ్యూనిటీ రిపోజిటరీ నుండి:
% sudo pacman -S hypervVSS మరియు మార్పిడి సేవలను ప్రారంభిద్దాం మరియు ఫైళ్లు:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneXRDPని ఇన్స్టాల్ చేస్తోంది
రిపోజిటరీ на 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ఈ కథనాన్ని వ్రాసే సమయంలో, స్క్రిప్ట్ ద్వారా ఇన్స్టాల్ చేయబడిన 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 под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту 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 సెషన్లోకి ఫార్వార్డ్ చేయాల్సిన పరికరాలను ఎంచుకోవచ్చు.


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

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

క్లిప్బోర్డ్ బాగా పనిచేస్తుంది. మీరు లోపల ప్రింటర్లను ఫార్వార్డ్ చేయలేరు; దీనికి మద్దతు ఇవ్వడమే కాదు, కూడా . ధ్వని కూడా పనిచేయదు, కానీ రచయితకు ఇది అవసరం లేదు. Alt+Tab వంటి కీబోర్డ్ షార్ట్కట్లను క్యాప్చర్ చేయడానికి, మీరు vmconnectని పూర్తి స్క్రీన్కి విస్తరించాలి.
Если по каким-либо причинам есть желание использовать вместо приложения vmconnect встроенный в Windows RDP-клиент или, например, подключаться к этой машине из другой машины, то нужно будет поменять в файле /etc/xrdp/xrdp.ini port న tcp://:3389. వర్చువల్ మెషీన్ డిఫాల్ట్ స్విచ్కి కనెక్ట్ చేయబడి, DHCP ద్వారా నెట్వర్క్ సెట్టింగ్లను స్వీకరిస్తే, మీరు హోస్ట్ నుండి దానికి కనెక్ట్ చేయవచ్చు название_машины.mshome.net. మీరు మెరుగైన మోడ్ని ఆఫ్ చేయడం ద్వారా మాత్రమే vmconnect అప్లికేషన్ నుండి TTYకి లాగిన్ అవ్వగలరు.
ఉపయోగించిన మూలాలు:
- GitHubపై బగ్ నివేదికలు: ,
మూలం: www.habr.com
