本文经过实测后记录,以备后查,

原本是买回来的本子上,销售商已帮我装上了MAC OS X 和WIN7双系统,WIN7单独装在一个区下面,后来觉得OS X 系统东西太多,清理麻烦,就重装了一下OS X ,

重装后发现原来的WIN7 还是可以启动的,直接在开机状态下按住 option键,选择WIN7的启动分区就可以。这点倒是比WINDOWNS系统要好。

但这种情况下想使用WIN7的话,就得重启系统,但很多情况下,我们使用WIN7可能只是为了使用一下网银,或是简单的调试一些在WIN下面的东西,重启太耗时,

就想有没有可能在 MAC OS X下面,再把这个分区的系统启动起来呢,经过研究,实验成功,方法如下:

首先,需要借助一款虚拟机:virtual box 这是一款跨平台的虚拟机软件,好处就是:免费,不像VMWARE或是parallels等,贵得要死,穷人呀,没办法,个人觉得virtual box在性能上还可以,以前在centos上布署过服务器,稳定性感觉还可以接受,基本没死过机,还有很重要的是,他的所有操作都可以命令行操作,启动后,可以通过一个服务,远程连接,进行操作系统的安装,这对于布署服务器来说,非常好。

关于如何在centos 下布署virtual box 请看我的另一遍文章:

下载virtual box for mac版:https://www.virtualbox.org/wiki/Downloads

根据自己的版本选择下载,这里就是mac版的了,

下载后安装,基本不用说了,

安装完成后,启动virtual box 然后创建一个虚拟机,但不要创建虚拟磁盘,接下来通过以下方法创建虑拟磁盘:

      打开终端,先看一下自己的机器的WIN7所在的分区是哪个:

            df -h

songdemeideMBP:~ sdomain$ df -h
Filesystem      Size   Used  Avail Capacity iused    ifree %iused  Mounted on
/dev/disk0s4    79Gi   22Gi   56Gi    29% 5948761 14678802   29%   /
devfs          181Ki  181Ki    0Bi   100%     626        0  100%   /dev
/dev/disk0s2    79Gi   31Gi   49Gi    39% 8083908 12722234   39%   /Volumes/Macintosh HD 2
map -hosts       0Bi    0Bi    0Bi   100%       0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0        0  100%   /home
/dev/disk0s3    79Gi   21Gi   58Gi    27%   84005 61175971    0%   /Volumes/BOOTCAMP



        我的机器是:/dev/disk0s3

     说明是在磁盘0的第3个分区上,我就只有一个磁盘,如果有的机器有两块硬盘,而WIN7是装在独立的一块硬盘上的话,以下操作会有区别,请注意。

首先是将此分区卸载:

    sudo bash -l         //切换到root 用户权限

    umount /dev/disk0s3    //卸载分区 如果是独立磁盘,则要卸载对应的磁盘分区

然后更改设备权限,因为默认情况下,此设备只有root用户可以访问,

songdemeideMBP:~ root# cd /dev/
songdemeideMBP:dev root# chmod 646 disk0s3

再看一下权限,如下所示就可以了:

songdemeideMBP:dev root# ls -l disk0*
brw-r-----  1 root  operator    1,   0  1 21 10:50 disk0
brw-r-----  1 root  operator    1,   1  1 21 10:50 disk0s1
brw-r-----  1 root  operator    1,   4  1 21 10:50 disk0s2
brw-r--rw-  1 root  operator    1,   5  1 21 10:50 disk0s3
brw-r-----  1 root  operator    1,   2  1 21 10:50 disk0s4
brw-r-----  1 root  operator    1,   3  1 21 10:50 disk0s5

然后开始使用此硬盘分区创建虚拟磁盘:

VBoxManage internalcommands createrawvmdk -filename ./disk.vmdk -rawdisk /dev/disk0 -partitions 3


附 VBoxManage internalcommands createrawvmdk 命令:
VBoxManage internalcommands createrawvmdk 

创建一个vmdk格式的硬盘
-filename <filename> vmdk格式的硬盘所对应的vmdk文件
-rawdisk <diskname>  vmdk文件所对应的物理硬盘
[-partitions <list of partition numbers>  vmdk文件对应的物理硬盘的分区
[-mbr <filename>] ] 将这个文件包含的引导记录写到vmdk文件
[-register] 将这个新创建的硬盘注册到virtualbox
[-relative] 激活这个新创建的硬盘的分区

这样就创建了一个disk.vmdk的虚拟硬盘,他是直接连接之前我们操作的disk0硬盘上的s3分区的,

生成的文件分生成两个:disk-pt.vmdk 和disk.vmdk

然后进入virtual box 里,点设置--》存储 里面,在控制器SATA后面点+号 (添加虚拟硬盘),然后选择使用现有的虑拟盘,,再选择刚创建的disk.vmdk文件。

添加好硬盘后,注意,在当前界面的右侧有一个选项:使用主机的输入输出(I/O)缓存 ,选中它。(这一步很重要,否则虑拟机无法启动,我就是因为这一步,弄了好久。最后在官方论坛里找到是这里的原因)

完成后点击界面确定,保存添加的磁盘,

最后启动虑拟机,就可以启动此分区上的操作系统了,


这样操作的好处是:

可以在MAC OS下面直接启动WINDOWS,方便,同时,操作系统并不是安装在虑拟硬盘上,是在物理硬盘上,速度什么的会更快,另外,当我们需要玩游戏等需要高性能的WINDOWS时,虑拟的WINDOWS可能并不能满足使用,这时可以重启电脑,直接启动WIN7,性能上完全没问题。而这一切都是共用一个WINDOWS安装,不需要安装两份WINDOWS。


但要注意的是,每次重启MAC后,对应的WIN分区分重新被挂上,这时需要手工umount和重新改权限,否则virtual启动时,分报权限不够,不能读取硬盘。

其实可以写一个脚本,启动时先解除绑定,再改权限,然后命令启动virtual box 只是注意变更用户,因为umount和chmod的时候,需要root用户,我们直接启动virtual的时候,添加的虑拟机,其实是在我们正常使用的帐户下面,当然。也可以直接全部使用root用户来操作了。根据个人喜好吧。