Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو

Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو

لينڪس ورچوئل مشينون استعمال ڪرڻ ۾ Hyper-V دٻي کان ٻاهر Windows مهمان مشينون استعمال ڪرڻ کان ٿورو گهٽ آرامده تجربو آهي. ان جو سبب اهو آهي ته Hyper-V اصل ۾ ڊيسڪ ٽاپ جي استعمال لاءِ ارادو نه هو؛ توهان صرف مهمانن جي اضافو جو هڪ پيڪيج انسٽال نٿا ڪري سگهو ۽ فنڪشنل گرافڪس ايڪسلريشن حاصل ڪري سگهو ٿا، هڪ ڪلپ بورڊ، شيئر ڪيل ڊائريڪٽريون ۽ زندگي جون ٻيون خوشيون، جيئن ورچوئل بڪس ۾ ٿئي ٿو.

Hyper-V پاڻ مهيا ڪري ٿو ڪيترائي انضمام خدمتون - تنهن ڪري، مهمان ميزبان جي شيڊ ڪاپي سروس (VSS) استعمال ڪري سگهن ٿا، مهمان هڪ بند سگنل موڪلي سگهن ٿا، مهمان ورچوئلائيزيشن ميزبان سان سسٽم جي وقت کي هم وقت سازي ڪري سگهن ٿا، فائلون ميزبان کان ورچوئل مشين سان مٽائي سگهجن ٿيون (Copy-VMFile PowerShell ۾). ڪجھ مهمان آپريٽنگ سسٽم لاءِ، بشمول، يقيناً، ونڊوز، ورچوئل مشين ڪنيڪشن ايپليڪيشن ۾ (vmconnect.exe) وڌايل سيشن موڊ دستياب آهي، آر ڊي پي پروٽوڪول ذريعي ڪم ڪندي ۽ توهان کي ڊسڪ ڊوائيسز ۽ پرنٽر کي ورچوئل مشين ڏانهن منتقل ڪرڻ جي اجازت ڏئي ٿي، انهي سان گڏ هڪ گڏيل ڪلپ بورڊ استعمال ڪريو.

وڌايل سيشن موڊ انسٽاليشن کان فوري طور تي Hyper-V ۾ ونڊوز ۾ دٻي کان ٻاهر ڪم ڪري ٿو. لينڪس تي مهمانن سان، توهان کي هڪ آر ڊي پي سرور نصب ڪرڻ جي ضرورت آهي جيڪو vsock کي سپورٽ ڪري ٿو (لينڪس ۾ هڪ خاص ورچوئل نيٽورڪ ايڊريس اسپيس جيڪو هائپر ويزر سان رابطي لاءِ ٺهيل آهي). جيڪڏهن Ubuntu لاءِ VMCreate ايپليڪيشن جيڪا ونڊوز جي ڊيسڪ ٽاپ ايڊيشن تي Hyper-V سان اچي ٿي، اتي هڪ خاص تيار ڪيل ورچوئل مشين ٽيمپليٽ آهي جنهن ۾ هڪ آر ڊي پي سرور vsock سان ڪم ڪري رهيو آهي. ايڪس پي ڊي اڳ ۾ ئي نصب ٿيل آهي، پوء ٻين تقسيم سان اهو گهٽ ۽ گهٽ صاف آهي - مثال طور، ليکڪ هي پوسٽ مون Fedora ۾ ESM کي فعال ڪرڻ جو انتظام ڪيو. هتي اسان آرڪ لينڪس ورچوئل مشين لاءِ بهتر ڪيل سيشن موڊ کي چالو ڪنداسين.

انضمام خدمتن کي انسٽال ڪرڻ

هتي هر شيء گهٽ يا گهٽ سادو آهي، اسان کي صرف پيڪيج کي نصب ڪرڻ جي ضرورت آهي hyperv ڪميونٽي جي ذخيري مان:

% sudo pacman -S hyperv

اچو ته VSS ۽ مٽاسٽا جي خدمتن کي فعال ڪريو ميٽا ڊيٽا ۽ فائلون:

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

XRDP انسٽال ڪرڻ

مخزن linux-vm-tools GitHub تي اسڪرپٽ مهيا ڪري ٿي جيڪي آرڪ لينڪس ۽ Ubuntu لاء XRDP کي انسٽال ڪرڻ ۽ ترتيب ڏيڻ جي عمل کي خودڪار ڪن ٿيون. اچو ته انسٽال ڪريون Git، جيڪڏهن اهو اڳ ۾ ئي انسٽال ٿيل نه آهي، ڪمپائلر ۽ دستي تعميرات لاءِ ٻيا سافٽ ويئر، ۽ پوءِ مخزن کي ڪلون ڪريون:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

