VirtualBox7.0 虚拟机直接挂载物理硬盘

时间:2025-03-26 07:52:07

VirtualBox7.0 与以往版本用的命令不一样了。
6.1 及以前是用 VBoxManage internalcommands createrawvmdk 命令来将物理硬盘创建成虚拟盘,6.1 版本官网说明:/en/virtualization/virtualbox/6.1/admin/#rawdisk
7.0 新版本是用 VBoxManage createmedium 来创建的,7.0 版本官网说明:/en/virtualization/virtualbox/7.0/admin/#adv-storage-config

另外,7.0 版本的官网说明漏掉了指定磁盘大小,如果直接使用它的示例去做盘,是无法使用的(虚拟分配空间为0),使用 [--size=megabytes | --sizebyte=bytes] 指定一下硬盘的实际大小即可。

运行虚拟机、打命令都需要使用管理员身份,以下是我使用的命令,简记如下:

: 查询主机的驱动器
VBoxManage list hostdrives --long

: 将物理盘创建成虚拟盘(这样虚拟机才能挂载使用)
VBoxManage createmedium disk --filename "E:\Users\vipox\VirtualBox VMs\Ubuntu\" --sizebyte=240057409536 --format=VMDK --variant RawDisk --property RawDrive=\\.\PhysicalDrive0

: 显示虚拟盘信息
VBoxManage showmediuminfo disk "E:\Users\vipox\VirtualBox VMs\Ubuntu\"

创建好虚拟盘后,再到对应虚拟机里面设置好存储就可以了。完美实现虚拟机直接启动物理盘上的系统,并且文件的操作也都是直接在物理盘盘上操作,后续启动实体机,也能直接使用该文件。

如果你创建过又想删除,使用“Oracle VM VirtualBox”的图形界面来删除:“管理(F) -> 工具 -> 虚拟介质管理(V)”(快捷键:Ctrl + D)

Ubuntu 创建 Windows 物理盘虚拟机的命令如下:

# 把当前用户添加到 disk 组,否则没有读写权限
sudo usermod -a -G disk $(whoami)
# 把当前用户添加到 vboxusers 组,否则不能转接USB
sudo usermod -a -G vboxusers $(whoami)
# 加完用户组信息后,需要重启系统

VBoxManage list hostdrives --long
VBoxManage createmedium disk --filename "~/VirtualBox VMs/" --sizebyte=1000204886016 --format=VMDK --variant RawDisk --property RawDrive=/dev/sda
VBoxManage createmedium disk --filename "~/VirtualBox VMs/" --sizebyte=1000204886016 --format=VMDK --variant RawDisk --property RawDrive=/dev/sdb
VBoxManage createmedium disk --filename "~/VirtualBox VMs/" --sizebyte=500107862016 --format=VMDK --variant RawDisk --property RawDrive=/dev/sdc
如果出现如下错误信息,重启一下系统即可:
: error: Failed to create medium
: error: Could not create the medium storage unit 'C:\Users\Public\'.
: error: VMDK: could not open raw disk file '\\.\PhysicalDrive2' (VERR_SHARING_VIOLATION)
: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium
: error: Context: "enum RTEXITCODE __cdecl handleCreateMedium(struct HandlerArg *)" at line 632 of file