- 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:
- กด Windows + R พิมพ์ cmd กด Ctrl + Shift + Enter เปิด Elevated Command Prompt หาก UAC ขึ้นให้กด Yes
- ใน Command Prompt ใส่คำสั่งต่อไปนี้ทีละบรรทัด กด Enter ทุกครั้ง:
bcdedit /set hypervisorlaunchtype Off bcdedit /set vm No dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
- เมื่อคำสั่งรันสำเร็จ ปิด Command Prompt และรีสตาร์ทคอมพิวเตอร์
- ที่การเริ่มต้นครั้งถัดไป เปิด 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 เปิดอยู่หรือไม่
วิธีตรวจสอบ:
- ค้นหา "Windows Defender" จากเมนู Start แล้วเปิด Windows Defender Security Center
- คลิก Device Security จากเมนูด้านซ้าย
- ในเมนู Device Security คลิก Core Isolation Details (ภายใต้ Core Isolation)
- ในเมนู Core Isolation ตรวจสอบให้แน่ใจว่า Toggle ของ Memory Integrity อยู่ในสถานะ OFF
- ปิดการตั้งค่าแล้ว รีสตาร์ทคอมพิวเตอร์ และดูว่าปัญหาแก้ไขแล้วหรือยัง
หากยังไม่สามารถรัน 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) หรือไม่