我有一个双启动系统,其中 Windows 7 和 Ubuntu 11.10 安装在不同的分区上,按照以下分区方案:
1. MBR for windows
2. Windows system partition (NTFS) - i.e. C:\
3. Ubuntu / partition (ext4)
4. Ubuntu /home partition (ext4)
5. Ubuntu /boot partition (ext4)
6. Ubuntu swap partition
7. Data partition (NTFS) - mounted as D:\ in windows and /media/data/ in Ubuntu
当我处于 Windows 会话中时,我希望能够从我的磁盘启动一个装有 Ubuntu 系统的虚拟盒。也就是说,我并不想在某个.vhd
文件上虚拟地安装另一个 Ubuntu,而是使用硬盘上的数据实际启动它。
我以前使用过 Windows Virtual PC,但从未将实际的磁盘分区作为硬盘而不是仅仅一个.vhd
文件。
答案1
我已经使用完成了该设置http://www.virtualbox.org,手册上有描述,命令如下:(请阅读文档!!)
VBoxManage 内部命令 createrawvmdk -filename linux.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 7,8
该命令在您的硬盘上创建 linux.vmdk 和 linux-pt.vmdk 文件,您可以在虚拟机设置中将这些文件用作“虚拟磁盘”。
此命令将虚拟磁盘的访问限制为硬盘的某些分区,以防止损坏,请相应地调整分区号。
在 Windows 7 中,必须以“管理员身份”运行 Virtualbox 才能正确访问 linux 分区。
第一次运行虚拟机时,Ubuntu 应该能够检测虚拟机中的硬件并重新配置自身。
您可能需要在虚拟磁盘的 MBR 中再次安装 GRUB(这与硬盘 MBR 不同)
不要尝试在 Ubuntu 下安装 Windows 数据分区,这肯定会损坏分区,但如果您需要访问数据,请配置网络并将分区安装为 samba 共享。
以下是VBoxManage打印的帮助信息:
用法:VBoxManage 内部命令 [命令参数] ---剪辑--- createrawvmdk-文件名-rawdisk [-分区 [-mbr ] ] [-相对的] 创建一个新的 VMDK 映像,以便访问整个主机磁盘(如果 未指定参数 -partitions) 或 主机磁盘。如果授予对各个分区的访问权限,则 参数 -mbr 可用于指定要使用的备用 MBR (MBR文件中的分区信息被忽略)。 磁盘名称在 Linux 上为 /dev/sda,在 Windows 上为 \\.\PhysicalDrive0)。 在 Linux 或 FreeBSD 主机上,参数 -relative 导致 VMDK 文件 创建的分区指的是单个分区,而不是整个分区 磁盘。 可以使用以下命令查询必要的分区号 VBoxManage 内部命令列表分区
答案2
手册似乎表明这是可能的,尽管是实验性的(请备份!): http://www.virtualbox.org/manual/ch09.html#idp13647760
然而我自己从未尝试过。
答案3
jhcaiced 答案的扩展:
如果您在“-partitions”参数中包含了数据分区,则 vbox 将在启动虚拟机时获得对它的独占访问权限,因此您实际上无法通过 Windows 主机的并发访问来破坏其上的数据。
但是,出于兼容性原因,您最好将该分区留给 Windows,并通过 vbox 共享文件夹或 Windows 文件共享访问它。您可以修改 /etc/fstab 以在启动时自动将共享安装到同一位置。(首先安装客户机附加组件。)
取消链接 Windows,默认的 Linux 内核可以轻松在多种硬件配置下工作,但您的 X(显示)配置可能不行。懒惰的解决方案不需要配置,就是保持真实显卡的驱动程序处于激活状态。当您在虚拟机中使用 Ubuntu 时,您将切换到运行良好的后备驱动程序。
答案4
我认为这是不可能的。Virtual Box 系统使用虚拟硬件来运行虚拟化系统。您的设置将操作系统安装在“真实”硬件上,这完全不同。
如果您希望在硬件上同时运行两个操作系统,那么您将需要一个虚拟化管理程序框架,例如 Xen,它将管理两个操作系统和硬件并允许半同时与系统交互。
更新:回答你好:
是的,它是 Windows。他正在运行一台装有 Windows 7 和 Ubuntu 11.10 的双启动机器。在他的场景中,他已启动到 Windows 并试图将他的 Ubuntu 负载加载到虚拟化框架中。现在请删除您的反对票。