Virtualbox无法从GPT物理分区启动来宾

Virtualbox无法从GPT物理分区启动来宾,virtualbox,guid-partition-table,Virtualbox,Guid Partition Table,Virtualbox无法从GPT物理分区启动guest,它会在一个黑屏上停止,光标(不会闪烁)位于左上角。Virtualbox版本为5.0.10 x64 PhysicalDrive0是GPT驱动器,以下是分区信息: C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands listpartitions -rawdisk \\.\PhysicalDrive0 Number Type StartCHS EndCHS S

Virtualbox无法从GPT物理分区启动guest,它会在一个黑屏上停止,光标(不会闪烁)位于左上角。Virtualbox版本为5.0.10 x64

PhysicalDrive0是GPT驱动器,以下是分区信息:

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands listpartitions -rawdisk \\.\PhysicalDrive0
Number Type StartCHS EndCHS Size (MiB) Start (Sect)
1 0x00 0 /0 /0 0 /0 /0 100 2048
2 0x00 0 /0 /0 0 /0 /0 128 206848
3 0x00 0 /0 /0 0 /0 /0 409372 468992
4 0x00 0 /0 /0 0 /0 /0 409600 838862848
5 0x00 0 /0 /0 0 /0 /0 409600 1677723648
6 0x00 0 /0 /0 0 /0 /0 662640 2516584448
7 0x00 0 /0 /0 0 /0 /0 16288 3873671168
  • 分区#3:Win7 sp1 x64,主机
  • 分区#6:Ubuntu14.04.3 x64,来宾
  • 分区#7:交换
通过BIOS进行双引导工作正常

首先,通过BIOS使用Ubuntu14.04.3启动计算机,运行以下命令创建.mbr文件:

sudo grub-install /dev/sdb
sudo dd if=/dev/sdb of=~/my.mbr
/dev/sdb是一个USB闪存,在执行这些命令之后,我可以通过这个USB闪存启动Ubuntu14.04.3

然后使用Win7启动计算机,在DOS提示符下运行以下命令,以创建vmdk文件,并由管理员授权:

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk
-filename e:\VirtualBox\a.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 6,7 -mbr
e:\VirtualBox\my.mbr
RAW host disk access VMDK file e:\VirtualBox\a.vmdk created successfully
在管理员许可下启动Virtualbox,创建一个虚拟机,Ubuntu 64位,4G内存,使用现有的a.vmdk。启动虚拟机,它会在黑屏上停止,并在左上角显示一个光标(不会闪烁)


我做了很多搜索,但没有找到解决方案。这里有人能帮我吗?

最后,我成功地做到了这一点,尽管还有一些问题我无法解释。我想在这里为有同样问题的人记录下来,这样我将来就能记得了

  • 创建vmdk文件时,
    -mbr
    参数不是必需的,但必须 确保不包括主机操作系统所在的分区 is,包括vmdk中的整个物理驱动器将失败。我的期末考试 命令行(不包括主机分区#3)为:

  • 创建来宾计算机(如问题中所述)后,转到 要查看来宾设置、系统、主板、扩展功能,请确保 保持“启用EFI(仅限特殊操作系统)”处于选中状态

  • 启动来宾,然后快速按Del键进入 来宾的VirtualBox BIOS,然后再显示Windows启动菜单。如果 您未能执行此操作,进入Windows启动菜单,强制打开 关闭客人的电源,然后重新启动

  • 在BIOS中,转到引导维护管理器,引导选项,更改引导 秩序。将EFI内部Shell移动到第一个选项“提交更改” 然后退出。按启动维护管理器中的重置系统菜单项 屏幕。下面是有关如何更改引导顺序的说明 BIOS屏幕的底部

  • 当来宾重新启动时,它将进入EFI shell(而不是 Windows启动菜单)。现在您需要确定哪个分区是 EFI引导加载程序。进入外壳后,它会打印出分区 还有他们的艾莉丝,但它似乎没有为我把它们全部打印出来。 确定哪一个是EFI引导加载程序后,运行:

    BLK2:\EFI\ubuntu\grubx64.efi
    
    如果不是EFI引导加载程序,它将返回一个错误

  • 现在显示GRUB启动菜单,我们可以启动Ubuntu了

  • 有时我发现来宾仍然停留在空的Ubuntu屏幕上,有时VirtualBox显示错误。我一直重新启动来宾,直到它工作。您可能还必须从步骤3重新启动,因为您的BIOS设置似乎丢失了

    希望这对你有所帮助。我想澄清一下,我只是在以下条件下进行了测试: *VirtualBox 5.0.10 x64 *主机操作系统:Win7 sp1 x64 *来宾操作系统:Ubuntu 14.04.3 x64 *使用所述的特定磁盘分区


    要非常小心,因为它直接在物理驱动器上运行。您的数据是您的责任。

    谢谢。为什么virtualbox不能在所选分区上运行主引导扇区呢?这也是我想说的。答案很好。我在EFI shell中使用了以下命令来引导windows:
    BLK2:\EFI\ubuntu\grubx64.efi