VirtualBox:Windows 7 上的原始磁盘访问被拒绝

VirtualBox:Windows 7 上的原始磁盘访问被拒绝

我目前正在双启动 Archlinux(我的所有工作都在它上面进行)和 Windows 7 安装(我在其中玩游戏)。但是,每次我想玩一个快速游戏时,我都厌倦了重新启动,因此决定从 VirtualBox 启动我的 Archlinux 安装,这样我就可以在 Archlinux 客户机上工作并在 Windows 主机上玩游戏。为此,我遵循了VirtualBox 网站上的“原始磁盘访问”指南

现在,当我通过 VirtualBox 中的 syslinux 引导加载程序并尝试启动 Arch 时,我收到有关磁盘访问的各种错误,并且 fsck 失败,导致我进入启动 shell!请注意,我已启动 Arch,以确保它在正常启动时可以完美运行。只有 VirtualBox 启动才会引发问题。

我查看了整个网络,发现 Windows 7 似乎不允许对硬盘进行原始访问,而且几乎所有指南都谈到了将硬盘脱机以允许 VirtualBox 访问。但是,由于我只有 1 个硬盘,因此无法将其脱机(我在这 1 个硬盘上运行两个操作系统)。

还有其他方法可以允许 Windows 7 上的 VirtualBox 访问原始磁盘吗?

编辑:VBox日志(取自机器 -> 显示日志菜单)

答案1

[编辑:哎呀,我刚注意到您的情况是针对一个物理驱动器的 - 您可以使用 DISKPART 将卷脱机,而不是整个磁盘。您可以在 diskpart 中为您的 ArchLinux 分区运行 OFFLINE VOLUME 命令,然后使用“ATTRIBUTES VOLUME CLEAR READONLY”diskpart 命令吗?我很好奇这是否适合您。]

幸运的是,您可以让 Windows 关闭并让 VirtualBox 拥有原始磁盘访问权限。请执行以下操作:

  1. 在主机的磁盘管理中将磁盘脱机。
  2. 使用 DISKPART,选择受影响的磁盘后,使用“ATTRIBUTES DISK CLEAR READONLY”命令清除只读标志。
  3. 使用原始磁盘 VMDK 启动虚拟机。

请注意,如果您没有以管理员身份运行 VirtualBox 管理界面并且使用原始磁盘访问 VMDK,Windows 将会对您发出警告。

答案2

您是否尝试过创建一个虚拟的硬盘(VHD)?卸载时它基本上是一个巨大的文件。但是当 VHD 被安装时,魔法就开始了,因为 VHD 可以像一个完全不同的真实硬盘一样工作。更好的是,您还可以在 Virtual Box 中使用 VHD,而不是 Virtual Box 的默认 VDI。因此,如果您碰巧在 VHD 上安装了客户操作系统,您仍然可以使用 Windows 访问数据,而无需 Virtual Box 实例(还假设使用的文件系统是 FAT 或 NTFS,因为 Windows 只知道这些)。

从 Windows XP 到现在,Windows 都原生支持 VHD。但只能使用 Windows 磁盘管理工具 (diskmgmt.msc) 之类的工具在 Windows 中安装 VHD。您也无法在 Windows 中安装 VHD,然后使用 Virtual Box 访问它 - 这就是问题所在。但 VHD 可以在任一系统中安装(并用作)主启动设备或辅助存储设备。

因此,一个潜在的解决方案可能是使用 Virtual Box 或 Windows 磁盘管理工具制作 VHD。然后安装 VHD 并使用您喜欢的任何驱动器映像工具(例如 Symantec Ghost)来“复制”系统的一个真实分区(我假设该分区已安装 Windows 或 Arch)。完成后,您应该能够使用 Virtual Box 从 VHD 启动(假设您还知道如何正确配置 Virtual Box)。

还有一件事。我不确定 Linux 是否可以像 Windows 那样挂载 VHD。虽然如果可以的话我也不会感到惊讶。但即使 Linux 无法挂载 VHD,无论主机操作系统是什么,您仍然可以在 Virtual Box 中挂载一个。

相关内容