Вопрос или проблема
Я немного запутался по следующему вопросу: Oracle VirtualBox – может ли он запускать только виртуальные машины, которые находятся в той же архитектуре команд, что и физический процессор хоста? Я знаю так мало о виртуализации, что никогда не задумывался об этом, пока не столкнулся с ситуацией вчера: у друга есть MacBook с процессором M1 (ARM, да?) и файл .ova, который он скачал и хотел запустить на своем VirtualBox (на этом же MacBook). Когда мы “импортируем устройство”, на этой виртуальной машине отображается значок Windows 7 x86, и попытка его запустить выдает исключение vbox_e_platform_arch_not_supported.
“Что нам нажать”, чтобы это заработало – ему нужна другая физическая машина для хостинга этой ВМ?
Насколько мне известно – и я был бы рад, если бы оказался неправ, так как у меня такая же проблема – VirtualBox не работает на архитектуре ARM (к которой относится процессор Apple M1). VirtualBox функционирует как гипервизор типа 2 и запускает виртуальные машины на системах x86. Он не эмулирует другие архитектуры. Поскольку он не эмулирует x86 на ARM, он не может запустить x86 Windows ВМ на Mac с M1 или M2. Это ограничение означает, что VirtualBox не может запускать виртуальную машину, которая зависит от другой системы команд процессора, чем у хост-машины, и в настоящее время поддержка ARM недоступна.
Единственным реальным обходным решением, о котором я знаю, является использование программного обеспечения для виртуализации на базе ARM (VirtualBox – это x86 ВМ), а затем запуск версии целевой операционной системы на базе ARM – например, Windows 11 для ARM. Операционная система, которую имеет ваш друг – Windows 7 – не имеет версии для ARM.
Одним из популярных программ для виртуализации, которые работают на аппаратном обеспечении ARM, является Parallels Desktop 20 для Mac, который, как и следует из названия, разработан для аппаратного обеспечения Mac:
https://www.parallels.com/products/desktop/
Другой вариант – “UTM | Виртуальные машины для Mac”, который имеет одно преимущество перед Parallels, а именно, что он бесплатный и с открытым исходным кодом. С другой стороны, насколько я знаю, Microsoft не поддерживает свои операционные системы на базе ARM на UTM (официально), тогда как Microsoft поддерживает Parallels.
“Что нам нажать”, чтобы это заработало – ему нужна другая физическая машина для хостинга этой ВМ?
Конечно, другое решение – запустить VirtualBox на совершенно другой машине – машине x86, в этом случае вы сможете использовать .ova файл для Windows 7.
Кроме того, меня интересует, какова причина желания иметь виртуальную машину? Если это просто для изоляции сред, то вы и ваш друг должны рассмотреть контейнеры вместо этого – такие как docker:
Ответ или решение
Виртуализация в Oracle VirtualBox и команды процессоров: Что нужно знать
Введение
Виртуализация — это мощная технология, позволяющая запускать операционные системы на виртуальных машинах (ВМ), изолированных от хост-операционной системы. Oracle VirtualBox, являясь гипервизором второго типа, имеет свои ограничения, особенно когда речь заходит о совместимости с различными архитектурами процессоров. В этом материале мы подробно рассмотрим, почему VirtualBox может не быть в состоянии запустить ВМ, если архитектура процессора хоста и гостя отличаются.
Ограничения VirtualBox
VirtualBox предназначен для работы на архитектуре x86 и x86-64. Это означает, что он может запускать только те виртуальные машины, которые соответствуют архитектуре процессора, на котором работает хост. Например, если вы хотите запустить ВМ с Windows 7, которая предназначена для x86, то хост, на котором работает VirtualBox, также должен поддерживать эту архитектуру.
В контексте вашего вопроса, Macbook с процессором M1 использует архитектуру ARM, что уже создает проблему. VirtualBox не поддерживает эмуляцию архитектуры x86 на ARM, и, следовательно, не сможет запустить x86 Windows VM на ARM-устройстве. При попытке выполнить данное действие, вы будете получать ошибку vbox_e_platform_arch_not_supported
.
Возможные решения
-
Использование ARM-ориентированного программного обеспечения: Если ваш друг хочет запустить Windows на Macbook с M1, ему следует рассмотреть возможность использования программ, поддерживающих ARM-архитектуру. На данный момент доступны несколько решений:
- Parallels Desktop: Программное обеспечение, оптимизированное для Mac, которое позволяет запускать ARM-версии Windows и другие операционные системы.
- UTM: Бесплатное и открытое программное обеспечение для виртуализации, которое также работает на ARM-устройствах. Однако следует помнить, что Microsoft официально не поддерживает свои ARM-версии ОС на UTM, в отличие от Parallels.
-
Использование x86-совместимого устройства: Если ни одно из представленных решений не подходит, лучшим вариантом будет запуск VirtualBox на устройстве с x86-архитектурой. Это позволит вашему другу запустить .ova файл для Windows 7 без дополнительных проблем.
-
Использование контейнерной виртуализации: Если целью использования ВМ является изоляция окружений, стоит обратить внимание на контейнерные технологии, такие как Docker. Контейнеры более легковесные и могут быть более подходящими для многих целей.
Заключение
Таким образом, VirtualBox не может запускать виртуальные машины с архитектурой, отличной от архитектуры хоста, что является серьезным ограничением для пользователей с ARM-устройствами, такими как Macbook с M1. Использование альтернативных решений, таких как Parallels Desktop или UTM, или переход на x86-устройство, может помочь в решении вашей задачи. Надеемся, что данный материал помог разобраться в особенностях виртуализации и предоставил полезную информацию для поиска решения вашей проблемы.