ผู้เยี่ยมชม Windows 64 บิตใน VirtualBox เป็นไปไม่ได้หากไม่มีการสนับสนุน VT-x [ซ้ำ]


8

ฉันติดตั้ง Windows Vista 32 บิตใน VM ด้วย VirtualBox เรียบร้อยแล้ว ตอนนี้ฉันกำลังพยายามทำสิ่งเดียวกันกับ Windows Vista 64 บิตและมันก็ไม่ทำงาน ฉันสร้าง VM แล้ว แต่ดูเหมือนว่าจะไม่เริ่มทำงานจากอิมเมจ ISO Vista แบบ 64 บิต มันพ่นข้อผิดพลาดตัวจัดการการบูตนี้

a

โฮสต์ระบบปฏิบัติการเป็น Windows 7 64 บิตบนโปรเซสเซอร์ Intel Core 2 Duo 64 บิต ตอนนี้ฉันได้ทำสิ่งเดียวกันและติดตั้ง VirtualBox เวอร์ชันเดียวกันบนคอมพิวเตอร์เครื่องอื่นที่ใช้ Windows 7 64 บิตสร้าง VM แล้ว ... ระหว่างกระบวนการติดตั้ง VM ฉันสังเกตเห็นว่ามีตัวเลือกเพิ่มเติมให้เลือก เมื่อฉันเลือกแขก Os นี่คือภาพหน้าจอ

ข

คุณสามารถเห็นตัวเลือกเหล่านั้นได้ในระหว่างที่มันบอกว่า 64- บิตฉันไม่มีตัวเลือกเหล่านั้นในคอมพิวเตอร์เครื่องอื่น ตอนนี้อันนี้รัน Intel Core 2 Quad ซึ่งเป็นรุ่นปลายที่สูงกว่า รองรับเทคโนโลยีการจำลองเสมือนของ Intel ในขณะที่เทคโนโลยีอื่นไม่รองรับ

นี่คือลักษณะของกล่องโต้ตอบเดียวกันบนคอมพิวเตอร์ Core 2 Duo นี่คือภาพหน้าจอ

ค

นี่อาจเป็นเหตุผลทำไม หมายความว่าคุณไม่สามารถเลียนแบบ Windows 64-bit OS แขกที่ทุกคนด้วย VirtualBox เว้นแต่หน่วยประมวลผลของคุณสนับสนุนเทคโนโลยี virtualization Intel? ฉันเข้าใจว่าเทคโนโลยีนี้ทำให้สิ่งต่าง ๆ เร็วขึ้น แต่ไม่ให้คุณเลียนแบบระบบปฏิบัติการเลย ... นั่นมันสุดขั้วเลยใช่ไหม?

ถ้าเป็นเช่นนั้นคุณแนะนำอะไรให้ฉันใช้แทน


@Ramhound คุณเพียงแค่ถามว่าฉันแน่ใจหรือไม่ว่าฉันใช้ระบบปฏิบัติการ 64 บิตแล้วเปลี่ยนใจ ฉันได้รับความคิดเห็นในกล่องจดหมายของฉัน ดีสำหรับสิ่งที่มันคุ้มค่าใช่ฉันแน่ใจว่าคอมพิวเตอร์ทั้งสองเครื่องกำลังทำงานรุ่น 64 บิตของ Windows 7
ซา

@Ramhound ข้อ จำกัด ของฮาร์ดแวร์? คุณเห็นด้วยกับสิ่งนี้เกี่ยวข้องกับการสนับสนุน VT-x หรือขาดอะไรบ้าง?
Samir

โดยไม่คำนึงถึงข้อ จำกัด ของฮาร์ดแวร์คุณควรสามารถทำสิ่งต่าง ๆ ในซอฟต์แวร์ได้เสมอ นั่นเป็นหนึ่งในข้อดีของการทำเวอร์ช่วลไลเซชั่นเพราะช่วยให้คุณสามารถแทนที่ฮาร์ดแวร์ทางกายภาพในซอฟต์แวร์ได้อย่างสมบูรณ์ ฉันรู้ว่า Intel VT-x นั้นดี แต่ทำไมคุณไม่สามารถจำลองระบบปฏิบัติการ 64 บิตใน VirtualBox ทั้งหมดในซอฟต์แวร์แม้ว่ามันจะช้ามาก? ทำไมพวกเขาไม่อนุญาตให้คุณทำเช่นนั้น? นี่เป็นข้อ จำกัด ใน VirtualBox
Samir

