ื ืืฆื ืืื ืืงืก ืืืืจืืืึทื ืืืฉืื ืขื ืืื Hyper-V ืืืืก ืคืื ืื ืงืขืกืื ืืื ืึท ืืืกื ืืืืื ืืงืขืจ ืืึทืงืืืขื ืืขืจืคืึทืจืื ื ืืื ื ืืฆื Windows ืืึทืกื ืืืฉืื ืขื. ืื ืกืืื ืคึฟืึทืจ ืืขื ืืื ืึทื Hyper-V ืืื ื ืืฉื ืขืจืืืืฉื ืึทืื ืืืขื ืคึฟืึทืจ ืืขืกืงืืึทืคึผ ื ืืฆื; ืืืจ ืงืขื ืขื ื ืื ื ืึธืจ ืื ืกืืึทืืืจื ืึท ืคึผืขืงื ืคืื ืืึทืกื ืึทืืืฉืึทื ื ืืื ืืึทืงืืืขื ืคืึทื ืืงืฉืึทื ืึทื ืืจืึทืคืืงืก ืึทืงืกืขืืขืจืืืฉืึทื, ืึท ืงืืืคึผืืึธืจื, ืฉืขืจื ืืืจืขืงืืขืจืื ืืื ืื ืืขืจืข ืืืฉืืืก ืคืื ืืขืื, ืืื ืืึทืคึผืึทื ื ืืื VirtualBox.
Hyper-V ืืื ืืื Copy-VMFile
ืืื PowerShell). ืคึฟืึทืจ ืขืืืขืืข ืืึทืกื ืึธืคึผืขืจืืืืื ื ืกืืกืืขืืขื, ืึทืจืืึทื ืืขืจืขืื ื, ืคืื ืงืืจืก, Windows, ืืื ืื ืืืืจืืืึทื ืืึทืฉืื ืงืึทื ืขืงืฉืึทื ืึทืคึผืืึทืงืืืฉืึทื (vmconnect.exe
) ืขื ืืึทื ืกื ืกืขืกืืข ืืึธืืข ืืื ืื ืืืฆื, ืืจืืขืื ืืืจื ืื RDP ืคึผืจืึธืืึธืงืึธื ืืื ืึทืืึทืืื ื ืืืจ ืฆื ืึทืจืืืขืจืคืืจื ืืืกืง ืืขืืืืกืขืก ืืื ืคึผืจืื ืืขืจืก ืฆื ืื ืืืืจืืืึทื ืืึทืฉืื, ืืื ืืขืืื ื ืืื ื ืืฆื ืึท ืฉืขืจื ืงืืืคึผืืึธืจื.
ืขื ืืึทื ืกื ืกืขืกืืข ืืึธืืข ืึทืจืืขื ืืืืก ืคืื ืื ืงืขืกืื ืืื Windows ืืื Hyper-V ืืืืื ื ืึธื ืื ืกืืึทืืืจืื ื. ืืื ืืขืกื ืืืืฃ ืืื ืืงืก, ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืึท RDP ืกืขืจืืืขืจ ืืืึธืก ืฉืืืฆื vsock (ืึท ืกืคึผืขืฆืืขื ืืืืจืืืึทื ื ืขืฅ ืึทืืจืขืก ืคึผืืึทืฅ ืืื ืืื ืืงืก ืืืืืื ื ืคึฟืึทืจ ืงืึธืืื ืืงืึทืฆืืข ืืื ืื ืืืืคึผืขืจืืืืืืขืจ). ืืืื ืคึฟืึทืจ ืืืื ืื ืืื ืื VMCreate ืึทืคึผืืึทืงืืืฉืึทื ืืืึธืก ืงืืื ืืื Hyper-V ืืืืฃ ืืขืกืงืืึทืคึผ ืืืืกืืืืขืก ืคืื Windows, ืขืก ืืื ืึท ืกืคึผืขืฆืืขื ืฆืืืขืืจืืื ืืืืจืืืึทื ืืึทืฉืื ืืืกืืขืจ ืืื ืืืึธืก ืึท RDP ืกืขืจืืืขืจ ืืจืืขืื ืืื vsock.
ืื ืกืืึธืืื ื ืื ืืึทืืจืืืฉืึทื ืืึทืืื ืื ืืก
ืึทืืฅ ืืื ืืขืจ ืึธืืขืจ ืืืืื ืืงืขืจ ืคึผืฉืื ืืึธ, ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืืขื ืคึผืขืงื hyperv
ืคืื ืื ืงืื ืจืืคึผืึทืืึทืืึธืจื:
% sudo pacman -S hyperv
ืืื ืก ืืขืื VSS ืืื ืืืขืงืกื ืืึทืืื ืื ืืก
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
ืื ืกืืึธืืื ื XRDP
ืจืืคึผืึทืืึทืืึธืจื
% 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 ืืึทื ืืืึทืื. ืื XRDP ืืึทืืข ืืขืคึฟืื ื ืืื ืื AUR ืืื ืืืื ืึท ืืืกื ืคืึทืจืขืืืขืจื, ืึทืืื ืืืจ ืืืขื ืืึธืื ืฆื ืจืขืืึทืืืจื ืื PKGBUILD ืืื ืืึทืืข ืืึทื ืืืึทืื.
ืืึธืืืจ ืงืืึธืื ืจืืคึผืึทืืึทืืึธืจืื ืืื PKGBUILDs ืคึฟืื AUR (ืืืืฉืึทืืืึทืื ืืขื ืคึผืจืึธืฆืขืืืจ, ืฆืืืึทืืขื ืืื ืื ืืืืขื, ืืื ืึธืืึทืืืืืื ืืืจื ืืืืื ืืื
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git
ืืื ืก ืื ืกืืึทืืืจื XRDP ืืื ืขืจืฉืืขืจ. ืืื ืก ืขืคืขื ืขื ืื ืืขืงืข PKGBUILD
ืงืืื ืืขืงืกื ืจืขืืึทืงืืึธืจ.
ืืื ืก ืจืขืืึทืืืจื ืื ืืืืขื ืคึผืึทืจืึทืืขืืขืจืก. PKGBUILD ืคึฟืึทืจ ืื ืื XRDP ืคึฟืื Git ืืื ื ืืฉื ืึทืจืืึทื ื ืขืืขื 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
, ืืืึธืก ืืื ืืขืจ ืฆืืื ืคืื ืฉืจืืืื
[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 ืึทืจืืืขืจืคืืจื ืคึฟืึทืจ ืื ืืืืจืืืึทื ืืึทืฉืื ืืืจื ืืืืคื ืื ืคืืืืขื ืืข ืืึทืคึฟืขื ืืื PowerShell ืืื ืึท ืึทืืืื ืืกืืจืึทืืึธืจ:
PS Admin > Set-VM -VMName ะะะะะะะะ_ะะะจะะะซ -EnhancedSessionTransportType HvSocket
ืืื ืก ืงืขืจ ืืืืฃ ืื ืืืืจืืืึทื ืืึทืฉืื ืืืืืขืจ.
ะะพะดะบะปััะตะฝะธะต
ืืื ืืึทืื ืืื ืื XRDP ืืื ืกื ืกืืึทืจืฅ ื ืึธื ืื ืกืืกืืขื ืกืืึทืจืฅ, ืื vmconnect ืึทืคึผืืึทืงืืืฉืึทื ืืืขื ืืขืืขืงื ืืขื ืืื ืื ื ืืืขืจ ืืืขื ืืืื ืืืจืขืืืืื ืืื ืื ืืขื ืื ืงืืง -> ืขื ืืึทื ืกื ืกืขืกืืข. ืืืขื ืกืึทืืขืงืืื ื ืืขื ื ืืืขืจ, ืืืจ ืืืขื ืืืื ืคึผืจืึทืืคึผืืื ืฆื ืฉืืขืื ืื ืคืึทืจืฉืืขืื ืืึทืืืึธืืข ืืื ืืืืฃ ืื ืงืืืืื ืืืงืืืข ืจืขืกืึธืืจืกืขืก ืืื ืื ืืืึทืืึธื ืืืึธืก ืึธืคึผืขื ืก, ืืืจ ืงืขื ืขื ืืืืกืงืืืึทืื ืืขืืืืกืขืก ืฆื ืืืื ืคืึธืจืืืขืจืืื ืืื ืื RDP ืกืขืกืืข.
ืืืืืจ ืืื ืคืืจืืื ืื. ืืืจ ืืืขืื ืืขื ืื XRDP ืืึธืืื ืคึฟืขื ืฆืืขืจ:
ืึทืจืืึทื ืืืื ื ืืืขื ืืื ืคึผืึทืจืึธื.
ื ืืฆื
ืื ื ืืฅ ืคืื ืื ืืึทื ืืคึผืืึทืืืืฉืึทื ื ืืื ืืืืขืจืงื: ืื RDP ืกืขืกืืข ืึทืจืืขื ืคืื ืืขืจ ืจืืกืคึผืึทื ืกืืืืื ืืื ืืืขื ืืจืืขืื ืืื ืึท ืืืืจืืืึทื ืึทืจืืืกืืืืึทืื ืึธื ืขื ืืึทื ืกื ืกืขืกืืข. ืืืกืงืก ืืจืึทืคึผื ืื ืื VM ืืืจื RDP ืืขื ืขื ืื ืืืฆื ืืื ืืขืจ ืืืขืืืืืึทืืขืจ ${HOME}/shared-drives
:
ืื ืงืืืคึผืืึธืจื ืึทืจืืขื ืืื. ืืืจ ืงืขื ืขื ื ืืฉื ืคืึธืจืืืก ืคึผืจืื ืืขืจืก ืื; ืืึธืก ืืื ื ืื ืืืืื ื ืืฉื ืืขืฉืืืฆื, ืึธืืขืจ ืืืื
ืืืื ืคึฟืึทืจ ืขืืืขืืข ืกืืื ืืืจ ืืืืื ืฆื ื ืืฆื ืื RDP ืงืืืขื ื ืืขืืืื ืืื Windows ืึทื ืฉืืึธื ืคืื ืื vmconnect ืึทืคึผืืึทืงืืืฉืึทื ืึธืืขืจ, ืืืฉื, ืคืึทืจืืื ืื ืฆื ืืขื ืืึทืฉืื ืคึฟืื ืื ืื ืืขืจ ืืึทืฉืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืฉื ืื ืืขืงืข. /etc/xrdp/xrdp.ini
port
ืืืืฃ tcp://:3389
. ืืืื ืื ืืืืจืืืึทื ืืึทืฉืื ืืื ืงืึธื ื ืขืงืืขื ืฆื ืืืคืึธืื ืกืืืืืฉ ืืื ื ืขืื ื ืขืฅ ืกืขืืืื ืืก ืืืจื DHCP, ืืืจ ืงืขื ืขื ืคืึทืจืืื ืื ืฆื ืขืก ืคึฟืื ืืขืจ ืืึทืืขืืึธืก ืืื ะฝะฐะทะฒะฐะฝะธะต_ะผะฐัะธะฝั.mshome.net
. ืืืจ ืงืขื ื ื ืึธืจ ืงืืึธืฅ ืืื TTY ืคึฟืื ืื vmconnect ืึทืคึผืืึทืงืืืฉืึทื ืืืจื ืืืกืืขืงื ืขื ืืึทื ืกื ืืึธืืข.
ืืขืืืืื ื ืงืืืืื:
Hyper-V - ืึทืจืืฉ ืืืืงื - ืืฉืืง ืจืืคึผืึธืจืฅ ืืืืฃ GitHub:
1 ,2
ืืงืืจ: www.habr.com