Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү

Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү

Hyper-V-д Линуксийн виртуал машинуудыг ашиглах нь зочны Windows машинуудыг бодвол арай тухтай биш юм. Үүний шалтгаан нь Hyper-V нь анх ширээний компьютерын хэрэглээнд зориулагдаагүй; Та зүгээр л цааш явж, зочны нэмэлт багцыг суулгаж, VirtualBox-д тохиолддог шиг ажиллах боломжтой график хурдасгуур, санах ой, хуваалцсан лавлах болон амьдралын бусад баяр баясгаланг авч чадахгүй.

Hyper-V өөрөө хангадаг олон интеграцийн үйлчилгээ - ингэснээр зочид хостын сүүдрийн хуулбар үйлчилгээг (VSS) ашиглах боломжтой, зочид унтраах дохио илгээх боломжтой, зочид виртуалчлалын хосттой системийн цагийг синхрончлох, хостоос виртуал машинтай файл солилцох боломжтой (Copy-VMFile PowerShell дээр). Зарим зочны үйлдлийн системүүдийн хувьд, түүний дотор Виртуал Машины Холболтын програмын Windows (vmconnect.exe) RDP протоколоор ажилладаг, дискний төхөөрөмж болон принтерүүдийг виртуал машин руу дамжуулах, мөн хуваалцсан санах ойг ашиглах боломжийг олгодог сайжруулсан сесс горимыг ашиглах боломжтой.

Сайжруулсан хуралдааны горим нь суулгасны дараа шууд Hyper-V дээр Windows дээр ажилладаг. Линукс дээрх зочдод та vsock-ийг дэмждэг RDP серверийг суулгах хэрэгтэй (Линукс дахь гипервизортой харилцах тусгай виртуал сүлжээний хаягийн зай). Хэрэв Ubuntu-ийн хувьд Windows-ийн ширээний хувилбарууд дээр Hyper-V-тэй хамт ирдэг VMCreate програм нь тусгайлан бэлтгэсэн виртуал машины загвартай бөгөөд үүнд RDP сервер vsock-тэй ажилладаг. XRDP аль хэдийн урьдчилан суулгасан, дараа нь бусад түгээлтийн хувьд энэ нь бага, бага тодорхой байна - жишээ нь, зохиогч энэ бичлэг Энэ нь Fedora дахь ESM-г идэвхжүүлсэн. Энд бид Arch Linux виртуал машинд зориулсан Enhanced Session Mode-г идэвхжүүлнэ.

Интеграцийн үйлчилгээг суулгаж байна

Энд бүх зүйл илүү энгийн, бид багцыг суулгахад л хангалттай hyperv олон нийтийн мэдээллийн сангаас:

% sudo pacman -S hyperv

VSS үйлчилгээг идэвхжүүлэх, солилцох мета өгөгдөл болон файлууд:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

XRDP суулгац

хадгалах газар linux-vm-хэрэгслүүд GitHub дээр Arch Linux болон Ubuntu-д зориулсан XRDP-г суулгах, тохируулах үйл явцыг автоматжуулах скриптүүдийг өгдөг. 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, Arch Linux-д хэрэглэгддэг файлуудын замуудын доор байгаа нэгжүүд болон XRDP эхлүүлэх скриптүүдийг засварладаг бөгөөд бусад зүйлсээс гадна скриптийн нөхөөсийг агуулдаг. 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

Виртуал машиныг унтраацгаая. PowerShell дээр дараах тушаалыг администратороор ажиллуулж VM-д зориулсан vsock тээвэрлэлтийг идэвхжүүлнэ үү:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

Виртуал машиныг дахин асаацгаая.

Подключение

Системийг эхлүүлсний дараа XRDP үйлчилгээ эхэлмэгц vmconnect програм үүнийг тодорхойлж, цэсийн зүйл бэлэн болно. харах -> Сайжруулсан сесс. Энэ зүйлийг сонгоход бид дэлгэцийн нягтралыг тохируулахыг хүсэх болно, мөн таб дээр Орон нутгийн нөөц нээгдэх харилцах цонхонд та RDP сесс дотор дамжуулагдсан төхөөрөмжүүдийг сонгож болно.

Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү
Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү

Холбоцгооё. Бид XRDP нэвтрэх цонхыг харах болно:

Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү

Хэрэглэгчийн нэр, нууц үгээ оруулна уу.

Ашиглах

Эдгээр залилангийн ашиг нь мэдэгдэхүйц юм: RDP сесс нь Enhanced Sessionгүйгээр виртуал дэлгэцтэй ажиллахаас хамаагүй илүү хариу үйлдэл үзүүлдэг. RDP-ээр дамжуулан VM дотор дамжуулсан дискүүд нь лавлахад байдаг ${HOME}/shared-drives:

Hyper-V дээр Arch Linux зочдод зориулсан сайжруулсан сесс горимыг идэвхжүүлнэ үү

Түр санах ой сайн ажиллаж байна. Та принтерүүдийг дотогшоо шидэж болохгүй, энэ нь зөвхөн дэмжигдээгүй төдийгүй бас хэрэглэгдэх болно диск дамжуулахыг эвддэг. Дуу нь бас ажиллахгүй байгаа ч зохиогчид хэрэггүй байсан. Alt + Tab гэх мэт гарын товчлолыг авахын тулд vmconnect-ийг бүтэн дэлгэц болгон өргөжүүлэх хэрэгтэй.

Хэрэв ямар нэг шалтгааны улмаас vmconnect програмын оронд Windows-д суулгасан RDP клиентийг ашиглах эсвэл жишээлбэл, өөр машинаас энэ машинд холбогдох хүсэлтэй байгаа бол та файлыг өөрчлөх шаардлагатай болно. /etc/xrdp/xrdp.ini port тухай tcp://:3389. Хэрэв виртуал машин нь Default Switch-д холбогдсон бөгөөд DHCP-ээр дамжуулан сүлжээний тохиргоог хүлээн авдаг бол та хостоос үүнтэй холбогдох боломжтой. название_машины.mshome.net. Та зөвхөн Сайжруулсан горимыг унтрааснаар vmconnect програмаас TTY-д нэвтэрч болно.

Ашигласан эх сурвалж:

  1. Hyper-V Arch Wiki
  2. GitHub дээрх алдааны тайлан: 1, 2

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх