Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไขข้อผิดพลาด "VT-x ไม่พร้อมใช้งาน (verr_vmx_no_vmx)" บน VirtualBox

  • 1. ปิดการทำงานของ Hyper-V
  • 2. เปิด Nested Virtualization ในการตั้งค่า Avast
  • 3. ปิด Core Isolation ใน Windows Defender
  • 4. เปิด VT-X จากการตั้งค่า BIOS

บางผู้ใช้พบข้อความ VT-x is not available (verr_vmx_no_vmx) ทุกครั้งที่พยายามเริ่มต้น VM (Virtual Machine) ผ่าน VirtualBox หรือซอฟต์แวร์คล้ายๆ กัน

สาเหตุของข้อผิดพลาด VT-x is not available (verr_vmx_no_vmx)

เราสืบสวนปัญหาโดยการจำลองและศึกษารายงานจากผู้ใช้ พบสถานการณ์หลายอย่างที่นำไปสู่ข้อผิดพลาดนี้:

  • VT-X ถูกปิดในการตั้งค่า BIOS — อาจถูกปิดด้วยตนเองหรือโดยแอปพลิเคชันภายนอกบางตัว
  • CPU ของเครื่องไม่รองรับ VT-X — กรณีนี้พบน้อย แต่มีโอกาสเกิดขึ้นได้
  • Hyper-V Virtualization เปิดอยู่ใน Windows — นี่เป็นสาเหตุที่พบบ่อยที่สุด เนื่องจากเทคโนโลยี Hyper-V ของ Microsoft ขัดแย้งกับ VT-X ทำให้ OS ปิด VT-x อัตโนมัติเมื่อ Hyper-V เปิดอยู่
  • การอัปเดต Avast ปิด VT-X — Avast เปิดตัวอัปเดตที่ปิด VT-x ขณะที่ Real-time Protection ทำงานอยู่ เว้นแต่ผู้ใช้จะเปิด Nested Virtualization ในการตั้งค่า
  • Core Isolation เปิดอยู่ — Core Isolation เป็นตัวเลือกความปลอดภัยของ Windows Defender ที่ขัดแย้งกับ VT-X ขณะเปิดอยู่

หากคุณกำลังเผชิญปัญหา บทความนี้ให้รายการขั้นตอนแก้ไขที่ยืนยันแล้ว ด้านล่างคือวิธีการที่ผู้ใช้คนอื่นใช้แก้ไขปัญหาได้ สั่งลำดับตามความซับซ้อนและประสิทธิภาพ โปรดทำตามลำดับจนกว่าจะพบวิธีที่มีผล

1. ปิดการทำงานของ Hyper-V Virtualization

นี่เป็นสถานการณ์ที่พบบ่อยหลายคนรายงานว่าหลังอัปเดต Windows 10 Fall Creators Update เริ่มเจอปัญหานี้บ่อยขึ้น มาเริ่มตรวจสอบว่า Hyper-V ไม่ได้ขัดจังหวะ VT-x กัน เมื่อ Hyper-V เปิดอยู่ จะปิด VT-x อัตโนมัติ อาจเป็นว่าอัปเดตทำให้ Hyper-V ทำงานผิดปกติ เราจะปิด Hyper-V ด้วยคำสั่งผ่าน Command Prompt

อาจเจอปัญหานี้หลังติดตั้งแอปเช่น Docker โปรดทราบว่าแม้จะถอนแอปที่เปิด Hyper-V แล้ว เทคโนโลยีนี้อาจยังคงเปิดอยู่ — ทำให้ VT-x ไม่ทำงาน

