VirtualBox v7.0 VM mount Host’s Physical Disk

VirtualBox的虚拟机通常使用虚拟磁盘,但实际上也可以直接挂载宿主机的物理磁盘使用。本文讲述如何为VirtualBox v7.0中的虚拟机挂载宿主机的物理磁盘。

硬件环境

Lenovo ThinkPad T14 Gen2 20W1S3H811: Intel i5-1145G7 + DDR4 16GB + NVMe 512GB

软件环境

Win11 x64 Build 22621.2134 英文专业版 + VirtualBox v7.0.8 r156879

写在前面

VirtualBox v7.0 与之前版本用的命令不一样。
v6.1 及以前版本是用VBoxManage internalcommands createrawvmdk命令来将物理盘创建成虚拟盘。官网说明:https://docs.oracle.com/en/virtualization/virtualbox/6.1/admin/AdvancedTopics.html#rawdisk
v7.0 开始用VBoxManage createmedium创建。官网说明:https://docs.oracle.com/en/virtualization/virtualbox/7.0/admin/AdvancedTopics.html#adv-storage-config
另外,7.0 版本的官网说明遗漏了指定磁盘大小,如果直接使用它的示例去做盘,是无法使用的(虚拟分配空间为0),使用 [–size=megabytes | –sizebyte=bytes] 指定磁盘的实际大小即可。

在Windows中为VirtualBox虚拟机挂载宿主机物理盘

以管理员权限打开命令行CMD或是PowerShell窗口,切换当前目录到VirtualBox安装目录中。
cd "C:\Program Files\Oracle\VirtualBox>"
列举宿主机的磁盘
C:\Program Files\Oracle\VirtualBox>VBoxManage list hostdrives --long
Drive: \.\PhysicalDrive0
Model: "WDC PC SN730 SDBQNTY-512G-1001"
UUID: 742e6ad3-bd6f-4e1e-a268-c150c25481ab
Size: 512110190592 bytes (476.9GiB)
Sector Size: 512 bytes
Scheme: GPT
Partitions:
##Type Uuid Byte Size Byte Offset Active Name
1 EFI e2d217f1-9836-4b2f-adca-bdc9dcfe8c82 314572800 1048576 off EFI system partition
2 WindowsBasicData bfb92b18-a0b5-479d-aad1-a46727360710 511794216960 315621376 off Basic data partition
Drive: \.\PhysicalDrive1
Model: "Generic Flash Disk "
UUID: 6dc89d82-0000-0000-0000-000000000000
Size: 4047503360 bytes (3.7GiB)
Sector Size: 512 bytes
Scheme: MBR
Partitions:
##Type Byte Size Byte Offset Cyl/Head/Sec Cyl/Head/Sec Active
1 07 1363148800 1342177280 163/ 45/11 328/230/30 yes IFS
2 16 1340079616 2705326080 328/230/31 491/210/38 no Unknown

创建VMDK虚拟磁盘文件来对应宿主机磁盘\.\PhysicalDrive1
C:\Program Files\Oracle\VirtualBox>VBoxManage createmedium disk --filename C:\VM\usb.vmdk --sizebyte=4047503360 --format=VMDK --variant RawDisk --property RawDrive=.\PhysicalDrive1
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Medium created. UUID: 3a2b723b-074c-44b9-b381-7ec6413ff1b4

C:\Program Files\Oracle\VirtualBox>VBoxManage showmediuminfo disk "C:\VM\usb.vmdk"
UUID: 3a2b723b-074c-44b9-b381-7ec6413ff1b4
Parent UUID: base
State: created
Type: normal (base)
Location: C:\VM\usb.vmdk
Storage format: VMDK
Format variant: fixed unknown
Capacity: 3860 MBytes
Size on disk: 3860 MBytes
Encryption: disabled
Property: BootSector=
Partitions=
RawDrive=\.\PhysicalDrive1
Relative=

创建好虚拟盘后,再到对应虚拟机里面设置存储就可以了。可以在虚拟机中使用宿主机的磁盘,还可以在虚拟机中选择宿主机的磁盘启动。文件的操作也都是直接在物理盘上进行的,后续在宿主机中也能直接使用这些在虚拟机中被改变的文件。

删除虚拟盘
可以使用VirtualBox v7.0的图形界面删除:管理(F) -> 工具 -> 虚拟介质管理(V)(快捷键Ctrl+D

在Ubuntu中为虚拟机挂载宿主机物理盘

转载自 https://blog.csdn.net/taiexinleni/article/details/127355025 ,未实际测试。
# 把当前用户添加到disk组,否则没有读写权限
sudo usermod -a -G disk $(whoami)
# 把当前用户添加到vboxusers组,否则不能转接USB
sudo usermod -a -G vboxusers $(whoami)
# 添加完用户组后需要重启系统
sudo reboot
重启后以root权限运行以下命令
VBoxManage list hostdrives --long
VBoxManage createmedium disk --filename "~/hd0.vmdk" --sizebyte=4047503360 --format=VMDK --variant RawDisk --property RawDrive=/dev/sda


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *