
แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแก แแแแแงแแแแแ Linux Hyper-V-แจแ, แ แแแแ แช แแ แแแแงแแแแแ, แแก แแแแแ แแแแแแแแ แแแแคแแ แขแฃแแแ, แแแแ แ แกแขแฃแแ แแก แจแแแแฎแแแแแจแ. Windows-ะผะฐัะธะฝะฐะผะธ. ะัะธัะธะฝะพะน ัะพะผั ัะฒะปัะตััั ัะพ, ััะพ Hyper-V ะฒัะต ะถะต ะธะทะฝะฐัะฐะปัะฝะพ ะฝะต ะฟัะตะดะฝะฐะทะฝะฐัะฐะปัั ะดะปั ะดะตัะบัะพะฟะฝะพะณะพ ะฟะพะปัะทะพะฒะฐะฝะธั; ะฝะตะปัะทั ะฟัะพััะพ ะฒะทััั, ะฟะพััะฐะฒะธัั ะฟะฐะบะตั ะณะพััะตะฒัั ะดะพะฟะพะปะฝะตะฝะธะน ะธ ะฟะพะปััะธัั ัะฐะฑะพัะพัะฟะพัะพะฑะฝะพะต ะณัะฐัะธัะตัะบะพะต ััะบะพัะตะฝะธะต, ะฑััะตั ะพะฑะผะตะฝะฐ, ะพะฑัะธะต ะดะธัะตะบัะพัะธะธ ะธ ะดััะณะธะต ัะฐะดะพััะธ ะถะธะทะฝะธ, ะบะฐะบ ััะพ ะฟัะพะธัั ะพะดะธั ะฒ VirtualBox.
Hyper-V แแแแแ แฃแแ แฃแแแแแงแแคแก - แแกแ แ แแ, แกแขแฃแแ แแแก แจแแฃแซแแแแ แแแแแแงแแแแ แฐแแกแขแแก แฉแ แแแแแแแแ แแกแแแก แกแแ แแแกแ (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://-แแแกแแแแ แแแแ, แแกแ แ แแ แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ XRDP Git-แแแ แแ Xorg แแ แแแแแ แ แแแแกแแแแก AUR-แแแ แฎแแแแ. AUR-แจแ แจแแแแแแแแแแแฃแแ XRDP แแแขแฉแ แแกแแแ แแแแแ แแแซแแแแแแฃแแแ, แแกแ แ แแ แแฅแแแ แแแแแฌแแแ PKGBUILD แแ แแแฉแแก แฎแแแแ แ แแแแฅแขแแ แแแ.
แฉแแแ แแแแแแ แแแ แกแแชแแแแแก PKGBUILD-แแแแ AUR-แแแ (แฉแแแฃแแแแ แแ, แแก แแ แแชแแแฃแ แ, แแกแแแแแแแกแแแ แแ แแแ, แแแขแแแแขแแแแ แแแฃแแแ แแกแแแ แแ แแแ แแแแแแ, แ แแแแ แแชแแ , แแแแ แแ แแแขแแ แแ แแแแแ แแก แแ แแชแแแฃแ แ แกแฃแคแแ แกแแกแขแแแแแ แแแแแแแ):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitแแแแแ, แฏแแ แแแแแ แแแแแงแแแแ XRDP. แแแแแ แแแแฎแกแแแ แคแแแแ PKGBUILD แแแแแกแแแแ แ แขแแฅแกแขแฃแ แ แ แแแแฅแขแแ แ.
แแแแแ แแแแ แแแแฅแขแแ แแ build แแแ แแแแขแ แแแ. PKGBUILD Git-แแแ XRDP-แแก แแกแแจแแแแแแแ แแ แจแแแชแแแก vsock แแฎแแ แแแญแแ แแก build-แจแ, แแกแ แ แแ, แแแแแ, แแแแแ แฉแแ แแแ แแแ:
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 แขแ แแแกแแแ แขแ VM-แแกแแแแก แจแแแแแแ แแ แซแแแแแแก แแแจแแแแแ PowerShell-แจแ แแแแแแแกแขแ แแขแแ แแก แกแแฎแแ:
PS Admin > Set-VM -VMName ะะะะะะะะ_ะะะจะะะซ -EnhancedSessionTransportType HvSocketแแแแแ แแกแแ แฉแแแ แแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ.
ะะพะดะบะปััะตะฝะธะต
แ แแแแ แช แแ XRDP แกแแ แแแกแ แแแแฌแงแแแ แกแแกแขแแแแก แแแฌแงแแแแก แจแแแแแ, vmconnect แแแแแแแชแแ แแแแกแแแฆแแ แแแก แแแแก แแ แแแแแฃแก แแฃแแฅแขแ แฎแแแแแกแแฌแแแแแ แแแฎแแแแ. แแแฎแแ -> แแแซแแแแ แแแฃแแ แกแแกแแ. แ แแแแกแแช แแฅแแแ แแแ แฉแแแ แแ แแแแแแแขแก, แฉแแแ แแแแแแฎแแแแแแ แแแแแงแแแแ แแแ แแแแก แแแ แฉแแแแแแแ แแ แฉแแแแ แแแ แแแแแแแแ แแแ แ แแกแฃแ แกแแแ แแแแแแแจแ, แ แแแแแแช แแฎแกแแแแ, แจแแแแซแแแแ แแแ แฉแแแ RDP แกแแกแแแก แจแแแแแ แแแแแแแแแแแแ แแแฌแงแแแแแแแแแ.


แแแแแ แแแแแแแแจแแ แแ. แฉแแแ แแแแแแแฎแแแ XRDP แจแแกแแแแก แคแแแฏแแ แแก:

แจแแแงแแแแแ แแฅแแแแ แแแแฎแแแ แแแแแก แกแแฎแแแ แแ แแแ แแแ.
แแแแแแงแแแแ
แแ แแแแแแฃแแแชแแแแแก แแแแแแ แจแแกแแแฉแแแแแ: RDP แกแแกแแ แแฃแจแแแแก แแแแ แแ แฃแคแ แ แกแแแแกแฃแฎแแ, แแแแ แ แแแ แขแฃแแแฃแ แแแ แแแแแ แแฃแจแแแแแกแแก แแแซแแแแ แแแฃแแ แกแแกแแแก แแแ แแจแ. VM-แจแ แแแแแแแแแแแแ แแแกแแแแ RDP-แแก แกแแจแฃแแแแแแ แฎแแแแแกแแฌแแแแแแ แแแ แแฅแขแแ แแแจแ ${HOME}/shared-drives:

แแฃแคแแ แ แแแ แแแ แแฃแจแแแแก. แแฅแแแ แแ แจแแแแซแแแแ แฉแแแแแแ แแ แแแขแแ แแแ แจแแแแแ, แแก แแ แ แแฎแแแแ แแ แแ แแก แแฎแแ แแแญแแ แแแ, แแ แแแแ แแกแแแ . แฎแแ แแกแแแ แแ แแฃแจแแแแก, แแแแ แแ แแแขแแ แก แแ แกแญแแ แแแแแแ. แแแแกแแแแแก, แ แแ แแแแแแฆแแ แแแแแแแขแฃแ แแก แแแแกแแฎแแแแแแ, แ แแแแ แแชแแ Alt + Tab, แแฅแแแ แฃแแแ แแแแคแแ แแแแแ vmconnect แกแ แฃแ แแแ แแแแ.
ะัะปะธ ะฟะพ ะบะฐะบะธะผ-ะปะธะฑะพ ะฟัะธัะธะฝะฐะผ ะตััั ะถะตะปะฐะฝะธะต ะธัะฟะพะปัะทะพะฒะฐัั ะฒะผะตััะพ ะฟัะธะปะพะถะตะฝะธั vmconnect ะฒัััะพะตะฝะฝัะน ะฒ Windows RDP-ะบะปะธะตะฝั ะธะปะธ, ะฝะฐะฟัะธะผะตั, ะฟะพะดะบะปััะฐัััั ะบ ััะพะน ะผะฐัะธะฝะต ะธะท ะดััะณะพะน ะผะฐัะธะฝั, ัะพ ะฝัะถะฝะพ ะฑัะดะตั ะฟะพะผะตะฝััั ะฒ ัะฐะนะปะต /etc/xrdp/xrdp.ini port on tcp://:3389. แแฃ แแแ แขแฃแแแฃแ แ แแแแฅแแแ แแแแแแจแแ แแแฃแแแ แแแแฃแแแกแฎแแแ แแแแแแ แแแแแแแ แแ แแฆแแแก แฅแกแแแแก แแแ แแแแขแ แแแก DHCP-แแก แกแแจแฃแแแแแแ, แแแจแแ แจแแแแซแแแแ แแแฃแแแแจแแ แแแ แแแก แฐแแกแขแแแแ: ะฝะฐะทะฒะฐะฝะธะต_ะผะฐัะธะฝั.mshome.net. TTY-แจแ แจแแกแแแ แจแแแแซแแแแ vmconnect แแแแแแแชแแแแแ แแฎแแแแ แแแซแแแแ แแแฃแแ แ แแแแแแก แแแแแ แแแแ.
แแแแแงแแแแแฃแแ แฌแงแแ แแแแ:
- แจแแชแแแแแแแก แจแแกแแฎแแ แจแแขแงแแแแแแแแแ GitHub-แแ: ,
แฌแงแแ แ: www.habr.com
