
การใช้เครื่องเสมือนบน Linux การใช้งาน Hyper-V ตั้งแต่เริ่มต้นนั้นอาจให้ประสบการณ์ที่ไม่สะดวกสบายเท่ากับการใช้งานแบบ Guest เล็กน้อย Windows-เครื่องคอมพิวเตอร์ เหตุผลก็คือ Hyper-V ไม่ได้ถูกออกแบบมาสำหรับการใช้งานบนเดสก์ท็อปตั้งแต่แรก คุณไม่สามารถติดตั้งแพ็คเกจ Guest Additions แล้วใช้งานการเร่งความเร็วของกราฟิก คลิปบอร์ด โฟลเดอร์ที่ใช้ร่วมกัน และคุณสมบัติอื่นๆ ได้ทันทีเหมือนกับ VirtualBox
Hyper-V เองให้ - ดังนั้น แขกสามารถใช้บริการ shadow copy (VSS) ของโฮสต์ แขกสามารถส่งสัญญาณปิด แขกสามารถซิงโครไนซ์เวลาของระบบกับโฮสต์การจำลองเสมือน สามารถแลกเปลี่ยนไฟล์กับเครื่องเสมือนจากโฮสต์ (Copy-VMFile ใน PowerShell) สำหรับระบบปฏิบัติการแขกบางระบบ ซึ่งแน่นอนว่ารวมถึงระบบเหล่านั้นด้วย Windowsในแอปพลิเคชันการเชื่อมต่อเครื่องเสมือน (vmconnect.exe) มีโหมดเซสชันที่ปรับปรุงแล้ว ซึ่งทำงานผ่านโปรโตคอล RDP และอนุญาตให้คุณส่งต่ออุปกรณ์ดิสก์และเครื่องพิมพ์ไปยังเครื่องเสมือน รวมถึงใช้คลิปบอร์ดที่ใช้ร่วมกัน
โหมดเซสชันขั้นสูงใช้งานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม Windows ใน Hyper-V ทันทีหลังจากการติดตั้ง โดยมีเครื่องเสมือนอยู่บนระบบ Linux คุณจำเป็นต้องติดตั้งเซิร์ฟเวอร์ RDP ที่รองรับ vsock (พื้นที่ที่อยู่เครือข่ายเสมือนพิเศษใน RDP) Linux(ออกแบบมาเพื่อสื่อสารกับไฮเปอร์ไวเซอร์) ถ้าสำหรับ Ubuntu ในแอปพลิเคชัน VMCreate ที่มาพร้อมกับ Hyper-V ในเวอร์ชันเดสก์ท็อป Windowsมีเทมเพลตเครื่องเสมือนที่เตรียมไว้เป็นพิเศษ ซึ่งเซิร์ฟเวอร์ RDP ทำงานร่วมกับ vsock ติดตั้งไว้ล่วงหน้าแล้วด้วยการกระจายอื่น ๆ มีความชัดเจนน้อยลง - ตัวอย่างเช่นผู้เขียน เราได้เปิดใช้งาน 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
ที่เก็บ มีสคริปต์บน GitHub ที่ช่วยทำให้กระบวนการติดตั้งและกำหนดค่า XRDP สำหรับ Arch เป็นไปโดยอัตโนมัติ Linux и Ubuntuมาติดตั้ง Git กันก่อน หากยังไม่ได้ติดตั้ง พร้อมทั้งคอมไพเลอร์และซอฟต์แวร์อื่นๆ สำหรับการสร้างแบบแมนนวล จากนั้นจึงทำการโคลน repository:
% 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 จำเป็นต้องปิดใช้งานการยืนยัน checksum ของไฟล์ต้นฉบับ เนื่องจากเราแก้ไขด้วยตนเอง)
ไปที่ไดเร็กทอรีกันเถอะ 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


มาเชื่อมต่อกันเถอะ เราจะเห็นหน้าต่างเข้าสู่ระบบ XRDP:

ป้อนชื่อผู้ใช้และรหัสผ่านของคุณ
ใช้
กำไรจากการปรับเปลี่ยนเหล่านี้เห็นได้ชัด: เซสชัน RDP ทำงานตอบสนองได้ดีกว่าเมื่อทำงานกับจอแสดงผลเสมือนโดยไม่มีเซสชันที่ปรับปรุงแล้ว ดิสก์ที่ส่งต่อภายใน VM ผ่าน RDP มีอยู่ในไดเร็กทอรี ${HOME}/shared-drives:

คลิปบอร์ดทำงานได้ดี คุณไม่สามารถโยนเครื่องพิมพ์เข้าไปข้างในได้ ซึ่งไม่เพียงไม่รองรับ แต่ยังรวมถึงด้วย . เสียงยังใช้งานไม่ได้ แต่ผู้เขียนไม่ต้องการ ในการจับภาพแป้นพิมพ์ลัด เช่น Alt + Tab คุณต้องขยาย vmconnect ให้เต็มหน้าจอ
หากด้วยเหตุผลใดก็ตามที่คุณต้องการใช้แอปพลิเคชัน vmconnect ที่มีมาให้ในตัวแทนที่จะใช้แอปพลิเคชันอื่น Windows หากคุณใช้โปรแกรมไคลเอ็นต์ RDP หรือเชื่อมต่อเครื่องนี้จากเครื่องอื่น คุณจะต้องแก้ไขไฟล์ /etc/xrdp/xrdp.ini port บน tcp://:3389. หากเครื่องเสมือนเชื่อมต่อกับสวิตช์เริ่มต้นและได้รับการตั้งค่าเครือข่ายผ่าน DHCP คุณสามารถเชื่อมต่อกับโฮสต์ได้ที่ название_машины.mshome.net. คุณสามารถเข้าสู่ระบบ TTY จากแอปพลิเคชัน vmconnect โดยปิดโหมดปรับปรุงเท่านั้น
แหล่งที่ใช้:
- รายงานข้อผิดพลาดเกี่ยวกับ GitHub: ,
ที่มา: will.com