هن آرٽيڪل لکڻ جي وقت، ايڪس آر ڊي پي جو تازو رليز، جيڪو اسڪرپٽ طرفان نصب ڪيو ويو آهي makepkg.shهڪ تجويز ڪيل مخزن ۾ 0.9.11 آهي، جنهن ۾ پارسنگ ٽوڙي وئي آهي vsock://-addresses، تنهنڪري توهان کي Git مان XRDP انسٽال ڪرڻو پوندو ۽ Xorg ڊرائيور ان لاءِ AUR دستي طور تي. AUR ۾ پيش ڪيل XRDP پيچ به ٿوري پراڻي آهي، تنهنڪري توهان کي PKGBUILD کي ايڊٽ ڪرڻو پوندو ۽ دستي طور تي پيچ ڪرڻو پوندو.

اچو ته AUR کان PKGBUILDs سان گڏ ذخيرن کي ڪلون ڪريون (عام طور تي اهو طريقو، تعمير سان گڏ، پروگرامن ذريعي خودڪار ٿيندو آهي جهڙوڪ اهن، پر ليکڪ اهو سڄو عمل صاف سسٽم تي ڪيو):

% 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، جيڪو آرڪ لينڪس ۾ استعمال ٿيل فائل رستن جي تحت يونٽن ۽ 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 ۾ هيٺ ڏنل حڪم هلائڻ سان ورچوئل مشين لاءِ vsock ٽرانسپورٽ کي چالو ڪريون ٿا:

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

اچو ته ورچوئل مشين کي ٻيهر چالو ڪريون.

ڪنيڪشن

جيئن ئي سسٽم شروع ٿيڻ کان پوءِ XRDP سروس شروع ٿيندي، vmconnect ايپليڪيشن هن کي ڳوليندي ۽ شيون مينيو ۾ دستياب ٿي وينديون. ڏسو -> وڌايل سيشن. جڏهن هي شيون چونڊيو، اسان کي چيو ويندو ته اسڪرين جي قرارداد کي سيٽ ڪرڻ لاء، ۽ ٽيب تي مقامي وسيلا ڊائلاگ ۾ جيڪو کلي ٿو، توھان منتخب ڪري سگھوٿا ڊوائيسز کي اڳتي وڌڻ لاءِ RDP سيشن ۾.

Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو
Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو

اچو ته ڳنڍيون. اسان ڏسنداسين XRDP لاگ ان ونڊو:

Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو

پنهنجو يوزر نالو ۽ پاسورڊ داخل ڪريو.

استعمال ڪريو

انهن ڦيرڦار مان فائدو قابل ذڪر آهي: آر ڊي پي سيشن تمام گهڻو جوابي طور تي ڪم ڪري ٿو جڏهن بهتر ٿيل سيشن کان سواءِ ورچوئل ڊسپلي سان ڪم ڪري رهيو آهي. RDP ذريعي VM اندر ڇڏيل ڊسڪ ڊاريڪٽري ۾ موجود آهن ${HOME}/shared-drives:

Hyper-V ۾ آرڪ لينڪس مهمانن لاءِ بهتر ڪيل سيشن موڊ کي فعال ڪريو

ڪلپ بورڊ ٺيڪ ڪم ڪري ٿو. توهان اندر پرنٽر اڳتي نه ٿا ڪري سگهو؛ اهو نه رڳو سپورٽ آهي، پر پڻ ڊسڪ فارورڊنگ کي ٽوڙي ٿو. آواز به ڪم نه ڪندو آهي، پر ليکڪ کي اها ضرورت نه هئي. ڪيبورڊ شارٽ ڪٽس کي پڪڙڻ لاءِ جيئن Alt+Tab، توھان کي وڌائڻو پوندو vmconnect کي پوري اسڪرين تي.

جيڪڏھن ڪنھن سبب جي ڪري توھان استعمال ڪرڻ چاھيو ٿا RDP ڪلائنٽ ونڊوز ۾ ٺاھيل vmconnect ايپليڪيشن جي بدران، يا مثال طور، ھن مشين سان ٻي مشين سان ڳنڍيو، ته توھان کي فائل تبديل ڪرڻي پوندي. /etc/xrdp/xrdp.ini port تي tcp://:3389. جيڪڏهن ورچوئل مشين ڊفالٽ سوئچ سان ڳنڍيل آهي ۽ DHCP ذريعي نيٽ ورڪ سيٽنگون وصول ڪري ٿي، ته پوءِ توهان ان سان ڳنڍي سگهو ٿا ميزبان کان название_машины.mshome.net. توھان صرف لاگ ان ڪري سگھو ٿا TTY ۾ vmconnect ايپليڪيشن مان وڌايل موڊ کي بند ڪري.

استعمال ٿيل ذريعن:

  1. Hyper-V - آرڪ وڪي
  2. GitHub تي بگ رپورٽون: 1, 2

جو ذريعو: www.habr.com

تبصرو شامل ڪريو