Emm ... คุณไม่ได้หมายถึง "คุณไม่สามารถทำอะไรกับซอฟต์แวร์ได้หากฮาร์ดแวร์ไม่รองรับ"
Samir

คำตอบ:


18

ส่วน 3.1.2 ของคู่มือ VirtualBox ระบุไว้อย่างชัดเจนว่าคุณต้องการการสนับสนุนการจำลองเสมือนสำหรับฮาร์ดแวร์เพื่อใช้ระบบปฏิบัติการแขก 64 บิต (เน้นการเพิ่ม):

VirtualBox รองรับระบบปฏิบัติการ 64 บิตสำหรับแขกแม้ใช้กับระบบปฏิบัติการโฮสต์ 32 บิตโดยมีเงื่อนไขว่าตรงตามเงื่อนไขดังต่อไปนี้:

  1. คุณต้องมีโปรเซสเซอร์ 64 บิตพร้อมการสนับสนุนการจำลองเสมือนสำหรับฮาร์ดแวร์ (ดูหัวข้อ 10.3“ การจำลองเสมือนของฮาร์ดแวร์และซอฟต์แวร์”)

  2. คุณต้องเปิดใช้งานการจำลองเสมือนสำหรับฮาร์ดแวร์สำหรับ VM เฉพาะที่คุณต้องการการสนับสนุน 64 บิต การจำลองเสมือนซอฟต์แวร์ไม่ได้รับการรองรับสำหรับ VM แบบ 64 บิต

  3. หากคุณต้องการใช้การสนับสนุนแขก 64 บิตบนระบบปฏิบัติการโฮสต์ 32 บิตคุณต้องเลือกระบบปฏิบัติการ 64 บิตสำหรับ VM เฉพาะ เนื่องจากรองรับ 64 บิตบนโฮสต์แบบ 32 บิตจะมีค่าใช้จ่ายเพิ่มเติม VirtualBox จะเปิดใช้งานการสนับสนุนนี้เฉพาะเมื่อมีการร้องขออย่างชัดเจน

ที่มา: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

ส่วนที่ 10.3 ระบุเช่นนี้ (เน้นเพิ่มเติม):

การสนับสนุนของผู้เข้าพักของ VirtualBox 64 บิต (เพิ่มเข้ามาด้วยรุ่น 2.0) และ multiprocessing (SMP เพิ่มกับรุ่น 3.0) ทั้งสองต้องการจำลองเสมือนสำหรับฮาร์ดแวร์ที่จะเปิดใช้งาน (ข้อ จำกัด นี้ไม่มากนักเนื่องจากซีพียู 64 บิตและมัลติคอร์ส่วนใหญ่มาพร้อมกับการจำลองเสมือนสำหรับฮาร์ดแวร์อย่างไรก็ตามข้อยกเว้นของกฎนี้คือซีพียู Intel Celeron และ AMD Opteron รุ่นเก่า)

ที่มา: https://www.virtualbox.org/manual/ch10.html#hwvirt

ดังนั้นคุณต้องมีโปรเซสเซอร์ที่รองรับ VT-x หรือ AMD-V เพื่อใช้แขก 64- บิตกับ VirtualBox อย่างไรก็ตาม QEMU, Bochs และ VMWare Player ทั้งหมดรองรับแขก 64- บิตโดยไม่มีการสนับสนุนการจำลองเสมือนสำหรับฮาร์ดแวร์ (อย่างน้อยตามหน้านี้ )


ใช่ ... และนั่นก็โชคร้าย ฉันคิดว่าจะเรียกแขก 64- บิตในโฮสต์ 32- บิตเท่านั้น แต่จากบทที่ 10 พวกเขากล่าวโดยเฉพาะว่าการจำลองเสมือนสำหรับฮาร์ดแวร์เป็นข้อกำหนด ฉันสงสัยว่าทำไมมันถึงไม่เป็นข้อกำหนดสำหรับแขก 32- บิต? ทำไมต้องเป็น 64- บิต
Samir