วิธีปิด Microsoft Hyper-V จาก Elevated Command Prompt:

  1. กด Windows + R พิมพ์ cmd กด Ctrl + Shift + Enter เปิด Elevated Command Prompt หาก UAC ขึ้นให้กด Yes
  2. ใน Command Prompt ใส่คำสั่งต่อไปนี้ทีละบรรทัด กด Enter ทุกครั้ง:
    bcdedit /set hypervisorlaunchtype Off
    bcdedit /set vm No
    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
  3. เมื่อคำสั่งรันสำเร็จ ปิด Command Prompt และรีสตาร์ทคอมพิวเตอร์
  4. ที่การเริ่มต้นครั้งถัดไป เปิด VirtualBox VM อีกครั้ง ดูว่ายังมีข้อผิดพลาดหรือไม่

หากยังเห็นข้อผิดพลาด VT-x is not available (verr_vmx_no_vmx) ให้ลองวิธีถัดไป

2. เปิด Nested Virtualization จากเมนูตั้งค่า Avast (หากใช้ Avast)

หากคุณใช้ Avast โปรดทราบว่าการอัปเดตเมื่อมิ.ย. 2017 เพิ่มคุณสมบัติที่ปิด VT-X อัตโนมัติบนระบบของคุณหากเงื่อนไขบางอย่างเป็นจริง

โชคดีที่สามารถแก้ไขได้โดยไม่ถอนโปรแกรมความปลอดภัยภายนอก ผู้ใช้หลายคนรายงานว่าแก้ไขได้โดยไปที่ Avast Settings > Troubleshooting และติ๊กถูกที่ Use nested virtualization where available และ Enable hardware-assisted virtualization

หากวิธีนี้ไม่เกี่ยวข้องกับสถานการณ์ของคุณ ให้ลองวิธีถัดไป

3. ปิด Core Isolation จาก Windows Defender

Core Isolation เป็นตัวเลือก Device Security ของ Windows Defender ที่ขัดแย้งกับ VT-X ขณะเปิดอยู่ หากคุณเจอข้อผิดพลาด VT-x is not available (verr_vmx_no_vmx) และใช้ Windows Defender เราขอแนะนำให้ตรวจสอบว่า Core Isolation เปิดอยู่หรือไม่

วิธีตรวจสอบ:

  1. ค้นหา "Windows Defender" จากเมนู Start แล้วเปิด Windows Defender Security Center
  2. คลิก Device Security จากเมนูด้านซ้าย
  3. ในเมนู Device Security คลิก Core Isolation Details (ภายใต้ Core Isolation)
  4. ในเมนู Core Isolation ตรวจสอบให้แน่ใจว่า Toggle ของ Memory Integrity อยู่ในสถานะ OFF
  5. ปิดการตั้งค่าแล้ว รีสตาร์ทคอมพิวเตอร์ และดูว่าปัญหาแก้ไขแล้วหรือยัง

หากยังไม่สามารถรัน VirtualBox VM ได้โดยไม่เจอข้อผิดพลาด ให้ลองวิธีสุดท้าย

4. เปิด VT-X จากการตั้งค่า BIOS

หากมาถึงขั้นนี้ยังไม่ได้ผล น่าจะเป็นเพราะ VT-X ถูกปิดใน BIOS โปรดทราบว่าแอปพลิเคชันภายนอกบางตัวอาจเขียนทับการตั้งค่านี้ได้ จึงอย่าเพิกเฉยวิธีนี้ก่อนตรวจสอบ

ขั้นตอนการเข้าถึง BIOS และตรวจสอบ VT-X แตกต่างกันไปตามผู้ผลิตเมนบอร์ด แต่โดยทั่วไปจะพบการตั้งค่านี้ภายใต้ Security (System Security) รายการ Virtualization Technology หรือ VTx/VTd

หากทุกวิธีข้างต้นล้มเหลว แสดงว่าเครื่องของคุณอาจไม่รองรับ VT-X สามารถตรวจสอบได้โดยติดตั้งและรันเครื่องมือของ Microsoft (ที่นี่) เพื่อดูว่า CPU รองรับ HAV (เทคโนโลยีเบื้องหลัง VT-X) หรือไม่