Можно ли использовать гипервизор, такой как VirtualBox, для запуска виртуализированной ОС, которая также может быть загружена напрямую?

60

Этот вопрос довольно теоретический:

Предположим, у меня есть ПК с двумя разными ОС на двух разных разделах: OS1 на sda1 и OS2 на sda2. Можно ли как-то настроить программу типа VMWare или Virtualbox в OS1, которая обращается к sda2, загружает его и запускает OS2? С другой стороны, OS2 также должна быть загружаемой напрямую.

Я понимаю, что эмулируемая OS2 будет намного медленнее, и, вероятно, никто не будет действительно использовать эту настройку, но я считаю это очень интересным

Wauzl
источник
1
@ MorrisIriga ты уверен? Я помню, что был инструмент виртуализации, который мог смонтировать реальные жесткие диски. Не уверен, что это виртуальный ящик Oracle или Microsoft VirtualPC.
LPChip
1
@LPChip Извините, я неправильно понял вопрос. Да, вы можете подключить физический жесткий диск с помощью VirtualBox. Посмотрите на это или это . Я не знаю о других программах для виртуализации.
MorrisIriga
4
VMWare Fusion может запустить раздел «Boot Camp» в качестве виртуальной машины на хосте Mac OS X: kb.vmware.com/selfservice/microsites/…
Джейкоб Кралл,

Ответы:

58

Это возможно , да, и это не обязательно должно быть медленнее, поскольку в наши дни это больше не эмуляция , а виртуализация - большинство процессоров поддерживают аппаратную виртуализацию (VT-x и тому подобное), но даже без таковой у VirtualBox есть много хитрости для того, чтобы виртуальные машины с программным обеспечением работали быстро.

В любом случае, это не будет медленнее, чем загрузка простой старой виртуальной машины. Это может быть даже быстрее (из-за использования необработанного раздела вместо фрагментированного образа диска).


Но я не совсем уверен, как это сделать в VirtualBox - я думаю, что вы должны создать специальный файл .vdi, используя vboxmanageкоторый указывает на реальный раздел? Также у меня нет идей, как заставить загрузчик работать в такой ситуации.

Хотя я использовал для отладки различных проблем с загрузкой в ​​Linux, используя только для чтения копию текущей ОС внутри себя, используя qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio.

grawity
источник
6
Вы человек, который фактически управлял ОС, виртуализированной внутри себя?
Wauzl
8
Конечно, почему нет? Это не сильно отличается от работы обычной виртуальной машины. Единственная важная часть -snapshot, которая делает временную копию / dev / sda (чтобы обе системы не забивали данные друг друга).
grawity
6
Ваше предварительное заявление об использовании vboxmanage, поэтому настройте VDI (не VHD) в качестве заполнителя для необработанного раздела. Руководство VBOX объясняет это в деталях. Мне нравится ваш трюк с отладкой. Хотя никогда не делаю так, но я уже думаю о некоторых случаях использования ;-)
Тонни
28

qemuпозволит вам использовать блочные устройства, такие как /dev/sda2и т. д. в качестве виртуальных жестких дисков. VMWare делает то же самое. Не уверен насчет Virtualbox.

Когда вы загружаетесь /dev/sda2в виртуальную машину, это будет иметь такой же эффект, как если бы вы вынули жесткий диск и загрузили его на другой компьютер с другим оборудованием. Если операционная система может справиться с этим изменением, то вы должны нормально работать с операционной системой как в виртуальной машине, так и в исходном режиме. Конечно, Windows доставит вам проблемы, и Linux, вероятно, очень хорошо это выдержит.

Вы можете смягчить потенциальные проблемы, сделав виртуальное оборудование максимально похожим на физическое оборудование вашей системы - хотя, конечно, вам придется указывать меньше ОЗУ. Особое значение имеет указание одного и того же типа контроллера диска (IDE, SCSI и т. Д.).

LawrenceC
источник
8
Очевидно, что Virtualbox может сделать это также с помощью команды 'VBoxManage internalcommands createrawvmdk' (см. Здесь )
Майкл Б,
19

Это вполне возможно, на самом деле я раньше делал это!

У меня был один раздел / диск (я забыл, какой) с Windows, один с Linux, я думаю, это было во времена Windows XP (по общему признанию, это продолжалось некоторое время). Это был хороший способ получить доступ к обоим наборам данных без использования дискового пространства при различных установках.

Единственная проблема, которую я помню, заключалась в том, что мне нужно было настроить два разных аппаратных профиля в XP. Это действительно запуталось, когда он загрузился в неправильные.

Я не уверен, как текущие процессы активации будут реагировать на переключение оборудования. Это может вызвать некоторые проблемы ... (но если вы когда-нибудь загрузите Windows как физическую машину, а Linux - как виртуальная машина или физическая, это решит эту проблему)

