我有一台双启动笔记本电脑,装有 Windows 7 和 Ubuntu 12.04。我正尝试使用 Virtualbox 从 Windows 启动 ubuntu 分区。我已成功创建 .vmdk,并创建了虚拟机。但是,我无法启动它(在 Virtualbox 中)。我看到的只是一个黑屏,光标在左上角。
我想知道我是否正确指定了分区。我的 Ubuntu 安装有 3 个分区:\、\boot、\home。没有交换分区。它们都位于磁盘 0 中,分别是分区 3、4、5。
我用来创建 .vmdk 的命令是:
VBoxManage internalcommands createrawvmdk -filename C:\Users\abalter\.virtualbox\ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 3,4,5
然后我基于该.vmdk 创建一个虚拟机。
为何无法启动?
答案1
这是一个已知的错误:https://www.virtualbox.org/ticket/9926 这http://www.neowin.net/forum/topic/784138-howto-boot-existing-ubuntu-partition-using-virtualbox-inside-windows/建议创建一个自定义 iso 来引导 grub2 作为解决方法。
答案2
我昨天刚刚做了这个,最终使用这个教程让它工作了:https://askubuntu.com/questions/78902/cannot-run-native-ubuntu-in-virtualbox-with-a-vmdk-created-using-the-createrawvm
我使用了 ceztko 的帖子(复制如下)。另请注意,在我完成所有操作后,我启动了 Ubuntu在虚拟机中然后重新运行update-grub
,删除了 grub 中 Windows 7 的额外条目(这是为了安全起见;如果您不小心尝试从运行相同 Windows 7 安装的 VM 中启动 Win 7 分区,将会发生非常糟糕的事情)。完成此操作后,我基本上有两个单独的 grub 安装:一个在包含 Win 7 和 Ubuntu 条目的系统 MBR 上,另一个在 VirtualBox .vmdk 文件的 MBR 上(即使此文件指向原始 Ubuntu 分区,也可能有不同的 MBR)。
ceztko 的帖子:
我找到了一个完美的解决方法。sda7 是我安装 Linux 的分区,5、6、7 是我想要虚拟化的本机分区,“ceztko”是我的主分区 :P
- 从本机linux,将grub重新安装到本机linux分区:
sudo-grub install --force /dev/sda7
- 将分区引导扇区复制到你的主目录:
# dd if=/dev/sda7 of=/home/ceztko/virtualbox-native.mbr bs=512 count=1
- 将 virtualbox-native.mbr 复制到您的 Windows 安装
- 重新启动 Windows 并从管理员提示符开始:
VBoxManage internalcommands createrawvmdk -filename C:\users\ceztko\ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 5,6,7 -mbr c:\users\ceztko\Dropbox\resources\virtualbox-native.mbr
- 运行 VirtualBox 并将新的虚拟驱动器分配给虚拟机。
- 享受!
这可能是 Virtualbox 的一个错误。但我猜这更可能是 grub 的一个错误,当在启动盘中安装为 mbr 时,它会与无法访问的 Windows 分区混淆。
编辑:我应该提到 Hemlock 非常接近 - 问题确实是指向原始分区的 .vmdk 文件不包含有效的引导加载程序/引导扇区。cetzko 的帖子中的第一步是将 grub 安装到 MBR分区,然后复制该 MBR 以添加到 .vmdk 文件中。通常,grub 会安装到整个硬盘的 MBR 中。
答案3
问题在于引导扇区。您可能没有将其包含在原始磁盘的可用分区中。
我用这种方式完成了类似的事情:
- 像平常一样创建虚拟驱动器。
- 创建您描述的原始磁盘
- 安装到虚拟驱动器
- 安装
/
在虚拟驱动器和/home
原始磁盘上 - 确保虚拟驱动器已设置为启动盘。这就是我遇到问题的地方。
- 享受