如何在 VirtualBox 中使用现有的 ext4 硬盘?

如何在 VirtualBox 中使用现有的 ext4 硬盘?

我有一个现有的硬盘,一个装有 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 中使用的物理磁盘 Windows 10 磁盘管理实用程序

    对我来说,它恰好是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 不能真的在虚拟机中使用磁盘时控制磁盘,因此我们需要确保它处于离线状态。

  1. 再次运行 diskpart
  2. 列出磁盘
  3. 选择磁盘 1(或任何磁盘编号)
  4. 脱机磁盘

这是我在原始问题中遇到的问题的一部分。我不能将磁盘脱机,因为磁盘上有 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 中/

总结:

  1. 如果不存在 EFI 分区,请启动实时 gparted 磁盘(或通过重启在另一个驱动器上使用 Linux 安装的 gparted)并调整大小/为 100MB fat32 分区腾出空间
  2. 按照 woshub.com 链接上的其余说明进行操作
  3. 您现在可以再次启动 Windows!

步骤 6:在 Virtual Box 中,将 vdmk 附加到新的虚拟机

您可能需要将文件浏览器更改为查看“所有文件”才能看到它

相关内容