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

แก้ไขข้อผิดพลาด VirtualBox:NtCreateFile (\ Device \ VBoxDrvStub) STATUS_OBJECT_NAME_NOT_FOUND

หาก Oracle VM VirtualBox ไม่สามารถเริ่มเครื่องเสมือนและแสดง “NtCreateFile(\Device\VBoxDrvStub) ล้มเหลว:STATUS_OBJECT_NAME_NOT_FOUND (0xc0000034)” โดยปกติจะหมายถึง ไดรเวอร์เคอร์เนล ของ VirtualBox (เช่น VBoxDrv หรือ VBoxSup ) หายไป , ถูกบล็อก หรือ ไม่โหลด . หากไม่มีไดรเวอร์นี้ VirtualBox จะไม่สามารถสร้างอินเทอร์เฟซอุปกรณ์ตามที่คาดหวังได้ (VBoxDrvStub เส้นทางของอุปกรณ์) ดังนั้น VM จึงยกเลิกเมื่อเปิดใช้งาน

กรณีนี้มักเกิดขึ้นหลังจากการอัปเดต VirtualBox, การติดตั้งที่ไม่สมบูรณ์, การติดตั้งไดรเวอร์ที่บล็อกการรักษาความปลอดภัยของ Windows หรือเมื่อ Hyper-V / VBS (Virtualization-Based Security) เปลี่ยนวิธีการจัดการการจำลองเสมือนและไดรเวอร์บนระบบ

ขึ้นอยู่กับเวอร์ชัน VirtualBox และการตั้งค่า Windows ของคุณ VirtualBox อาจล้มเหลวในการโหลดไดรเวอร์ในแบบ ดั้งเดิม หรือทำงานผ่าน Hyper-V เท่านั้น (ซึ่งอาจส่งผลต่อความเข้ากันได้/ประสิทธิภาพ)

ก่อนที่คุณจะเริ่มต้น ให้ทำการรีสตาร์ท หนึ่งครั้ง (ไม่ปิดเครื่อง) บนพีซีหลายเครื่อง ปิดเครื่อง ใช้การเริ่มต้นอย่างรวดเร็วและอาจโหลดไดรเวอร์ได้ไม่เต็มที่ในขณะที่ รีสตาร์ท บังคับให้โหลดไดรเวอร์ใหม่ทั้งหมด

1. เริ่ม/รีสตาร์ทบริการไดรเวอร์ VirtualBox (VBoxDrv / VBoxSup)

หากมีการติดตั้งไดรเวอร์ไว้แต่ไม่ทำงาน การเริ่มบริการสามารถแก้ไขข้อผิดพลาดได้ทันที ใช้งานได้เฉพาะเมื่อมีไดรเวอร์/บริการอยู่แล้ว

  1. ค้นหา พร้อมรับคำสั่ง ใน Windows Search
  2. คลิกขวาและเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
  3. ขั้นแรก ให้ระบุว่าชื่อบริการไดรเวอร์ VirtualBox ใดที่มีอยู่ในระบบของคุณ:
    sc query type= driver | findstr /i vbox
  4. เริ่มบริการไดรเวอร์ที่คุณพบ (ตัวอย่าง):
    net start vboxdrv

    หากแจ้งว่าชื่อบริการไม่ถูกต้อง ลอง:

    net start vboxsup

    ความสำเร็จดูเหมือน: “บริการเริ่มต้นได้สำเร็จ”

  5. รีสตาร์ทพีซีของคุณแล้วเปิด VirtualBox อีกครั้ง

หากคุณได้รับข้อผิดพลาด เช่น “ชื่อบริการไม่ถูกต้อง” / “ไม่พบ” ไดรเวอร์อาจหายไปหรือลงทะเบียนไม่ถูกต้อง ย้ายไปยังวิธีถัดไป

ยืนยัน (ใช้ชื่อบริการที่ตรงกับที่คุณมี):

sc query vboxdrv

หากระบบของคุณใช้ vboxsup ให้รัน:

sc query vboxsup

ผลลัพธ์ที่คาดหวัง: มองหา สถานะ :4 วิ่ง .

2. ติดตั้งไดรเวอร์ VirtualBox (.inf) ด้วยตนเอง

