这个问题是理论上的:
假设我有一台PC,在两个不同的分区上有两个不同的OS:sda1上的OS1和sda2上的OS2。是否可以在OS1中设置诸如VMWare或Virtualbox之类的程序来访问sda2,对其进行引导并运行OS2?另一方面,OS2也应直接可引导。
我意识到,仿真的OS2会慢很多,而且可能没人会真正使用此设置,但是我发现这很有趣。
这个问题是理论上的:
假设我有一台PC,在两个不同的分区上有两个不同的OS:sda1上的OS1和sda2上的OS2。是否可以在OS1中设置诸如VMWare或Virtualbox之类的程序来访问sda2,对其进行引导并运行OS2?另一方面,OS2也应直接可引导。
我意识到,仿真的OS2会慢很多,而且可能没人会真正使用此设置,但是我发现这很有趣。
Answers:
有可能,是的,并且不必一定要慢一些,因为这些天不再是模拟了,它是虚拟化 -大多数CPU支持硬件辅助虚拟化(VT-x等),但是即使没有这些,VirtualBox也有很多使软件虚拟化的VM快速运行的技巧。
无论如何,它不会比启动普通的旧VM慢。它甚至可能更快(由于使用原始分区而不是碎片化的磁盘映像)。
但是我不确定如何在VirtualBox中执行此操作-我认为您必须使用vboxmanage
指向实际分区的特殊.vdi文件来创建该文件。另外,我不知道如何在这种情况下使引导加载程序工作。
虽然我使用运行的只读副本调试Linux上的各种引导问题,目前内自身的操作系统,使用qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio
。
-snapshot
,它制作/ dev / sda的临时副本(这样,两个系统都不会破坏彼此的数据)。
qemu
将允许您将诸如/dev/sda2
等的块设备用作虚拟硬盘驱动器。VMWare也是如此。不确定Virtualbox。
/dev/sda2
在虚拟机中启动时,其效果类似于将硬盘驱动器取出并在具有不同硬件的另一台计算机中启动。如果操作系统可以处理该更改,那么您可以在VM和本机中都可以运行该操作系统。Windows当然会给您带来问题,而Linux可能会很好地容忍它。
您可以通过使虚拟硬件与系统上的物理硬件尽可能匹配来缓解潜在的问题-尽管您当然必须指定更少的RAM。特别重要的是指定相同类型的磁盘控制器(IDE,SCSI等)。
完全有可能,实际上我曾经这样做过!
我在Windows上有一个分区/磁盘(我忘了哪个)/磁盘,在Linux上,我认为那是在Windows XP的时代(诚然,这种情况持续了一段时间)。这是在不使用不同安装的磁盘空间的情况下访问两组数据的好方法。
我记得唯一的问题是我需要在XP中设置两个不同的硬件配置文件。引导到错误的位置时,它确实感到困惑。
我不确定当前的激活过程如何响应硬件的切换。这很可能会引起一些问题...(但是,如果您只将Windows作为物理机启动,而将Linux作为VM /物理机启动,则可以解决此问题)
我记得我是通过VMware工作站完成此操作的。那绝对支持从原始磁盘启动。我确定MS版本可以。我对Linux VM不太确定,但是如果没有,我会感到非常惊讶。
有趣的是,对于那些在Mac上运行带有Windows Bootcamp分区的Mac上的VMware Fusion的用户,可以启动在Bootcamp分区之外运行的虚拟机:
VMware Fusion允许您启动已经安装的Boot Camp分区,而不会影响其本地启动的能力。这使您能够使用Fusion从Mac OS内部访问Boot Boot分区,以及直接重新启动和启动Windows。
但是请注意:
可能会提示您重新激活Windows,因为操作系统可以识别其他硬件。
我做到了。它非常有用,但是存在一些限制,并且设置起来并不容易。
本机或VM OS必须能够容忍其运行的硬件。大多数Linux发行版都不关心,只要在CPU体系结构匹配的情况下,就可以在启动它们的任何设备上运行。使用Windows并不是那么顺利。您还可能面临激活/许可问题。
在Windows上,当分区安装在主机上时,您将无法在虚拟机中引导OS。这没什么大不了的,因为在这种情况下,您可能想在Windows内部启动Linux,而Windows ext
仍然不支持文件系统。
设置引导加载程序非常棘手。您需要单独的启动配置,才能在VM中启动和本地启动。在本机启动时,我已将Grub4DOS / NeoGrub用作第一阶段的引导程序,然后便可以链加载Windows引导程序或引导至Ubuntu。VM的小型(很少MB)驱动器安装的优先级高于主驱动器。该驱动器包含手动安装的GRUB2,我曾用它在VM内部引导Ubuntu。
异常的引导加载程序设置需要仔细更新。例如,在本地运行Linux时更新GRUB可能会破坏您的引导程序链。在VM内部更新需要手动将其安装到启动分区。
这很容易..如果每次安装都使用单独的硬盘!
例如,在这里看看:http : //www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html-或搜索VirtualBox网站(已关闭)这些关键字)。
在执行某些Windows工作时,我使用它来访问我的Linux分区,例如Adobe的东西或其他在Linux的Wine或Windows虚拟化下无法平稳运行的东西。
另外,由于我经常远程访问塔式服务器-我的整个Linux硬盘都是加密的,而我的Windows硬盘不是加密的,并且只包含非敏感数据。因此,我启动Windows(已预先选择GRUB中的Windows条目),登录到Teamviewer,启动Virtualbox,然后启动我的Linux硬盘。
在这个方向上-Windows-> Virtualbox-> Linux其他HD->可能非常简单,因为Linux(即Ubuntu)支持的实时超级硬件检测。
在另一个方向上,您将陷入混乱。Windows不喜欢不断变化的硬件。它可能会使您的系统混乱,根本无法启动,或者即使发生,也可能告诉您您的许可证不再有效,因为太多的硬件更改经常发生。
就是说,您希望将Windows保留为GRUB中的预选启动项,但要小心,当它在Virtualbox中运行时,请在GRUB中选择正确的项。如果远程存在滞后问题,请增加GRUB中的启动超时时间,以确保安全。
希望对您有所帮助:)