Virtualbox无法从GPT物理分区启动guest虚拟机

时间:2015-12-19 13:14:01

标签: 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 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 falsh启动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 ram,使用现有的a.vmdk。启动虚拟机,它在黑色屏幕上停止,左上角有一个光标(不闪烁)。

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

1 个答案:

答案 0 :(得分:5)

最后,我设法做到了这一点,尽管还有一些我无法解释的问题。我想在这里为那些遇到同样问题的人录制,所以我记得以后。

  1. 创建vmdk文件时,不需要-mbr参数,但是 确保不包括主机操作系统所在的分区 是,包括vmdk中的整个物理驱动器将失败。我的决赛 命令行(排除主机分区#3)是:

    C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk -filename e:\VirtualBox\Ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 1,2,4,5,6,7
    
  2. 创建来宾计算机后(如问题中所述),转到 客户设置,系统,MotherBoard,扩展功能,请确保 保持“启用EFI(仅限特殊操作系统)”。

  3. 启动来宾,然后快速按 Del 进入 guest虚拟机的VirtualBox BIOS显示Windows启动菜单。如果 你没有这样做,并进入Windows启动菜单,强行转向 给客人断电并重新开始。

  4. 在BIOS中,转到“引导维护管理器”,“引导选项”,“更改引导” 订购。将EFI内部Shell移动到第一个选项Commit Changes 并退出。按Boot Management Manager中的Reset System菜单项 屏幕。有关如何更改引导顺序的说明 BIOS屏幕的底部。

  5. 当guest虚拟机再次重启时,它将进入EFI shell(而不是 Windows启动菜单)。现在你需要找出哪个分区 EFI引导程序。进入外壳后,它会打印出这些部分 和他们的贬低,但它似乎并没有打印出来给我。 一旦你找到了哪个是你的EFI引导加载程序,运行:

    BLK2:\EFI\ubuntu\grubx64.efi
    

    如果它不是EFI引导程序,它将返回错误。

  6. 现在显示GRUB启动菜单,我们可以启动Ubuntu。

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

    希望这对你有所帮助。我想澄清一点,我只测试过这个: * VirtualBox 5.0.10 x64 *主机操作系统:Win7 sp1 x64 *客户操作系统:Ubuntu 14.04.3 x64 *具有所述的特定磁盘分区。

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