Насколько я помню, я делал это с рабочей станцией VMware. Это определенно поддерживает загрузку с сырого диска. Я уверен, что версия MS делает. Я не очень уверен насчет виртуальных машин Linux, но я был бы очень удивлен, если нет.

Майкл Б
источник
О, аппаратные профили ... Я никогда не касался этой функции. Лицензирование определенно разрушит это сейчас.
sinni800
@ sinni800 Это был мой единственный раз, когда я использовал их, в соответствии с этим они все еще существуют, но перешли на набор драйверов под именем devconx64.exe
Майкл Б,
Аппаратные профили были удалены из Vista и более поздних систем Windows
ZAB
8

Интересно, что для тех, кто работает с VMware Fusion на Mac с разделом bootcamp в Windows, можно запустить виртуальную машину, которая запускается из раздела bootcamp:

VMware Fusion позволяет запускать уже установленный раздел Boot Camp, не влияя на его способность загружаться изначально. Это дает вам возможность получить доступ к разделу Boot Camp как из Mac OS, используя Fusion, так и путем перезагрузки и запуска Windows напрямую.

Обратите внимание, однако:

Вам может быть предложено повторно активировать Windows, поскольку операционная система распознает другое оборудование.

Источник: VMware - запуск раздела Boot Camp в VMware Fusion.

магма
источник
3
Они рекомендуют сначала установить их инструменты, чтобы в обоих случаях процесс активации видел одинаковое «оборудование». Следуйте инструкциям, иначе вы будете разговаривать с серверами активации Microsoft по телефону.
Торбьерн Равн Андерсен
@ ThorbjørnRavnAndersen отличный совет - спасибо
магма
7

Я сделал это . Это довольно полезно, но есть некоторые ограничения, и его настройка не тривиальна.

  • Нативная ОС или ВМ должна быть терпимой к оборудованию, на котором она работает. Большинство дистрибутивов Linux не заботятся и просто запускают все, на чем вы их загружаете, если архитектура процессора совпадает. Это не так гладко с Windows. Вы также можете столкнуться с проблемами активации / лицензирования.

  • В Windows вы не можете загружать ОС на виртуальной машине, пока ее раздел смонтирован на хосте. Это не имеет большого значения, так как в этом случае вы, вероятно, захотите загрузить Linux в Windows, и Windows все равно не поддерживает extфайловые системы.

  • Настройка загрузчиков сложна. Вам нужна отдельная конфигурация загрузки для загрузки в ВМ и для начальной загрузки. Я использовал Grub4DOS / NeoGrub в качестве загрузчика 1-го этапа при начальной загрузке, затем я смог загрузить загрузчик Windows по цепочке или загрузить в Ubuntu. В ВМ был установлен небольшой (несколько МБ) диск с более высоким приоритетом, чем основной. Этот диск содержал установленный вручную GRUB2, который я использовал для загрузки Ubuntu внутри ВМ.

  • Необычная настройка загрузчика требует тщательного обновления. Например, обновление GRUB при естественном запуске Linux может привести к разрыву цепочки вашего загрузчика. Обновление внутри ВМ требует установки вручную в загрузочный раздел.

gronostaj
источник
0

Это возможно довольно легко .. Если вы используете отдельные жесткие диски для каждой установки!

Посмотрите здесь, например: http://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html - или выполните поиск на сайте VirtualBox (который не работает на данный момент) по этим ключевым словам.

Я использую его, чтобы иметь доступ к своему разделу Linux, когда я выполняю какую-то работу в Windows, например, Adobe или другие вещи, которые не работают гладко в Wine или Virtualization of Windows в Linux.

Кроме того, потому что я часто получаю удаленный доступ к своей башне - и весь мой жесткий диск Linux зашифрован, в то время как мой жесткий диск Windows не содержит и содержит только конфиденциальные данные. Поэтому я запускаю Windows (предварительно выбрана запись Windows в GRUB), регистрируюсь в Teamviewer, запускаю Virtualbox, а затем мой жесткий диск Linux.

В этом направлении - Windows -> Virtualbox -> другие HD с Linux -> это возможно довольно просто, потому что на лету обнаружение аппаратного обеспечения выше, которое поддерживает Linux, а именно Ubuntu.

В другом направлении вы получите беспорядок. Windows не любит когда-либо менять оборудование. Она может испортить вашу систему, вообще не запуститься, или даже если это произойдет, может быть, она скажет вам, что ваша лицензия больше не действительна, потому что слишком много аппаратных изменений происходит слишком часто.

Тем не менее, вы хотите сохранить Windows в качестве предварительно выбранной загрузочной записи в GRUB, но действительно следите за тем, чтобы вы выбрали правильную запись в GRUB, когда она запускается в Virtualbox. Если у вас есть проблемы с лагами удаленно, увеличьте время ожидания загрузки в GRUB, чтобы быть в безопасности.

Надеюсь, что это помогло вам :)

Markus
источник