ฉันให้คะแนนคุณถึงแม้ว่าฉันได้โพสต์ข้อความที่แน่นอนนี้ในคำตอบของฉันเองแล้ว ขอบคุณสำหรับความพยายาม! ฉันจะรวมคำตอบของฉันกับคุณถ้าไม่เป็นไร
Samir

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

@sammyg ดูเหมือนว่า QEMU, Bochs และ VMWare Player ทั้งหมดนั้นสนับสนุนดูการแก้ไขล่าสุดของฉัน
nc4pk

ไม่จริง. เครื่องเล่นวีเอ็มแวร์ยังต้องการการจำลองเสมือนเพื่อรันการเดาแบบ 64 บิตและเป็นไฮเปอร์ไวเซอร์อื่น ๆ คุณสามารถรันการเดาแบบ 64 บิตโดยไม่มีการจำลองเสมือนบนอีมูเลเตอร์เช่น Bochs หรือ qemu หรือซอฟต์แวร์ paravirtualization เช่น Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv

0

ไม่มีเครื่องเสมือนไฮเปอร์ไวเซอร์สนับสนุนเครื่องเสมือน 64 บิตใน x86 CPU โดยไม่มีการจำลองเสมือนเพราะการแยกเครื่องเสมือนจะเป็นไปไม่ได้หากไม่มีมัน

เหตุผลที่ถูกกล่าวถึงในWikipedia (เหมืองที่เน้น):

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

Revision D และตัวประมวลผล AMD 64 บิตรุ่นใหม่กว่า (ตามกฎทั่วไปซึ่งผลิตใน 90 นาโนเมตรหรือน้อยกว่า) เพิ่มการสนับสนุนพื้นฐานสำหรับการแบ่งส่วนในโหมดยาวทำให้สามารถเรียกใช้แขก 64- บิตในโฮสต์ 64- บิตผ่านการแปลไบนารี . Intel ไม่ได้เพิ่มการสนับสนุนการแบ่งกลุ่มเพื่อการใช้งาน x86-64 (Intel 64) ทำให้การทำเวอร์ชวลไลซ์ชันสำหรับซอฟต์แวร์แบบ 64 บิตเท่านั้นเป็นไปไม่ได้บน CPU ของ Intel แต่การสนับสนุน Intel VT-x ทำให้การจำลองเสมือนช่วยฮาร์ดแวร์ 64 บิตบนแพลตฟอร์ม Intel

VMWareยังกล่าวด้วยว่าการขาดระบบเสมือนจริงทำให้มันท้าทายการปกป้อง VM

ความท้าทายของการจำลองเสมือน x86-64

  • สถาปัตยกรรม AMD64 เริ่มต้นไม่รวมการแบ่งส่วนในโหมด 64 บิต
    • การแบ่งส่วนยังหายไปจาก EM64T

เราจะป้องกัน VMM ได้อย่างไร

  • การสนับสนุนแขก 64 บิตต้องการความช่วยเหลือด้านฮาร์ดแวร์เพิ่มเติม
    • การตรวจสอบข้อ จำกัด ของเซกเมนต์พร้อมใช้งานในโหมด 64 บิตสำหรับโปรเซสเซอร์ AMD รุ่นใหม่
    • VT-x สามารถใช้เพื่อปกป้อง VMM บน EM64T
      • ต้องการวิธีดักจับและจำลองแทน BT

อ่านเพิ่มเติม:

Intel CPUs ต้องการการสนับสนุน EM64T และ VT ในชิปและใน BIOS เพื่อเรียกใช้เครื่องเสมือน 64 บิต บทความนี้ช่วยให้คุณมั่นใจได้ว่าโปรเซสเซอร์ของคุณสามารถใช้งาน VT ได้และยังแนะนำให้คุณทราบถึงวิธีการเปิดใช้งานฟีเจอร์นี้
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944


วิธีเดียวในกรณีนี้คือการใช้โปรแกรมจำลองเช่นQEMUหรือBochsหรือซอฟต์แวร์ parav virtualizationเช่น Xen

อ่านเพิ่มเติม: การรัน x86-64 ASM บนโปรเซสเซอร์ x86-32

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.