ข้อจำกัดด้านความปลอดภัยหรือนโยบายของ Windows สามารถป้องกันไม่ให้ VirtualBox ติดตั้งไดรเวอร์ระหว่างการตั้งค่า การติดตั้งไดรเวอร์ .inf ด้วยตนเอง ลงทะเบียนอย่างถูกต้อง เนื่องจากเวอร์ชัน VirtualBox แตกต่างกัน ให้ติดตั้ง .inf ที่ตรงกับบริการที่คุณต้องการเริ่มต้น:

  • หาก vboxdrv หายไป/ไม่เริ่มทำงาน: ใช้ vboxdrv โฟลเดอร์และติดตั้ง VBoxDrv.inf .
  • หาก vboxsup หายไป/ไม่เริ่มทำงาน: ใช้ vboxsup โฟลเดอร์และติดตั้ง VBoxSup.inf .
  1. เปิด File Explorer และไปที่โฟลเดอร์ใดโฟลเดอร์หนึ่งเหล่านี้ (แล้วแต่ว่ามีอยู่ในระบบของคุณ):
    C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv
    C:\Program Files\Oracle\VirtualBox\drivers\vboxsup
  2. ค้นหาไฟล์ที่ลงท้ายด้วย .inf (ตัวอย่างเช่น VBoxDrv.inf หรือ VBoxSup.inf ).
  3. คลิกขวาที่ .inf ไฟล์และเลือกติดตั้ง .หมายเหตุ: หากคุณไม่เห็นนามสกุลไฟล์ ให้เปิด ดู และเปิดใช้งาน นามสกุลไฟล์ หรือตรวจสอบคุณสมบัติของแต่ละไฟล์

    หาก "ติดตั้ง" ไม่พร้อมใช้งาน ให้ข้ามไปที่ วิธีที่ 4 และทำการติดตั้ง Repair/Clean ใหม่ (เรียกใช้โปรแกรมติดตั้งในฐานะผู้ดูแลระบบ)

  4. รีสตาร์ทพีซีของคุณหลังจากการติดตั้งเสร็จสิ้น
  5. หลังจากรีบูต ให้เปิด พร้อมรับคำสั่ง ในฐานะผู้ดูแลระบบและเริ่มบริการจับคู่ (ใช้ชื่อที่คุณมีจริง):
    sc start vboxdrv

    หรือ หากระบบของคุณใช้ VBoxSup:

    sc start vboxsup

    ความสำเร็จดูเหมือน: “สถานะ :4 กำลังทำงาน” เมื่อคุณรัน sc query <service-name> .

  6. เปิด VirtualBox และเริ่ม VM ของคุณอีกครั้ง

หากคุณยังคงเห็นข้อผิดพลาดเดิม ดำเนินการต่อด้านล่าง คุณอาจมีข้อขัดแย้งด้านการจำลองเสมือน/ความปลอดภัย (Hyper-V/VBS/Memory Integrity) หรือการติดตั้งใช้งานไม่ได้

3. ปิดใช้งานคุณลักษณะ Hyper-V และการจำลองเสมือน (ขั้นตอนการวินิจฉัย)

ในบางระบบ Hyper-V และ VBS สามารถป้องกันไม่ให้ VirtualBox โหลดไดรเวอร์ในโหมดดั้งเดิมหรือเปลี่ยนวิธีที่ VirtualBox สามารถเข้าถึงการจำลองเสมือนสำหรับฮาร์ดแวร์ การปิดใช้งานคุณลักษณะเหล่านี้เป็นวิธีที่ดีในการยืนยันว่าปัญหาคือความขัดแย้งของระบบเสมือน/ความปลอดภัยหรือไม่

หมายเหตุ: การปิดใช้งานคุณลักษณะเหล่านี้อาจส่งผลต่อ WSL2 , นักเทียบท่าเดสก์ท็อป , วินโดวส์แซนด์บ็อกซ์ และอีมูเลเตอร์บางตัว คุณสามารถเปิดใช้งานได้อีกครั้งหลังการทดสอบ

  1. ค้นหา เปิดหรือปิดคุณลักษณะของ Windows ใน Windows Search แล้วเปิดขึ้นมา
  2. ค้นหา ไฮเปอร์-V และยกเลิกการเลือก
  3. และยกเลิกการเลือกสิ่งเหล่านี้หากเปิดใช้งานอยู่:
    • แพลตฟอร์มไฮเปอร์ไวเซอร์ของ Windows
    • แพลตฟอร์มเครื่องเสมือน
    • วินโดวส์แซนด์บ็อกซ์ (ถ้ามี)
  4. คลิก ตกลง และรีสตาร์ทพีซีของคุณ
  5. เปิด VirtualBox และทดสอบ VM

ไม่บังคับแต่สำคัญ: แม้ว่า Hyper-V จะปิดอยู่ แต่ Windows อาจยังคงใช้การจำลองเสมือนผ่าน VBS / ความสมบูรณ์ของหน่วยความจำ . หากต้องการทดสอบ ให้ปิด ความสมบูรณ์ของหน่วยความจำ จาก:ความปลอดภัยของ Windows> ความปลอดภัยของอุปกรณ์> การแยกส่วนหลัก จากนั้นรีสตาร์ทและทดสอบอีกครั้ง

