64-бітний гість Windows у VirtualBox неможливий без підтримки VT-x? [дублікат]


8

Я успішно встановив Windows Vista 32-розрядну версію в VM з VirtualBox. Зараз я намагаюся зробити те саме з 64-розрядною Windows Vista, і вона просто не працює. Я створив VM, але, схоже, він не завантажуватиметься із 64-бітного зображення ISO ISO. Виплює цю помилку менеджера завантаження.

а

Основна ОС - це Windows 7 64-розрядна на 64-бітному процесорі Intel Core 2 Duo. Тепер я зробив те ж саме і встановив ту саму версію VirtualBox на іншому комп’ютері, також під керуванням Windows 7 64-розрядної версії, створив VM, а потім ... під час встановлення VM я помітив, що у нього були додаткові параметри для вибору коли я підбираю гостя Оса. Ось скріншот.

б

Ви можете бачити ті параметри між тим, де на ньому написано 64-розрядні, я не маю цих параметрів на іншому комп'ютері. Тепер на цьому працює Intel Core 2 Quad, більш висока модель. Він підтримує технологію віртуалізації Intel, а інший - ні.

Ось як виглядає той самий діалог на комп'ютері Core 2 Duo. Ось скріншот.

c

Чи може це бути причиною того, чому? Чи означає це, що ви не можете імітувати 64-бітну гостьову ОС Windows за допомогою VirtualBox, якщо ваш процесор не підтримує технологію віртуалізації Intel? Я розумію, що ця технологія робить речі набагато швидшими, але зовсім не дозволяє вам наслідувати цю ОС ... це трохи екстремально, ні?

Якщо так, то що ви пропонуєте використовувати замість цього?


@Ramhound Ви просто запитали, чи впевнений я, що я працюю на 64-бітній операційній системі, а потім передумав? Я отримав коментар у своїй папці "Вхідні". Що ж, для чого це варто, так, я впевнений, що на обох комп'ютерах працює 64-розрядна версія Windows 7.
Самір

@Ramhound Обмеження обладнання? Отже, погоджуєтесь, це пов'язане з підтримкою VT-x, а точніше відсутністю такої?
Самір

Незалежно від обмежень на апаратне забезпечення, ви завжди маєте змогу виконувати функції програмного забезпечення. Це одна з переваг віртуалізації, оскільки вона дозволяє повністю замінити фізичне обладнання на програмне забезпечення. Я знаю, що Intel VT-x добре мати, але чому б вам не вдалося емулювати 64-бітну ОС у VirtualBox все в програмному забезпеченні, навіть якщо це надзвичайно повільно? Чому вони не дозволяють вам це зробити? Це швидше обмеження у VirtualBox.
Самір

Емм ... чи не ти маєш на увазі "ти не можеш щось робити в програмному забезпеченні, якщо апаратне забезпечення не підтримує це"?
Самір

Відповіді:


18

У розділі 3.1.2 керівництва VirtualBox прямо вказано, що для використання 64-бітних гостьових операційних систем вам потрібна підтримка апаратної віртуалізації (наголос додано):

VirtualBox підтримує 64-розрядні гостьові операційні системи, навіть у 32-бітних операційних системах, за умови виконання наступних умов:

  1. Вам потрібен 64-розрядний процесор із підтримкою апаратної віртуалізації (див. Розділ 10.3, «Віртуальне обладнання та віртуалізація програмного забезпечення»).

  2. Ви повинні увімкнути апаратну віртуалізацію для конкретного VM, для якого потрібно 64-розрядна підтримка; віртуалізація програмного забезпечення не підтримується для 64-бітних VM.

  3. Якщо ви хочете використовувати 64-бітну гостьову підтримку в 32-бітній операційній системі хоста, ви також повинні вибрати 64-бітну операційну систему для конкретного VM. Оскільки підтримка 64 біт на 32-бітових хостах потребує додаткових витрат, VirtualBox надає цю підтримку лише за явним запитом.

Джерело: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

Розділ 10.3 також зазначає це (наголос додано):

64-бітна гостьова підтримка VirtualBox (додана у версії 2.0) та багатопроцесорна робота (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-розрядні?
Самір

Я дав вам підсумкове голосування, хоча я вже опублікував цей точний текст у власній відповіді. Дякуємо за зусилля! Я з'єднаю свою відповідь з вашою, якщо це нормально.
Самір

Чи знаєте ви будь-яке інше програмне забезпечення для віртуалізації (бажано, безкоштовне та відкрите джерело), ​​яке може імітувати 64-бітну Windows без підтримки апаратної віртуалізації?
Самір

@sammyg, схоже, QEMU, Bochs і VMWare Player всі це підтримують, дивіться мою останню редакцію.
nc4pk

Неправда. Програвач VMware також вимагає віртуалізації для запуску 64-бітної здогадки, як і інші гіпервізори. Ви можете запускати лише 64-бітну здогадку без віртуалізації на емуляторі, такому як Bochs або qemu, або програмному забезпеченні для паравіртуалізації, такому як Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv

0

Жоден гіпервізор на віртуальній машині не підтримує 64-розрядні віртуальні машини в процесорі x86 без віртуалізації, оскільки без цього ізоляція віртуальної машини була б неможливою .

Про причину згадували у Вікіпедії (моє наголос):

Початкова версія x86-64 (AMD64) не дозволила забезпечити повну віртуалізацію лише для програмного забезпечення через відсутність підтримки сегментації в тривалому режимі , що зробило неможливим захист пам’яті гіпервізора , зокрема, захист обробника ловушки що працює в адресному просторі ядра гостя.

Версія D і пізніші 64-розрядні процесори AMD (як правило, ті, які виготовлені в 90 нм або менше) додали базову підтримку сегментації в тривалому режимі, що дозволяє запускати 64-розрядні гості в 64-бітних хостах за допомогою двійкового перекладу . Intel не додала підтримку сегментації для своєї реалізації x86-64 (Intel 64), зробивши віртуалізацію лише 64-бітним програмним забезпеченням на процесорах Intel, але підтримка Intel VT-x робить можливою 64-бітну апаратну віртуалізацію на платформі Intel

VMWare також сказав, що відсутність віртуалізації змушує поставити під сумнів захист VM

Проблеми віртуалізації x86-64

  • Початкова архітектура AMD64 не включала сегментацію в 64-бітному режимі
    • Сегментація також відсутня в EM64T

Як ми захищаємо VMM?

  • 64-розрядна підтримка гостей потребує додаткової апаратної допомоги
    • Перевірка обмежень сегментів, доступна в 64-бітному режимі, на нових процесорах AMD
    • VT-x може використовуватися для захисту VMM на EM64T
      • Потрібен підхід для епіляції замість BT

Детальніше:

Процесорам Intel потрібна підтримка EM64T і VT в мікросхемі та в BIOS для роботи 64-бітних віртуальних машин. Ця стаття допомагає переконатися, що ваш процесор підтримує VT, а також вказує вам, як увімкнути цю функцію
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944


Єдиний спосіб у цьому випадку - використання емулятора типу QEMU чи Bochs , або програмного забезпечення для паравіртуалізації типу Xen.

Детальніше: Запуск x86-64 ASM на процесорі x86-32

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.