首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在 Windows 宿主系统上使用 VirtualBox 让虚拟机直接挂载物理磁盘分区

在 Windows 宿主系统上使用 VirtualBox 让虚拟机直接挂载物理磁盘分区

原创
作者头像
OpenBit
修改2025-08-09 15:26:33
修改2025-08-09 15:26:33
46200
代码可运行
举报
运行总次数:0
代码可运行

在 Windows 宿主系统上使用 VirtualBox 让虚拟机直接挂载真实分区并将更改实时应用到物理分区是可行的。VirtualBox 支持将物理磁盘或分区以“原始磁盘”(Raw Disk)的方式传递给虚拟机。以下是详细步骤和注意事项:

系统环境

  • 宿主系统:Windows(假设是 Windows 10 或 11)
  • 虚拟化软件:VirtualBox
  • 目标:将物理分区(例如 Disk 1 的某个分区)挂载到虚拟机

步骤

1. 确认目标分区
  1. 打开磁盘管理
  • Win + R,输入 diskmgmt.msc,回车。
  • 找到你要挂载的物理分区,例如 Disk 1Partition 1(假设是 D: 盘)。
  • 记下磁盘编号(例如 Disk 1)和分区情况。
  1. 卸载分区(可选)
  • 如果分区当前被 Windows 挂载(有盘符),右键选择“删除卷”或“脱机”(Offline),以避免宿主和虚拟机同时访问导致冲突。
  • 注意:删除卷会清空分区表,谨慎操作。如果只是临时使用,可以选择“脱机”。
2. 检查 VirtualBox 权限
  • VirtualBox 需要管理员权限才能访问物理磁盘。
  • 以管理员身份运行命令提示符(CMD)或 PowerShell:
  • 右键“开始”菜单 -> “Windows 终端 (管理员)”。
3. 创建原始磁盘映射

VirtualBox 使用 VBoxManage 工具将物理分区映射为虚拟磁盘文件(VDI),但实际上它是直接访问物理存储的“代理”。

  1. 打开命令行

进入 VirtualBox 安装目录(默认是C:\Program Files\Oracle\VirtualBox):

代码语言:javascript
代码运行次数:0
运行
复制
cd C:\Program Files\Oracle\VirtualBox
  1. 生成 VDI 文件
  • 如果要挂载整个磁盘(例如 Disk 1):
代码语言:javascript
代码运行次数:0
运行
复制
VBoxManage internalcommands createrawvdi -filename "C:\path\to\raw.vdi" -rawdisk \\.\PhysicalDrive1
  • \\.\PhysicalDrive1 表示 Disk 1(编号从 0 开始,Disk 1PhysicalDrive1)。
  • 如果只挂载某个分区(例如 Disk 1 的第一个分区):
代码语言:javascript
代码运行次数:0
运行
复制
VBoxManage internalcommands createrawvdi -filename "C:\path\to\raw.vdi" -rawdisk \\.\PhysicalDrive1 -partitions 1
  • -partitions 1 表示只映射第一个分区(分区编号从 1 开始)。
  1. 验证生成

检查C:\path\to\raw.vdi是否生成成功。这是一个小的代理文件,实际数据仍存储在物理分区。

4. 配置虚拟机
  1. 打开 VirtualBox

以管理员身份运行 VirtualBox。

  1. 选择虚拟机

打开目标虚拟机的设置。

  1. 添加硬盘
  • 点击“存储” -> “控制器: SATA” -> “添加硬盘”。
  • 选择“选择现有磁盘”,浏览到 C:\path\to\raw.vdi,确认添加。
  1. 保存设置

点击“确定”保存。

5. 启动虚拟机
  • 启动虚拟机后,目标分区会作为磁盘出现在虚拟机中。
  • 虚拟机对该分区的所有操作(例如格式化、写入文件)都会直接反映到物理分区。

注意事项

  1. 数据安全
  • 虚拟机直接操作物理分区,任何错误(例如误删分区表)都会影响物理存储。建议备份重要数据。
  1. 磁盘状态
  • 确保目标磁盘或分区在宿主系统中处于“脱机”状态(在磁盘管理中右键选择“脱机”),否则 VirtualBox 可能因权限冲突无法访问。
  • 检查方法:在运行 VBoxManage 时,如果提示“无法打开磁盘”,可能是磁盘被占用。
  1. 分区编号
  • 如果磁盘有多个分区,-partitions 参数需正确指定。例如,-partitions 1,2 表示映射第 1 和第 2 个分区。
  • 查看分区编号可以用 diskpart
代码语言:javascript
代码运行次数:0
运行
复制
diskpart
select disk 1
list partition
  1. 性能
  • 直接访问物理分区比使用虚拟磁盘文件更快,因为没有额外的文件系统开销。
  1. 虚拟机系统兼容性
  • 确保虚拟机内的操作系统支持目标分区的文件系统(例如 NTFS、FAT32)。

示例

假设:

  • 物理磁盘是 Disk 1,第一个分区是 D: 盘(NTFS 格式)。
  • 虚拟机是 Ubuntu。

步骤

  1. 在磁盘管理中右键 D: 盘,选择“脱机”。
  2. 运行:
代码语言:javascript
代码运行次数:0
运行
复制
cd C:\Program Files\Oracle\VirtualBox
VBoxManage internalcommands createrawvdi -filename "C:\Users\YourName\raw.vdi" -rawdisk \\.\PhysicalDrive1 -partitions 1
  1. 在 VirtualBox 中将 C:\Users\YourName\raw.vdi 添加到虚拟机的 SATA 控制器。
  2. 启动 Ubuntu 虚拟机,运行 lsblk,可以看到类似 /dev/sda1 的设备,对其操作会直接影响 Disk 1 的第一个分区。

验证

  • 在虚拟机中创建一个文件(例如 touch /mnt/test.txt),然后关闭虚拟机。
  • 在 Windows 中将磁盘重新“联机”(Online),检查分区是否包含 test.txt

结论

在 Windows + VirtualBox 环境下,通过 VBoxManage 创建原始磁盘映射,你可以让虚拟机挂载真实分区,所有更改会实时应用到物理存储。操作前请确保磁盘脱机并备份数据。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统环境
  • 步骤
    • 1. 确认目标分区
    • 2. 检查 VirtualBox 权限
    • 3. 创建原始磁盘映射
    • 4. 配置虚拟机
    • 5. 启动虚拟机
  • 注意事项
  • 示例
  • 验证
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档