
Siv cov tshuab virtual rau ntawm Linux Hauv Hyper-V tawm ntawm lub thawv yog qhov kev paub tsis xis nyob me ntsis dua li nrog tus qhua Windows-ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Hyper-V Π²ΡΠ΅ ΠΆΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ; Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΡΠΎ Π²Π·ΡΡΡ, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π³ΠΎΡΡΠ΅Π²ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅, Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΎΠ±ΡΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π΄ΠΎΡΡΠΈ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² VirtualBox.
Hyper-V nws tus kheej muab - yog li, cov qhua tuaj yeem siv tus tswv tsev duab ntxoov ntxoo luam qhov kev pabcuam (VSS), cov qhua tuaj yeem xa cov teeb liab kaw, cov qhua tuaj yeem synchronize lub sijhawm ua haujlwm nrog tus tswv tsev virtualization, cov ntaub ntawv tuaj yeem pauv los ntawm tus tswv tsev nrog lub tshuab virtual (Copy-VMFile Π² PowerShell). ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π³ΠΎΡΡΠ΅Π²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ, Π² ΡΠΈΡΠ»Π΅ ΠΊΠΎΡΠΎΡΡΡ
, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΈ Windows, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Virtual Machine Connection (vmconnect.exe) Txhim kho Session Hom muaj, ua haujlwm ntawm RDP raws tu qauv thiab tso cai rau koj hloov cov khoom siv disk thiab cov tshuab luam ntawv mus rau lub tshuab virtual, nrog rau siv cov ntawv teev lus sib koom.
Enhanced Session Mode ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Windows Π² Hyper-V ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π‘ Π³ΠΎΡΡΡΠΌΠΈ Π½Π° Linux Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ RDP-ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ vsock (ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² Linux, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΠΌ). ΠΡΠ»ΠΈ Π΄Π»Ρ Ubuntu Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ VMCreate, ΠΈΠ΄ΡΡΠΈΠΌ Ρ Hyper-V Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡ Windows, Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ vsock RDP-ΡΠ΅ΡΠ²Π΅Ρ twb pre-installed, ces nrog rau lwm yam distributions nws yog tsawg thiab tsis meej - piv txwv li, tus sau ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ESM Π² Fedora. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ Enhanced Session Mode Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Arch Linux.
Txhim kho kev pabcuam kev koom ua ke
Txhua yam yooj yim dua los yog tsawg dua ntawm no, peb tsuas yog yuav tsum tau nruab lub pob hyperv los ntawm lub zej zog repository:
% sudo pacman -S hypervCia peb pab VSS thiab pauv kev pabcuam thiab cov ntaub ntawv:
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; doneTxhim kho XRDP
chaw cia khoom Π½Π° 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/archThaum lub sijhawm sau tsab xov xwm no, qhov tseeb tshaj tawm ntawm XRDP, uas tau teeb tsa los ntawm tsab ntawv makepkg.shqhov pom zoo nyob rau hauv lub repository yog 0.9.11, vsock://-chaw nyob, yog li koj yuav tau nruab XRDP los ntawm Git thiab Xorg tsav tsheb rau nws los ntawm AUR manually. XRDP thaj uas muaj nyob rau hauv AUR kuj tseem me ntsis dhau los, yog li koj yuav tau hloov kho PKGBUILD thiab thaj ua haujlwm ntawm tes.
Cia peb clone repositories nrog PKGBUILDs los ntawm AUR (feem ntau cov txheej txheem no, nrog rau kev tsim, yog automated los ntawm cov kev pab cuam xws li , tab sis tus sau tau ua tag nrho cov txheej txheem ntawm kev huv huv):
% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.gitCia peb nruab XRDP nws tus kheej ua ntej. Cia peb qhib cov ntaub ntawv PKGBUILD tej ntawv nyeem.
Cia peb kho qhov tsim tsis. PKGBUILD rau lub tsev XRDP los ntawm Git tsis suav nrog kev txhawb nqa vsock thaum lub tsev, yog li cia peb pab nws tus kheej:
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
}Hauv thaj arch-config.diff, ΠΏΡΠ°Π²ΡΡΠ΅ΠΌ ΡΠ½ΠΈΡΡ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π·Π°ΠΏΡΡΠΊΠ° XRDP ΠΏΠΎΠ΄ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² Arch Linux, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠ°ΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ instfiles/xrdp.sh, uas thaum lub sijhawm sau ntawv los ntawm XRDP kev faib tawm, yog li thaj yuav tsum tau hloov kho manually:
[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 -0600Cia peb sau thiab nruab lub pob nrog cov lus txib % makepkg --skipchecksums -si (tus yuam sij --skipchecksums yuav tsum tau lov tes taw checksum cov ntaub ntawv qhov chaw, txij li thaum peb kho lawv manually).
Wb mus rau lub directory xorgxrdp-devel-git, tom qab ntawd peb tsuas yog sib sau ua ke lub pob nrog cov lus txib % makepkg -si.
Wb mus rau lub directory linux-vm-tools/arch thiab khiav tsab ntawv install-config.sh, uas teeb tsa XRDP, PolicyKit thiab PAM nqis:
% sudo ./install-config.shScript installs legacy setting use_vsock, uas tau raug tsis quav ntsej txij li version 0.9.11, yog li cia peb hloov kho cov ntaub ntawv teeb tsa /etc/xrdp/xrdp.ini manually:
; 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_nodelayNtxiv rau cov ntaub ntawv ~/.xinitrc launching koj nyiam qhov rais manager/desktop ib puag ncig, uas yuav raug tua thaum lub X server pib:
% echo "exec i3" > ~/.xinitrcWb tua lub tshuab virtual. Peb qhib kev thauj mus los vsock rau lub tshuab virtual los ntawm kev khiav cov lus txib hauv qab no hauv PowerShell ua tus thawj coj:
PS Admin > Set-VM -VMName ΠΠΠΠΠΠΠΠ_ΠΠΠ¨ΠΠΠ« -EnhancedSessionTransportType HvSocketCia peb qhib lub tshuab virtual dua.
Saum toj no
Sai li qhov kev pabcuam XRDP pib tom qab lub kaw lus pib, daim ntawv thov vmconnect yuav ntes qhov no thiab cov khoom yuav dhau los muaj nyob rau hauv cov ntawv qhia zaub mov Saib -> Txhim kho Session. Thaum xaiv cov khoom no, peb yuav raug ceeb toom kom teeb tsa lub vijtsam daws teeb meem, thiab ntawm lub tab Cov Chaw Muaj Peev Xwm Hauv kev sib tham uas qhib, koj tuaj yeem xaiv cov khoom siv xa mus rau RDP kev sib kho.


Wb sib txuas. Peb yuav pom XRDP nkag qhov rai:

Sau koj tus username thiab password.
Siv
Cov txiaj ntsig los ntawm cov kev tswj hwm no yog qhov pom tau: RDP kev sib ntsib ua haujlwm ntau dua li kev teb thaum ua haujlwm nrog cov khoom siv virtual yam tsis muaj Kev Tshaj Lij Tshaj Lij. Disks poob rau hauv VM ntawm RDP muaj nyob rau hauv phau ntawv ${HOME}/shared-drives:

Cov ntawv teev cia ua haujlwm zoo. Koj tsis tuaj yeem xa cov tshuab luam ntawv sab hauv; qhov no tsis tsuas yog tsis txhawb nqa, tab sis kuj . Lub suab kuj tsis ua haujlwm, tab sis tus sau tsis xav tau qhov no. Txhawm rau ntes cov keyboard shortcuts zoo li Alt + Tab, koj yuav tsum nthuav vmconnect kom puv npo.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ vmconnect Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² Windows RDP-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/xrdp/xrdp.ini port rau tcp://:3389. Yog tias lub tshuab virtual txuas nrog Default Switch thiab tau txais kev teeb tsa network ntawm DHCP, ces koj tuaj yeem txuas rau nws los ntawm tus tswv tsev ntawm Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠ°ΡΠΈΠ½Ρ.mshome.net. Koj tsuas tuaj yeem nkag mus rau hauv TTY los ntawm daim ntawv thov vmconnect los ntawm kev tua Enhanced Mode.
Cov ntaub ntawv siv:
- Kab laum tshaj tawm ntawm GitHub: ,
Tau qhov twg los: www.hab.com
