Hyper-V-д Линуксийн виртуал машинуудыг ашиглах нь зочны Windows машинуудыг бодвол арай тухтай биш юм. Үүний шалтгаан нь Hyper-V нь анх ширээний компьютерын хэрэглээнд зориулагдаагүй; Та зүгээр л цааш явж, зочны нэмэлт багцыг суулгаж, VirtualBox-д тохиолддог шиг ажиллах боломжтой график хурдасгуур, санах ой, хуваалцсан лавлах болон амьдралын бусад баяр баясгаланг авч чадахгүй.
Hyper-V өөрөө хангадаг Copy-VMFile
PowerShell дээр). Зарим зочны үйлдлийн системүүдийн хувьд, түүний дотор Виртуал Машины Холболтын програмын Windows (vmconnect.exe
) RDP протоколоор ажилладаг, дискний төхөөрөмж болон принтерүүдийг виртуал машин руу дамжуулах, мөн хуваалцсан санах ойг ашиглах боломжийг олгодог сайжруулсан сесс горимыг ашиглах боломжтой.
Сайжруулсан хуралдааны горим нь суулгасны дараа шууд Hyper-V дээр Windows дээр ажилладаг. Линукс дээрх зочдод та vsock-ийг дэмждэг RDP серверийг суулгах хэрэгтэй (Линукс дахь гипервизортой харилцах тусгай виртуал сүлжээний хаягийн зай). Хэрэв Ubuntu-ийн хувьд Windows-ийн ширээний хувилбарууд дээр Hyper-V-тэй хамт ирдэг VMCreate програм нь тусгайлан бэлтгэсэн виртуал машины загвартай бөгөөд үүнд 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://
-хаяг, тиймээс та 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
, Arch Linux-д хэрэглэгддэг файлуудын замуудын доор байгаа нэгжүүд болон 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
Виртуал машиныг унтраацгаая. PowerShell дээр дараах тушаалыг администратороор ажиллуулж VM-д зориулсан vsock тээвэрлэлтийг идэвхжүүлнэ үү:
PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket
Виртуал машиныг дахин асаацгаая.
Подключение
Системийг эхлүүлсний дараа XRDP үйлчилгээ эхэлмэгц vmconnect програм үүнийг тодорхойлж, цэсийн зүйл бэлэн болно. харах -> Сайжруулсан сесс. Энэ зүйлийг сонгоход бид дэлгэцийн нягтралыг тохируулахыг хүсэх болно, мөн таб дээр Орон нутгийн нөөц нээгдэх харилцах цонхонд та RDP сесс дотор дамжуулагдсан төхөөрөмжүүдийг сонгож болно.
Холбоцгооё. Бид XRDP нэвтрэх цонхыг харах болно:
Хэрэглэгчийн нэр, нууц үгээ оруулна уу.
Ашиглах
Эдгээр залилангийн ашиг нь мэдэгдэхүйц юм: RDP сесс нь Enhanced Sessionгүйгээр виртуал дэлгэцтэй ажиллахаас хамаагүй илүү хариу үйлдэл үзүүлдэг. RDP-ээр дамжуулан VM дотор дамжуулсан дискүүд нь лавлахад байдаг ${HOME}/shared-drives
:
Түр санах ой сайн ажиллаж байна. Та принтерүүдийг дотогшоо шидэж болохгүй, энэ нь зөвхөн дэмжигдээгүй төдийгүй бас хэрэглэгдэх болно
Хэрэв ямар нэг шалтгааны улмаас vmconnect програмын оронд Windows-д суулгасан RDP клиентийг ашиглах эсвэл жишээлбэл, өөр машинаас энэ машинд холбогдох хүсэлтэй байгаа бол та файлыг өөрчлөх шаардлагатай болно. /etc/xrdp/xrdp.ini
port
тухай tcp://:3389
. Хэрэв виртуал машин нь Default Switch-д холбогдсон бөгөөд DHCP-ээр дамжуулан сүлжээний тохиргоог хүлээн авдаг бол та хостоос үүнтэй холбогдох боломжтой. название_машины.mshome.net
. Та зөвхөн Сайжруулсан горимыг унтрааснаар vmconnect програмаас TTY-д нэвтэрч болно.
Ашигласан эх сурвалж:
Hyper-V Arch Wiki - GitHub дээрх алдааны тайлан:
1 ,2
Эх сурвалж: www.habr.com