Ενεργοποίηση βελτιωμένης λειτουργίας περιόδου λειτουργίας για το Arch Linux-επισκέπτες στο Hyper-V

Ενεργοποίηση βελτιωμένης λειτουργίας περιόδου λειτουργίας για το Arch Linux-επισκέπτες στο Hyper-V

Χρήση εικονικών μηχανών σε Linux στο Hyper-V από την πρώτη στιγμή είναι μια ελαφρώς λιγότερο άνετη εμπειρία από ό,τι με το guest Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Το ίδιο το Hyper-V παρέχει πολλαπλές υπηρεσίες ολοκλήρωσης - έτσι, οι επισκέπτες μπορούν να χρησιμοποιήσουν την υπηρεσία σκιώδους αντιγραφής (VSS) του κεντρικού υπολογιστή, οι επισκέπτες μπορούν να στείλουν ένα σήμα τερματισμού λειτουργίας, οι επισκέπτες μπορούν να συγχρονίσουν την ώρα του συστήματος με τον κεντρικό υπολογιστή εικονικοποίησης, τα αρχεία μπορούν να ανταλλάσσονται με την εικονική μηχανή από τον κεντρικό υπολογιστή (Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection (vmconnect.exe) Διατίθεται η βελτιωμένη λειτουργία περιόδου λειτουργίας, η οποία λειτουργεί μέσω του πρωτοκόλλου RDP και σας επιτρέπει να προωθείτε συσκευές δίσκου και εκτυπωτές στην εικονική μηχανή, καθώς και να χρησιμοποιείτε το κοινόχρηστο πρόχειρο.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP είναι ήδη προεγκατεστημένο, τότε με άλλες διανομές είναι όλο και λιγότερο σαφές - για παράδειγμα, ο συγγραφέας αυτή η ανάρτηση получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с 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-tools на 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 (συνήθως αυτή η διαδικασία, μαζί με τη συναρμολόγηση, αυτοματοποιείται από προγράμματα όπως Yay, αλλά ο συγγραφέας έκανε όλη αυτή τη διαδικασία σε ένα καθαρό σύστημα):

% 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 θα το καθορίσει και το στοιχείο μενού θα γίνει διαθέσιμο. Προβολή -> Βελτιωμένη συνεδρία. Όταν επιλέξετε αυτό το στοιχείο, θα μας ζητηθεί να ορίσουμε την ανάλυση οθόνης και στην καρτέλα Τοπικοί πόροι στο παράθυρο διαλόγου που ανοίγει, μπορείτε να επιλέξετε τις συσκευές που προωθούνται εντός της περιόδου λειτουργίας 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. Μπορείτε να συνδεθείτε στο TTY μόνο από την εφαρμογή vmconnect απενεργοποιώντας τη Βελτιωμένη λειτουργία.

Χρησιμοποιημένες πηγές:

  1. Hyper-V Arch Wiki
  2. Αναφορές σφαλμάτων στο GitHub: 1, 2

Πηγή: www.habr.com

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster