使用 VirtualBox 在硬盘上安装本地 Windows 7

使用 VirtualBox 在硬盘上安装本地 Windows 7

我今天才发现,人们可以创建 VirtualBox VMDK 文件,这些文件只需引用本地磁盘上的真实分区,不用说,我非常兴奋。“这意味着我可以从在 Linux 中运行的 VirtualBox 启动我的 Windows 7 安装!”

我像这样创建了 VMDK 文件:

sudo VBoxManage internalcommands createrawvmdk -filename .VirtualBox/Hard\ Disks/Windows\ 7\ Local.vmdk -rawdisk /dev/sdb -partitions 2,4,5

分区 2 是我的 EFI 启动分区,分区 4 是 Windows msft 分区,分区 5 是实际的 NTFS Windows 分区。一切顺利,所以我将 VMDK 文件的所有权更改为我当前的用户,这样我就可以用我的登录用户运行它们了。

这导致了第一个问题。我似乎无法以除 root 之外的任何用户身份将此映像添加到 VirtualBox,并且如果可能的话,我真的不想以 root 身份运行它。有解决方法吗?

下一个障碍是 EFI。我在 VirtualBox 中启用了 EFI 启动,但每当我启动 EFI/Microsoft/Boot/bootmgfw.efi 映像时,我都会看到以下代码:

BlXmiInitialize failed 0xc000009a

启动错误

并且无法启动。另外,必须使用实际的 UEFI shell 才能启动,这很麻烦。

如何才能以非 root 用户身份从 VirtualBox 中的 Linux 启动我的实际本地 Windows 7 安装?

更新

通过将您的 Linux 用户添加到disk组,您可以以非 root 用户身份使用 VMDK 驱动器:

sudo adduser me disk

但我仍然无法解决启动错误。

我认为这可能是由于其他问题引起的,因此我尝试使用 Windows 7 安装盘进行启动修复,但似乎甚至看不到 Windows 安装,因为磁盘提示我只需安装 Windows。

为了解决缺少重要信息的潜在问题,我执行以下操作来创建整个磁盘(而不仅仅是单个分区)的 VMDK:

VBoxManage internalcommands createrawvmdk -filename ".VirtualBox/Hard Disks/Windows 7 Local.vmdk" -rawdisk /dev/sdb

该驱动器/dev/sdb是硬件英特尔 RAID 卡 (RS2BL080) 提供的虚拟驱动器。

答案1

根据VirtualBox 团队成员并根据VirtualBox 手册

请注意,VirtualBox EFI 支持处于试验阶段,将随着 EFI 的成熟和普及而得到增强。虽然 Mac OS X 和 Linux 客户机可以正常工作,但 Windows 客户机目前无法使用 VirtualBox EFI 实现进行启动。

这很无趣,但却是事实。有趣的是,这可以说是更多的在 Mac OSX 上实现 EFI 比在 Windows 上实现要困难,因为基本上每个现代主板都有与 Windows“兼容™”的 UEFI 固件,而 Apple 使用的是专为自己的硬件设计的专有 EFI 实现。

总结:截至撰写本文时,EFI 支持实际上并不适用于 VirtualBox 中的 Windows。

答案2

关于 Windows EFI 启动错误的信息似乎非常有限。我只能找到下面两个链接,它们似乎是互相备份的,都是俄语的

  1. http://habrahabr.ru/post/160655/ 谷歌翻译
  2. http://savepearlharbor.com/?p=160655 谷歌翻译

它没有解决 VirtualBox Windows EFI 启动问题。但是,它演示了如何修改 WindowsBootmgfw.efi以实现使用 grub-efi 的双重启动。也许您可以使用该技术检查 bootmgfw.efi 内容并找出实际问题。

成功的故事

  1. 这个帖子,宣称 QEMU、KVM 和 VirtualBox 已取得成功。
  2. 这个帖子,声称 KVM 和 VMWare Workstation(非免费)可以轻松做到这一点。

但是,没有提到使用 efi。所以他们可能使用旧式 bios。

潜在问题 - 激活

根据这个帖子每次切换启动模式(VM vs Native)时,Windows 都可能要求激活。我认为这是可以理解的,因为在模式之间切换就像切换到不同的主板和 CPU 一样。

相关内容