vbox如何直接存取物理磁盘分区

06-11

把win7作为虚拟机的一个问题是磁盘空间不够用, 一个常规的办法是使用共享文件夹,我使用这种方式遇到了两个大问题:

1. 不能创建文件。

2. 映射为盘符后,不能执行里面的可执行文件(直接在VBOXSRV 里面倒是可以,不过cmd不能切过去)

今天突然想到,能不能把磁盘分区直接给vbox用,我搜索"vbox direct access disk partition"的确是可以的:

sudo VBoxManage internalcommands createrawvmdk -filename /mnt/sda5.vmdk

-rawdisk /dev/sda -partitions 3,5 -relative

sudo chown $USER /mnt/sda5*

sudo chmod 777 /dev/sda3

sudo chmod 777 /dev/sda5

然后在Storage/SATA Controller 新增磁盘/mnt/sda5.vmdk 就行啦。

说明:

1. 其中3,5 对应我原来win7下面的D盘和E盘,(F盘被我装成ubuntu啦)。

2. 加relative 的目的是不用把/dev/sda权限给我。

3. chown,chmod 是为了解决在新增磁盘时出现VBOX_E_OBJECT_NOT_FOUND的问题。

把虚拟机win7起来后,explorer多了两个Raw Disk, 如果你去format 就坏了, 因为那是linux用的。

用Disks工具查看布局是这样的:

sda:

sda1 | sda2 | sda3 | sda4|

sda4:

sda5 | sda6 | sda7 | sda8|

对应到win7下面,

sda1 是系统保留分区105MB

sda2 是C盘 107GB

sda3 是D盘 137GB

sda4 是扩展分区,包括:

sda5 是E盘137GB,原来的F盘在装linux时分割为

sda6 boot 分区128MB,sda7 交换分区1.8GB, sda8 根分区116GB.

为了避免误操作, 到计算机管理磁盘管理去掉分配的盘符即可。