无法使用createrawvmdk命令创建的vmdk在virtualbox中运行本机Ubuntu,并指定分区

我在一个硬盘上有一个Win7 x64和Ubuntu 11.10 x64双启动设置。

我想在Win7主机上运行的Virtual-box中运行本机Ubuntu作为客户操作系统。

我使用以下命令列出分区:

C:\ >vboxmanage internalcommands listpartitions -rawdisk \\.\physicaldrive0 Number Type StartCHS EndCHS Size (MiB) Start (Sect) 1 0x07 0 /32 /33 153 /27 /2 1200 2048 2 0x07 153 /27 /3 1023/254/63 363337 2459648 5 0x82 1023/254/63 1023/254/63 9537 746575872 6 0x83 1023/254/63 1023/254/63 46430 766107783 7 0x83 1023/254/63 1023/254/63 46431 861200384 4 0x07 1023/254/63 1023/254/63 10000 956291072 

然后我按如下方式创建了vmdk文件(指定ubuntu分区5,6和7):

C:> vboxmanage internalcommands createrawvmdk -filename“C:\ ubuntu_01.vmdk”-rawdisk \。\ physicaldrive0 -partitions 5,6,7

vmdk文件已成功创建,但是当我创建VM并指定此虚拟驱动器时,VM无法启动,只有一个空白的黑屏,左上角有一个白色光标。 它甚至没有显示Grub启动菜单。

然后我创建了另一个vmdk文件而没有指定分区。

C:> vboxmanage internalcommands createrawvmdk -filename“C:\ ubuntu_02.vmdk”-rawdisk \。\ physicaldrive0

这次VM启动并且ubuntu从VM内成功启动(显示了grub 2启动菜单,在选择Ubuntu时,它成功启动)。

如何在virtualbox中为guest虚拟机ubuntu操作系统仅使用特定的本机ubuntu分区而不是整个磁盘? 请帮忙。

主持人:赢7 x64
访客:Ubuntu 11.10 x64
Vbox版本:4.1.6 r74713,安装了最新的guest虚拟机。

一旦你用你提到的方法从一个“虚拟化”的真实硬盘启动Ubuntu它就不会发现它的bootmanager Grub就像你的双启动设置一样Grub最有可能存在于物理硬盘上的第一个(启动)分区的MBR中。 从那里Grub决定你选择启动Windows或Ubuntu。

如果你想从虚拟机启动Ubuntu,那么你需要一个bootmanager(Grub),就像你在真实系统上需要它一样。

要实现这一点,您需要在Ubuntu分区中安装Grub,或者需要为Grub创建一个可以轻松添加到虚拟机的小型启动分区。 请阅读此处 ,以及GNU Grub手册中的更多详细信息。

警告:这两种方法都可能会破坏双启动设置,或者如果您出错了,可能会导致Windows或Ubuntu系统无法启动。


安全的方式:

访问主机和访客数据的更安全的方法是在其自己的10-15 GB VDI上安装Ubuntu,并将主机/home主机安装在客户操作系统中以获取数据。 通过这样做,您还可以在不破坏主机Ubuntu安装的情况下加载主机或来宾内核模块。

我找到了一个完美的解决方法。 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分区混淆。

我有一个类似的问题并解决了一点点不同,即没有启动到本机Linux。

如果为.vmdk原始磁盘指定了-partitions参数,则还将创建MBR和某些后续扇区的映像,您可以直接在虚拟Linux中覆盖该映像,而不会影响原始物理扇区。 检查vmdk文件以供参考。 在我的情况下,平面图像覆盖了第一个32kb。

为了首次启动虚拟Linux,您可以使用例如SuperGrubDisk ISO映像。 成功启动后,像往常一样从虚拟环境下的本地安装中修复MBR。

请注意,如果要在虚拟MBR上安装grub,可能会出现MBR不足以容纳整个grub图像的情况。 只有在尝试引导系统时才会注意到这一点。 在这种情况下,您可以放大代表硬盘第一扇区的平面图像。 您需要相应地调整.vmdk文件。

完整的解决方案:

OS加载器的正常位置,Grub是一个,在分区内“在PBR上”。 而这是反对其毁灭的最安全的地方,而不是将其暴露在MBR上。

这使得Linux以常规方式启动,通过加载PBR并执行它。 GAG是一个很好的多引导和/或引导逻辑分区的程序。 最好将它与SystemRescueCd一起放在一张CD上,并附带一系列工具。 刻录CD或使用ISO文件并启动它,然后选择GAG然后配置它,完成。

如果你没有在Linux允许的情况下暂停/恢复6个月,Tux会每天问候你。 感谢GAG重写虚拟MBR的提示。

如果您可以联系GAG的作者,请告诉他:

  1. 我永远的感谢
  2. 他应该使用完全填充的主屏幕开始配置,并删除,重新排序和修改图标。 这使得一个已经可用的配置立即生成,而不必进行大量的操作来开始。