我有一个现有的硬盘,一个装有 Ubuntu Linux 的 NVMe 驱动器。我还有另一个装有 Windows 10 的 NVMe 驱动器,我将其用作我的主要操作系统(游戏、网页浏览等)。虽然我可以在不到一分钟的时间内重新启动操作系统,我希望能够自由地不是。所以,我想知道,我可以在 Virtual Box 中“只”使用我的 Linux 驱动器吗?并启动虚拟系统和真实系统?我该如何设置?
我做过参见这个问题VirtualBox 文档中有有关使用“原始磁盘”作为虚拟存储的一些信息(第 9.7 章)——但根据文档的格式,它看起来要么已经有一段时间没有更新了,要么可能不是一个经常被探索的配置,所以我担心它的正确性,想知道在这个领域是否有现实世界的成功案例
更新(2020-07-25)
通过以下方式创建 VDMK 后
# CWD: C:\Program Files\Oracle\VirtualBox
VBoxManage.exe internalcommands createrawvmdk -filename "C:\Users\me\VirtualBox VMs\Ubuntu (local NVMe)\local-nvme.vmdk" -rawdisk \\.\PhysicalDrive1
关闭/退出 VirtualBox 和相关服务,然后以管理员身份启动 VBoxSVC.exe 和 VirtualBox.exe 程序,
我收到一个错误:
The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED). Make sure there is enough free space on the disk and that the disk is working properly. Operation can be resumed afterwards.
我认为可能是因为磁盘当前处于在线状态并且需要脱机,但我没有看到在没有其他错误的情况下使磁盘脱机的方法
磁盘 1 上有一个 EFI 分区——但现在不应该有了——我曾经与 Ubuntu 双启动,所以那个 512MB 分区应该只需是 grub2。
笔记:磁盘 0 是我的系统驱动器/装有 Windows 的驱动器。另外,我目前不使用 Grub 作为引导加载程序。
答案1
这真是一次冒险!
我将尝试在这里分解我的过程,以便比上面关于该问题的评论线索更容易阅读。
步骤 1:找出要使用的原始磁盘的驱动器号
两种方式:
打开“磁盘管理”,记下
Disk #
卷名称列中代表要在 VirtualBox 中使用的物理磁盘对我来说,它恰好是
Disk 1
。请注意,如果驱动器当前安装在您的系统上,“卷”列可能会显示分区标签而不是Disk # Partition #
。另一种方法是打开命令提示符(通过
Windows
+R
并输入cmd
然后按Enter
),并diskpart
在命令提示符窗口打开后运行该命令。Windows 将询问您是否允许 lprogram 运行(标准管理权限提示)。diskpart.exe
打开自己的窗口后,您可以运行list disk
以列出您的磁盘。
步骤 2:在 Virtual Box 中创建虚拟机,但没有硬盘
我将我的命名为“Ubuntu(本地NVMe)”,位于默认位置
C:\Users\<UserFolder>\VirtualBox VMs\Ubuntu (local NVMe)\
更多详情请访问https://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html
步骤 3:创建vdmk
用于 Virtual Box 的虚拟磁盘文件
# CWD: C:\Program Files\Oracle\VirtualBox
VBoxManage.exe internalcommands createrawvmdk -filename "C:\Users\<UserFolder>\VirtualBox VMs\Ubuntu (local NVMe)\local-nvme.vmdk" -rawdisk \\.\PhysicalDrive1
这里的导入部分\\.\PhysicalDrive1
在最后。确保后面的数字与PhysicalDrive
您在步骤 1 中确定的驱动器号相匹配。
步骤 4:关闭 Virtual Box 并以管理员身份重新打开
步骤 5:确保原始磁盘处于“脱机”状态/未挂载
Windows 不能真的在虚拟机中使用磁盘时控制磁盘,因此我们需要确保它处于离线状态。
- 再次运行 diskpart
- 列出磁盘
- 选择磁盘 1(或任何磁盘编号)
- 脱机磁盘
这是我在原始问题中遇到的问题的一部分。我不能将磁盘脱机,因为磁盘上有 Windows EFI 分区。
错误内容如下:
Disk attributes may not be changed on the current system disk or bios disk 0
这是怎么发生的?我以前经常使用双启动,管理多启动系统的常用策略是配置 Grub(默认的 Ubuntu Linux 启动加载程序)以了解机器上的所有其他操作系统。
我首先尝试删除 Ubuntu 驱动器的 EFI 分区中的 EFI/Microsoft 文件夹——结果发现该文件夹正在被使用(如错误所述)。
因此,要恢复默认的 Microsoft EFI 分区,您需要遵循以下指南:http://woshub.com/如何修复已删除的 efi 分区在 windows-7 中/
总结:
- 如果不存在 EFI 分区,请启动实时 gparted 磁盘(或通过重启在另一个驱动器上使用 Linux 安装的 gparted)并调整大小/为 100MB fat32 分区腾出空间
- 按照 woshub.com 链接上的其余说明进行操作
- 您现在可以再次启动 Windows!
步骤 6:在 Virtual Box 中,将 vdmk 附加到新的虚拟机
您可能需要将文件浏览器更改为查看“所有文件”才能看到它