让VirtualBox使用物理硬盘作为虚拟硬盘镜像

根据VirtualBox手册第9章第9节第1小节(https://www.virtualbox.org/manual/ch09.html#rawdisk),使用下列命令创建一个虚拟硬盘镜像,然后创建虚拟机使用该镜像即可。


VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda


该命令将会创建/path/to/file.vmdk(必须是绝对路径)镜像,并且所有数据将会从/dev/sda上读写。


在windows host机上使用如\\.\PhysicalDrive0;在Mac OS X host机上使用如/dev/disk1作为rawdisk的参数。


并且根据手册说明,在某些平台上,譬如vista及以后版本的windows上,在某些情况下读写物理磁盘可能会被禁止。第一次创建虚拟镜像的时候得到以下错误,使用管理员权限后再次创建成功。在创建虚拟机并使用该镜像作为硬盘时也得到VERR_ACCESS_DENIED的错误,使用管理员权限后错误解决。


C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk
 -filename D:\vm\disk500.vmdk -rawdisk \\.\PHYSICALDRIVE1
VBoxManage.exe: error: Cannot open the raw disk '\\.\PHYSICALDRIVE1': VERR_ACCESS_DENIED
VBoxManage.exe: error: The raw disk vmdk file was not created

C:\Program Files\Oracle\VirtualBox>


另外,在windows系统下如何查看物理硬盘及其对应的\\.\PHYSICALDRIVEn?stackoverflow上搜索后得出答案(http://stackoverflow.com/questions/327718/how-to-list-physical-disks),运行下述命令列出详细列表。


wmic diskdrive list

看不懂? 用这个↓

wmic diskdrive list brief 


现在成功在虚拟机中启动了原来装在一块500G移动硬盘上的Ubuntu系统。


注意,根据手册中的说明,千万不要尝试在虚拟机中从当前操作系统的启动分区启动当前正在运行的操作系统。并且,如果你的host的操作系统同样也是从该物理硬盘中启动的话,特别注意不要从guest读写该硬盘的启动分区。并且在手册9.9.1.2中还详细说明了如何使用一块物理硬盘中的模块分区作为磁盘镜像,可作参考。



根据手册上红底黑字的警告说明,上述操作仅限高级用户使用,误操作可能会使整块硬盘上的数据全部丢失。


折腾有风险 入市须谨慎





你可能感兴趣的:(memo)