![VirtualBox:Windows 7 上的原始磁盘访问被拒绝](https://linux22.com/image/1322467/VirtualBox%EF%BC%9AWindows%207%20%E4%B8%8A%E7%9A%84%E5%8E%9F%E5%A7%8B%E7%A3%81%E7%9B%98%E8%AE%BF%E9%97%AE%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我目前正在双启动 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 拥有原始磁盘访问权限。请执行以下操作:
- 在主机的磁盘管理中将磁盘脱机。
- 使用 DISKPART,选择受影响的磁盘后,使用“ATTRIBUTES DISK CLEAR READONLY”命令清除只读标志。
- 使用原始磁盘 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 中挂载一个。