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

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

Η χρήση εικονικών μηχανών Linux στο Hyper-V out of the box είναι κάπως λιγότερο άνετη από ό,τι με τις επισκέπτες μηχανές Windows. Ο λόγος για αυτό είναι ότι το Hyper-V δεν προοριζόταν αρχικά για επιτραπέζια χρήση. Δεν μπορείτε απλώς να προχωρήσετε και να εγκαταστήσετε το πακέτο προσθηκών επισκεπτών και να αποκτήσετε λειτουργική επιτάχυνση γραφικών, πρόχειρο, κοινόχρηστους καταλόγους και άλλες χαρές της ζωής, όπως συμβαίνει στο VirtualBox.

Το ίδιο το Hyper-V παρέχει πολλαπλές υπηρεσίες ολοκλήρωσης - έτσι, οι επισκέπτες μπορούν να χρησιμοποιήσουν την υπηρεσία σκιώδους αντιγραφής (VSS) του κεντρικού υπολογιστή, οι επισκέπτες μπορούν να στείλουν ένα σήμα τερματισμού λειτουργίας, οι επισκέπτες μπορούν να συγχρονίσουν την ώρα του συστήματος με τον κεντρικό υπολογιστή εικονικοποίησης, τα αρχεία μπορούν να ανταλλάσσονται με την εικονική μηχανή από τον κεντρικό υπολογιστή (Copy-VMFile στο PowerShell). Για ορισμένα επισκέπτη λειτουργικά συστήματα, συμπεριλαμβανομένων, φυσικά, των Windows, στην εφαρμογή σύνδεσης εικονικής μηχανής (vmconnect.exe) Διατίθεται η βελτιωμένη λειτουργία περιόδου λειτουργίας, η οποία λειτουργεί μέσω του πρωτοκόλλου RDP και σας επιτρέπει να προωθείτε συσκευές δίσκου και εκτυπωτές στην εικονική μηχανή, καθώς και να χρησιμοποιείτε το κοινόχρηστο πρόχειρο.

Η βελτιωμένη λειτουργία συνεδρίας λειτουργεί εξαρχής στα Windows σε Hyper-V αμέσως μετά την εγκατάσταση. Με επισκέπτες σε Linux, πρέπει να εγκαταστήσετε έναν διακομιστή RDP που υποστηρίζει vsock (ένας ειδικός χώρος διευθύνσεων εικονικού δικτύου στο Linux που έχει σχεδιαστεί για να επικοινωνεί με τον hypervisor). Εάν για το 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-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 σε πλήρη οθόνη.

Εάν για κάποιο λόγο υπάρχει η επιθυμία να χρησιμοποιήσετε το πρόγραμμα-πελάτη RDP που είναι ενσωματωμένο στα Windows αντί για την εφαρμογή vmconnect ή, για παράδειγμα, να συνδεθείτε σε αυτό το μηχάνημα από άλλο μηχάνημα, τότε θα χρειαστεί να αλλάξετε το αρχείο /etc/xrdp/xrdp.ini port επί tcp://:3389. Εάν η εικονική μηχανή είναι συνδεδεμένη στον Προεπιλεγμένο διακόπτη και λαμβάνει ρυθμίσεις δικτύου μέσω DHCP, τότε μπορείτε να συνδεθείτε σε αυτήν από τον κεντρικό υπολογιστή στη διεύθυνση название_машины.mshome.net. Μπορείτε να συνδεθείτε στο TTY μόνο από την εφαρμογή vmconnect απενεργοποιώντας τη Βελτιωμένη λειτουργία.

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο