Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V

Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V

Истифодаи мошинҳои виртуалӣ дар Linux Дар Hyper-V, берун аз қуттӣ, нисбат ба меҳмон каме камтар бароҳат аст. Windows-мошинҳо. Сабаби ин дар он аст, ки Hyper-V дар аввал барои истифодаи компютер тарҳрезӣ нашуда буд; шумо наметавонед танҳо бастаи иловаҳои меҳмонро насб кунед ва суръатбахшии графикаи корӣ, буфер, директорияҳои муштарак ва дигар бартариҳоро ба даст оред, ба монанди он ки шумо бо VirtualBox метавонед.

Худи Hyper-V таъмин менамояд хидматҳои ҳамгироии сершумор - ҳамин тавр, меҳмонон метавонанд аз хидмати нусхабардории сояи ҳост (VSS) истифода баранд, меҳмонон метавонанд сигнали хомӯширо фиристанд, меҳмонон метавонанд вақти системаро бо хости виртуализатсия ҳамоҳанг созанд, файлҳоро бо мошини виртуалӣ аз мизбон иваз кардан мумкин аст (Copy-VMFile дар PowerShell). Барои баъзе системаҳои оператсионии меҳмон, ки албатта дар бар мегирад Windows, дар барномаи Пайвастшавии Мошини Виртуалӣ (vmconnect.exe) Ҳолати мукаммали ҷаласа мавҷуд аст, ки тавассути протоколи RDP кор мекунад ва ба шумо имкон медиҳад, ки дастгоҳҳои диск ва чопгарҳоро ба мошини виртуалӣ интиқол диҳед ва инчунин буфери муштаракро истифода баред.

Реҷаи беҳтаршудаи сессия аз қуттӣ кор мекунад Windows дар Hyper-V фавран пас аз насб. Бо меҳмонон Linux ба шумо лозим аст, ки сервери RDP-ро насб кунед, ки vsock-ро дастгирӣ мекунад (фазои махсуси суроғаи шабакаи виртуалӣ дар Linux, барои муошират бо гипервизор тарҳрезӣ шудааст). Агар барои Ubuntu дар барномаи VMCreate, ки бо Hyper-V дар версияҳои мизи корӣ меояд Windows, як шаблони махсуси омодашудаи мошини виртуалӣ мавҷуд аст, ки дар он сервери RDP бо vsock кор мекунад. XRDP аллакай пешакӣ насб карда шудааст, пас бо тақсимоти дигар он камтар ва камтар равшан аст - масалан, муаллиф ин пост Мо тавонистем ESM-ро дар Fedora фаъол созем. Дар ин ҷо мо инчунин режими сессияи такмилёфтаро барои мошини виртуалии Arch фаъол мекунем. Linux.

Насб кардани хидматҳои ҳамгироӣ

Дар ин ҷо ҳама чиз камтар ё камтар содда аст, мо танҳо бояд бастаро насб кунем 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 скриптҳоеро пешниҳод мекунад, ки раванди насб ва танзими 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 дастӣ насб кунед. Ямоқи XRDP, ки дар AUR пешниҳод шудааст, низ каме кӯҳна шудааст, аз ин рӯ ба шумо лозим меояд, ки 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 ҳама гуна муҳаррири матн.

Биёед параметрҳои сохтмонро таҳрир кунем. 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 дар зери масирҳои файле, ки дар 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 инро муайян мекунад ва ҷузъи меню дастрас мешавад. View -> Сеанси мукаммал. Вақте ки шумо ин ашёро интихоб мекунед, аз мо хоҳиш карда мешавад, ки ҳалли экран ва дар ҷадвалро таъин кунем Манбаъҳои маҳаллӣ дар муколамае, ки кушода мешавад, шумо метавонед дастгоҳҳоеро, ки дар дохили сессияи RDP ирсол шудаанд, интихоб кунед.

Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V
Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V

Биёед пайваст шавем. Мо равзанаи воридшавии XRDP-ро мебинем:

Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V

Номи корбар ва пароли худро ворид кунед.

Истифода кунед

Фоида аз ин манипулятсияҳо назаррас аст: сессияи RDP нисбат ба кор бо дисплейи виртуалӣ бе Сессияи мукаммалшуда хеле ҷавобгартар кор мекунад. Дискҳое, ки дар дохили VM тавассути RDP фиристода мешаванд, дар феҳрист дастрасанд ${HOME}/shared-drives:

Фаъолсозии режими беҳтаршудаи сессия барои Arch Linux-меҳмонон дар Hyper-V

Буфер хуб кор мекунад. Шумо чопгарҳоро дар дохили он партофта наметавонед, ин на танҳо дастгирӣ намешавад, балки инчунин интиқоли дискро вайрон мекунад. Садо низ кор намекунад, аммо ба муаллиф лозим набуд. Барои сабт кардани миёнабурҳои клавиатура ба монанди Alt + Tab, шумо бояд vmconnect -ро ба экрани пурра васеъ кунед.

Агар бо ягон сабаб шумо хоҳед, ки барномаи дарунсохти vmconnect-ро ба ҷои он истифода баред Windows муштарии RDP ё, масалан, ба ин мошин аз мошини дигар пайваст шавед, пас ба шумо лозим меояд, ки файлро тағир диҳед /etc/xrdp/xrdp.ini port ба tcp://:3389. Агар мошини маҷозӣ ба Гузариши пешфарз пайваст бошад ва танзимоти шабакаро тавассути DHCP қабул кунад, шумо метавонед ба он аз мизбон дар название_машины.mshome.net. Шумо метавонед танҳо аз барномаи vmconnect ба TTY бо хомӯш кардани Ҳолати мукаммал ворид шавед.

Сарчашмаҳои истифодашуда:

  1. Hyper-V Arch Wiki
  2. Ҳисобот оид ба хатогиҳо дар GitHub: 1, 2

Манбаъ: will.com

Хостинги боэътимодро барои сайтҳо бо муҳофизати DDoS, серверҳои VPS VDS харед 🔥 Харидани хостинги боэътимоди вебсайт бо муҳофизати DDoS, серверҳои VPS VDS | ProHoster