เคล็ดลับ: หาก Windows บล็อกไดรเวอร์ ให้ทำเครื่องหมายที่ความปลอดภัยของ Windows> ประวัติการป้องกัน สำหรับเหตุการณ์ที่กล่าวถึง
กล่องเสมือน , VBoxDrv.sys , VBoxSup.sys หรือ “ไดรเวอร์ถูกบล็อค” หาก อนุญาต หรือ กู้คืน มีตัวเลือกให้ใช้งาน ใช้งาน จากนั้นติดตั้ง/ซ่อมแซม VirtualBox ใหม่

4. ซ่อมแซมหรือล้างการติดตั้ง VirtualBox ใหม่

หากไฟล์ไดรเวอร์เสียหาย ไม่ตรงกัน หรือถูกลบออกไปบางส่วน การติดตั้งใหม่ทำให้มั่นใจได้ว่าไดรเวอร์และบริการที่ถูกต้องได้รับการติดตั้งและลงทะเบียนอีกครั้ง
หากคุณมีโปรแกรมติดตั้งอยู่แล้ว ให้ลองซ่อมแซม ก่อน (ถ้ามี) ถ้าไม่เช่นนั้น ให้ทำการติดตั้งใหม่ทั้งหมด

  1. ถอนการติดตั้ง Oracle VM VirtualBox จาก:
    การตั้งค่า> แอป> แอปที่ติดตั้ง (หรือแอปและคุณลักษณะ)
  2. รีสตาร์ทพีซีของคุณหลังจากถอนการติดตั้ง
  3. การล้างข้อมูลแบบเลือกได้ (เฉพาะในกรณีที่ยังมีข้อมูลเหลืออยู่หลังจากถอนการติดตั้ง):
    เปิด File Explorer และไปที่:
    C:\Windows\System32\drivers
  4. ค้นหาไฟล์ที่เหลือชื่อเช่น VBox*.sys (เช่น VBoxDrv.sys, VBoxSup.sys)ข้อสำคัญ: ลบเฉพาะ VBox*.sys หากถอนการติดตั้ง VirtualBox โดยสมบูรณ์ และคุณสามารถระบุได้อย่างชัดเจนว่าเป็นไฟล์ที่เหลือของ VirtualBox
  5. ลบ VBox*.sys ที่เหลือ ไฟล์หากมีอยู่ หาก Windows ไม่ยอมให้คุณลบออก อย่าบังคับ ให้ติดตั้งใหม่ต่อ
  6. ดาวน์โหลดและติดตั้ง VirtualBox เวอร์ชันล่าสุด จากนั้นรีสตาร์ทพีซีของคุณเคล็ดลับ: คลิกขวาที่ตัวติดตั้งและเลือก เรียกใช้ในฐานะผู้ดูแลระบบ เพื่อให้แน่ใจว่าไดรเวอร์ติดตั้งอย่างถูกต้อง
  7. หากคุณใช้ VirtualBox Extension Pack (USB 2/3, RDP ฯลฯ) ให้ติดตั้งเวอร์ชันที่ตรงกัน สำหรับการสร้าง VirtualBox ของคุณ
  8. เปิด VirtualBox และเริ่ม VM อีกครั้ง

เกี่ยวกับผู้เขียน

แก้ไขข้อผิดพลาด VirtualBox:NtCreateFile (\ Device \ VBoxDrvStub) STATUS_OBJECT_NAME_NOT_FOUND

ฮัมซา โมฮัมหมัด อันวาร์

Hamza Mohammad Anwar เป็นนักพัฒนาเว็บ JavaScript ระดับกลางที่มุ่งเน้นการพัฒนาแอปพลิเคชันประสิทธิภาพสูงโดยใช้เทคโนโลยี MERN ชุดทักษะของเขาประกอบด้วยความเชี่ยวชาญใน ReactJS, MongoDB, Express NodeJS และเทคโนโลยีอื่น ๆ ที่เกี่ยวข้อง Hamza ยังเป็นมืออาชีพที่ได้รับการรับรองด้านไอทีของ Google ซึ่งเน้นย้ำถึงความสามารถของเขาในด้านการสนับสนุนด้านไอที ในฐานะนักแก้ปัญหาตัวยง เขาสร้างข้อผิดพลาดในคอมพิวเตอร์ขึ้นใหม่เพื่อแก้ไขปัญหาและค้นหาวิธีแก้ไขปัญหาทางเทคนิคต่างๆ