ProHoster > وبلاگ > اداره > حالت جلسه پیشرفته را برای مهمانان Arch Linux در Hyper-V فعال کنید
حالت جلسه پیشرفته را برای مهمانان Arch Linux در Hyper-V فعال کنید
استفاده از ماشین های مجازی لینوکس در Hyper-V خارج از جعبه تا حدودی راحت تر از ماشین های ویندوز مهمان است. دلیل این امر این است که Hyper-V در ابتدا برای استفاده در دسکتاپ در نظر گرفته نشده بود. شما نمی توانید به سادگی ادامه دهید و بسته اضافه شده مهمان را نصب کنید و شتاب گرافیکی قابل اجرا، کلیپ بورد، دایرکتوری های مشترک و دیگر لذت های زندگی را دریافت کنید، همانطور که در VirtualBox اتفاق می افتد.
خود Hyper-V فراهم می کند خدمات ادغام چندگانه - بنابراین، مهمانان می توانند از سرویس کپی سایه (VSS) میزبان استفاده کنند، مهمانان می توانند سیگنال خاموش شدن را ارسال کنند، مهمانان می توانند زمان سیستم را با میزبان مجازی سازی همگام کنند، فایل ها را می توان با ماشین مجازی از میزبان مبادله کرد (Copy-VMFile در PowerShell). برای برخی از سیستم عامل های مهمان، از جمله، البته، ویندوز، در برنامه اتصال ماشین مجازی (vmconnect.exe) حالت جلسه پیشرفته در دسترس است که از طریق پروتکل RDP کار می کند و به شما امکان می دهد دستگاه ها و چاپگرهای دیسک را به ماشین مجازی فوروارد کنید و همچنین از کلیپ بورد مشترک استفاده کنید.
Enhanced Session Mode در ویندوز Hyper-V درست پس از نصب خارج از جعبه کار می کند. با مهمانان در لینوکس، باید یک سرور RDP را نصب کنید که از vsock (یک فضای آدرس شبکه مجازی ویژه در لینوکس طراحی شده برای برقراری ارتباط با هایپروایزر) پشتیبانی می کند. اگر برای اوبونتو، برنامه VMCreate که با Hyper-V در نسخههای دسکتاپ ویندوز ارائه میشود، یک قالب ماشین مجازی آمادهشده ویژه دارد که در آن یک سرور RDP با vsock اجرا میشود. XRDP قبلاً از قبل نصب شده است ، سپس با توزیع های دیگر کمتر و کمتر واضح است - به عنوان مثال ، نویسنده این پست معلوم شد که ESM را در فدورا فعال می کند. در اینجا حالت جلسه پیشرفته را برای ماشین مجازی Arch Linux نیز فعال می کنیم.
نصب خدمات یکپارچه سازی
همه چیز در اینجا کم و بیش ساده است، فقط باید بسته را نصب کنیم hyperv از مخزن جامعه:
% 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 را در صورتی که قبلاً نصب نشده است به همراه کامپایلر و سایر نرم افزارهای ساخت دستی نصب کنید و سپس مخزن را کلون کنید:
در زمان نوشتن این مقاله، آخرین نسخه XRDP که توسط اسکریپت نصب شده است makepkg.shپیشنهادی در مخزن 0.9.11 است، که در آن تجزیه شکسته استvsock://-addresss، بنابراین باید XRDP را از Git و درایور Xorg را برای آن از AUR به صورت دستی نصب کنید. پچ XRDP ارائه شده در AUR نیز کمی قدیمی است، بنابراین باید PKGBUILD و پچ را به صورت دستی ویرایش کنید.
ما مخازن را با PKGBUILD از AUR کلون می کنیم (معمولاً این رویه همراه با اسمبلی توسط برنامه هایی مانند خودکار انجام می شود. بله، اما نویسنده تمام این روش را روی یک سیستم تمیز انجام داد):
در یک پچ arch-config.diffکه واحدها و اسکریپتهای راهاندازی XRDP را در مسیرهای فایلهای مورد استفاده در آرچ لینوکس ویرایش میکند، از جمله، شامل یک وصله به اسکریپت است. instfiles/xrdp.sh، که در زمان نگارش حذف شد از توزیع XRDP، بنابراین پچ باید به صورت دستی ویرایش شود:
با دستور پکیج را بسازید و نصب کنید % 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 را برای VM فعال کنید:
به محض شروع سرویس XRDP پس از شروع سیستم، برنامه vmconnect این را تعیین می کند و آیتم منو در دسترس خواهد بود. چشم انداز -> جلسه تقویت شده. وقتی این مورد را انتخاب میکنید، از ما خواسته میشود که وضوح صفحه را تنظیم کنیم، و در برگه منابع محلی در گفتگویی که باز می شود، می توانید دستگاه های ارسال شده در جلسه RDP را انتخاب کنید.
بیایید وصل شویم. پنجره ورود به XRDP را خواهیم دید:
نام کاربری و رمز عبور خود را وارد کنید.
استفاده
سود حاصل از این دستکاری ها قابل توجه است: جلسه RDP بسیار پاسخگوتر از زمانی است که با یک صفحه نمایش مجازی بدون Session پیشرفته کار می کنید. دیسک های ارسال شده در داخل ماشین مجازی از طریق RDP در دایرکتوری موجود هستند ${HOME}/shared-drives:
کلیپ بورد به خوبی کار می کند. شما نمی توانید چاپگرها را داخل پرتاب کنید، این نه تنها پشتیبانی نمی شود، بلکه همچنین انتقال دیسک را خراب می کند. صدا نیز کار نمی کند، اما نویسنده به آن نیازی نداشته است. برای گرفتن میانبرهای صفحه کلید مانند Alt + Tab، باید vmconnect را به حالت تمام صفحه گسترش دهید.
اگر به دلایلی تمایل به استفاده از سرویس گیرنده RDP ساخته شده در ویندوز به جای برنامه vmconnect وجود دارد یا مثلاً از دستگاه دیگری به این دستگاه متصل شوید، باید فایل را تغییر دهید. /etc/xrdp/xrdp.iniport بر tcp://:3389. اگر ماشین مجازی به سوئیچ پیش فرض متصل است و تنظیمات شبکه را از طریق DHCP دریافت می کند، می توانید از طریق هاست به آن متصل شوید. название_машины.mshome.net. فقط با خاموش کردن حالت پیشرفته میتوانید از برنامه vmconnect وارد TTY شوید.