使用 virtualbox 将物理硬盘当做虚拟机的硬盘
发表于 : 2008-04-24 9:31
我的笔记本是双操作系统,ubuntu和windows xp。前一段时间一直在ubuntu上用,由于需要使用一些即时通讯工具, 例如QQ,所以在ubuntu里面有用virtualbox虚拟了另一个winxp。这样一来,搞得有一个真实的xp系统,一个虚拟的 xp系统。这还不算头疼。最近因为一些原因,回到真实的xp系统上,发现有些ubuntu上用习惯了的东西又没有了。 这个时候,要么再virtualbox一个ubuntu,要么装cygwin。这两种方案,都不爽。而且,由于平常用的一些文件在几个真真 假假的系统之间换来换去,很难保持一致性,比较头痛。
后来想到,干脆把物理硬盘当做虚拟机的硬盘,这样,不管是把xp当做host,还是把ubuntu当做Host,我都是只有两套系统。 只不过是哪个系统为 host,哪个系统为 guest 而已。我使用的virtualbox 版本是1.5.6,参考它的手册9.9
要注意的是,文档中也指出,这是个比较危险的动作,可能会造成硬盘数据的丢失。有个原则,就是这两个系统,都不直接访问 另一个系统的分区。我就是一块硬盘,四个分区,1为xp,2和3是ubuntu,4是swap。
首先,在ubuntu上,这个比较简单,参考文档,使用命令:
VBoxManage internalcommands createrawvmdk -filename ~/winxp.vmdk -rawdisk /dev/sda -partitions 1 -relative -register
这里有个权限的问题,因为/dev/sda 和 /dev/sda1 对普通用户是不可读的,所以需要修改一下权限。我是直接用 777,虽然不安全,不过省事。这里用 relative参数,就是说不用其他分区,因此只要这两个device的权限就行。
随后是mbr的问题。我给这个虚拟机让它直接使用自己的mbr,首先用 sudo apt-get install mbr,然后
install-mbr -f -p 1 winxp-pt.vmdk
这样就使得它有独立的mbr了。不过因为我不重装系统,所以这个步骤的意义其实不是很大。随后就很简单了, 启动virtualbox,新建一个xp的虚拟机,使用这块新做出来的硬盘。这里注意,有个选项必须要选上,在属性-> 常规->高级->启用IO APIC 刚开始我没选这个属性,每次启动虚拟机,虚拟机都黑屏,选上就好了。
其次,在winxp上,也使用命令行,差别不大,不过有一点,因为ubuntu使用分区2,3,光使用这两个分区做虚拟机, 启动的时候总是停留在 MBR 1FA这个地方,查了半天也没查出个所以然来。后来想算了,干脆把全盘当做虚拟机的 硬盘好了,只要在winxp下面不要去直接访问分区2,3,应该就没事。命令行如下:
vboxmanage internalcommands createrawvmdk -filename ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -register
然后就可以了。这样我就可以把双操作系统随时都一起启动起来,比较好玩。:D
后来想到,干脆把物理硬盘当做虚拟机的硬盘,这样,不管是把xp当做host,还是把ubuntu当做Host,我都是只有两套系统。 只不过是哪个系统为 host,哪个系统为 guest 而已。我使用的virtualbox 版本是1.5.6,参考它的手册9.9
要注意的是,文档中也指出,这是个比较危险的动作,可能会造成硬盘数据的丢失。有个原则,就是这两个系统,都不直接访问 另一个系统的分区。我就是一块硬盘,四个分区,1为xp,2和3是ubuntu,4是swap。
首先,在ubuntu上,这个比较简单,参考文档,使用命令:
VBoxManage internalcommands createrawvmdk -filename ~/winxp.vmdk -rawdisk /dev/sda -partitions 1 -relative -register
这里有个权限的问题,因为/dev/sda 和 /dev/sda1 对普通用户是不可读的,所以需要修改一下权限。我是直接用 777,虽然不安全,不过省事。这里用 relative参数,就是说不用其他分区,因此只要这两个device的权限就行。
随后是mbr的问题。我给这个虚拟机让它直接使用自己的mbr,首先用 sudo apt-get install mbr,然后
install-mbr -f -p 1 winxp-pt.vmdk
这样就使得它有独立的mbr了。不过因为我不重装系统,所以这个步骤的意义其实不是很大。随后就很简单了, 启动virtualbox,新建一个xp的虚拟机,使用这块新做出来的硬盘。这里注意,有个选项必须要选上,在属性-> 常规->高级->启用IO APIC 刚开始我没选这个属性,每次启动虚拟机,虚拟机都黑屏,选上就好了。
其次,在winxp上,也使用命令行,差别不大,不过有一点,因为ubuntu使用分区2,3,光使用这两个分区做虚拟机, 启动的时候总是停留在 MBR 1FA这个地方,查了半天也没查出个所以然来。后来想算了,干脆把全盘当做虚拟机的 硬盘好了,只要在winxp下面不要去直接访问分区2,3,应该就没事。命令行如下:
vboxmanage internalcommands createrawvmdk -filename ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -register
然后就可以了。这样我就可以把双操作系统随时都一起启动起来,比较好玩。:D