หากเครื่องเสมือนของคุณทำงานบน Hyper-V ติดขัดด้วยเหตุผลบางประการ หยุดตอบสนอง และไม่เริ่ม/หยุด/รีเซ็ตหลังจากคลิกปุ่มที่เกี่ยวข้องในคอนโซล Hyper-V วิธีเดียวที่จะแก้ไขปัญหานี้ได้คือบังคับให้ฆ่า กระบวนการที่รับผิดชอบ VM นี้บนโฮสต์ OS เราจะแสดงวิธีบังคับรีสตาร์ท Hyper-V VM ที่ทำงานบน Windows Server 2016/2019 โดยไม่ต้องรีบูตโฮสต์ทั้งหมดและ VM ที่ทำงานอยู่ทั้งหมด (หากคุณไม่มีคลัสเตอร์ Hyper-V HA และ Live-Migration)
สารบัญ:
- Hyper-V VM ติดอยู่ในสถานะ "กำลังหยุด/กำลังเริ่ม"
- Hyper-V Manager ค้างอยู่ใน “กำลังเชื่อมต่อกับบริการการจัดการเครื่องเสมือน”
- จะฆ่ากระบวนการ Hung VM ในตัวจัดการงานได้อย่างไร
- ฆ่า Hyper-VM ที่แช่แข็งโดยใช้ PowerShell
- Hyper-V:ไม่สามารถเปลี่ยนสถานะ VM
Hyper-V VM ติดอยู่ในสถานะ “กำลังหยุด/กำลังเริ่มต้น”
สมมติว่า Hyper-V VM ตัวใดตัวหนึ่งของคุณติดอยู่ใน หยุด (หยุด-วิกฤติ) หรือ เริ่มต้น (เริ่มต้น x%) สถานะ
ระบบปฏิบัติการของแขกไม่ตอบสนองและปุ่ม "ปิด", "ปิดเครื่อง" และ "รีเซ็ต" ใน Hyper-V Manager ไม่พร้อมใช้งาน หรือส่งคืนข้อผิดพลาดต่อไปนี้เมื่อกด:
แอปพลิเคชันพบข้อผิดพลาดขณะพยายามเปลี่ยนสถานะของ VMไม่สามารถเปลี่ยนสถานะได้
ไม่สามารถดำเนินการได้ในขณะที่วัตถุอยู่ในสถานะปัจจุบัน
Hyper-V Manager ค้างอยู่ที่ “กำลังเชื่อมต่อกับบริการการจัดการเครื่องเสมือน”
หาก Hyper-V ของคุณไม่แสดงเครื่องเสมือนในคอนโซล Hyper-V Manager และส่งคืนข้อผิดพลาด “การเชื่อมต่อกับบริการการจัดการเครื่องเสมือน” คุณต้องรีสตาร์ท vmms.exe (บริการจัดการเครื่องเสมือน Hyper-V ) กระบวนการ. นี่เป็นการดำเนินการที่ปลอดภัยและจะไม่ขัดจังหวะ VM ที่ทำงานอยู่ วิธีที่ง่ายที่สุดในการเริ่มต้นกระบวนการ vmms.exe ใหม่คือผ่านบริการ vmms โดยใช้คอนโซล services.msc หรือด้วย cmdlet การจัดการบริการ PowerShell:
Get-Service vmms | Restart-Service
จะฆ่ากระบวนการ Hung VM ในตัวจัดการงานได้อย่างไร
วิธีเดียวที่จะบังคับให้ปิดเครื่องรีสตาร์ท VM ที่ค้างอยู่โดยไม่ต้องรีบูตโฮสต์ Hyper-V ทั้งหมดคือการยุติเวิร์กโฟลว์ที่ทำงานอยู่ใน guest OS VM ทั้งหมดบนโฮสต์ Hyper-V เริ่มต้นโดยใช้ vmwp.exe กระบวนการ (กระบวนการของผู้ปฏิบัติงานเครื่องจักรเสมือน ). ในการค้นหากระบวนการ คุณต้องค้นหา GUID ของเครื่องเสมือน
คุณสามารถรับ VM GUID ผ่าน Hyper-V ผู้จัดการ คอนโซล เปิดการตั้งค่าเซิร์ฟเวอร์ Hyper-V ในส่วนเซิร์ฟเวอร์ ตำแหน่งของไฟล์การกำหนดค่า VM จะแสดงขึ้น (ในกรณีของเราคือ D:\VMStore)
เปิดไดเร็กทอรีนี้ใน File Explorer และค้นหาโฟลเดอร์ที่มีชื่อเดียวกับเครื่องเสมือนของคุณ คัดลอก GUID ที่ระบุในชื่อของไฟล์คอนฟิกูเรชัน VM ที่มีนามสกุล *.vmcx
เรียกใช้ งาน ผู้จัดการ และไปที่ รายละเอียด แท็บ เครื่องเสมือนทั้งหมดกำลังทำงานในอินสแตนซ์ของตัวเองของ vmwp.exe . ในการพิจารณาว่ากระบวนการใดรับผิดชอบ VM ของคุณ คุณต้องมี GUID ของ VM ที่วางสายที่คุณได้รับก่อนหน้านี้ ค้นหากระบวนการ vmwp.exe ที่มี GUID ของ VM ของคุณใน ผู้ใช้ ชื่อ คอลัมน์. ยุติกระบวนการนี้ (สิ้นสุดภารกิจ )
เครื่องเสมือนจะถูกบังคับให้หยุด ตอนนี้คุณสามารถทำอะไรกับมันได้
ฆ่า Frozen Hyper-VM โดยใช้ PowerShell
การค้นหาและฆ่ากระบวนการของเครื่องเสมือนที่วางสายง่ายกว่ามากโดยใช้ PowerShell CLI เรียกใช้คอนโซล PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ (ต้องเพิ่มบัญชีของคุณในกลุ่ม "ผู้ดูแลระบบ Hyper-V")
ในกรณีนี้ Stop-VM . ในตัว cmdlet จะไม่ยอมให้คุณปิด VM หากคุณพยายามเรียกใช้Stop-VM -Force
คำสั่งมันยังค้าง เห็นได้ชัดว่ารอการตอบกลับจาก VM คุณต้องฆ่ากระบวนการ VM ด้วย GUID คุณสามารถรับ VM GUID ตามชื่อได้ ตัวอย่างเช่น หากต้องการรับ GUID ของ VM ที่มีชื่อ SVM-GUARDEDHOST1 ให้เรียกใช้คำสั่ง:
$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID
หากคุณไม่ต้องการพิมพ์ชื่อเต็มของ VM คุณสามารถแสดงรายการ VM ทั้งหมดที่ลงทะเบียนบนโฮสต์ Hyper-V นี้ได้:
Get-VM | Select Name, Id
คัดลอก VM GUID ของคุณจากรายการผลลัพธ์
ค้นหาตัวระบุกระบวนการ vmwp.exe (PID) สำหรับ VMGUID นี้:
$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})
จากนั้น ใช้คำสั่ง Stop-Process คุณต้องบังคับยกเลิกกระบวนการนี้:
Stop-Process ($VMWMProc.ProcessId) –Force
นี่เป็นวิธีที่ง่ายในการยุติกระบวนการทำงานของเครื่องเสมือน Hyper-V ที่วางสายอย่างเด็ดขาด
เคล็ดลับ . เรายังมีคำอธิบายของวิธีการที่คล้ายกันในการฆ่ากระบวนการของ VM ที่วางสายบน VMWare ESXiHyper-V:ไม่สามารถเปลี่ยนสถานะ VM
บางครั้งมันเกิดขึ้นที่แม้หลังจากฆ่ากระบวนการ VM ที่วางสายไปแล้ว คุณก็ไม่สามารถเปิด VM ได้ ยิ่งไปกว่านั้น มันค้างในสถานะเริ่มต้นโดยมีข้อผิดพลาด:
Virtual Machine Connection Failed to Change State.
ในกรณีนี้ ให้ตรวจสอบตัวเลือกต่อไปนี้:
- ตรวจสอบว่ามีพื้นที่ว่างเพียงพอบนดิสก์ที่เก็บไฟล์ Hyper-V VM
- หากมีการเชื่อมต่ออิมเมจ ISO ในการตั้งค่า VM ให้ตรวจสอบความพร้อมใช้งาน
- ตรวจสอบการตั้งค่าอะแดปเตอร์เครือข่ายของ VM อะแดปเตอร์เครือข่ายเสมือนต้องเชื่อมต่อกับสวิตช์เสมือน Hyper-V ที่มีอยู่ (ต้องไม่มีสถานะอะแดปเตอร์เครือข่าย – ข้อผิดพลาดในการกำหนดค่า สำหรับ NIC ใด ๆ );
- ตรวจสอบว่า Hyper-V Virtual Management Service (VMMS) กำลังทำงานและไม่ติดอยู่ในสถานะหยุด
- ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ป้องกันไวรัสของคุณไม่ได้บล็อกการเข้าถึงไฟล์ VM เพิ่มเส้นทางไปยังไดเร็กทอรี VM ไปยังการยกเว้นโปรแกรมป้องกันไวรัส (โปรดตรวจสอบวิธีเพิ่มการยกเว้นไปยังโปรแกรมป้องกันไวรัส Windows Defender ในตัวบน Windows Server 2016)
- ตรวจสอบข้อผิดพลาดที่เกี่ยวข้องกับ Hyper-V ใน Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> Hyper-V-Worker