<返回更多

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

2019-10-11    
加入收藏

前言

无论是因为喜欢、还是工作需求将macOS作为主力系统,windows总不能完全脱离,但不可能每次通过重启主机来切换使用,所以使用虚拟机来运行多系统是惯用做法,虽然Parallels Desktop虚拟机表现不错,可以明确的弊端是,Parallels Desktop仅支持已安装Windows的物理盘挂入虚拟机使用,原生不支持加入第二块甚至多块物理硬盘,如果你的物理Windows系统使用多块硬盘,那么就无法愉快的通过虚拟机玩耍了!

笔者手头SSD较多,为了macOS免驱兼容Nvme驱动入手intel 760P 500G,Windows系统盘前段时间改用英睿达P1 500G,用于存放系统分区、游戏等不重要数据,重要数据则存放于另一块WD 蓝盘 256G,将macOS、Windows、Windows数据盘完全分离对于搞机型玩家来说是常规操作,避免手抖手残将系统搞残之后,影响其它数据或主机的运行。

最早可以找到关于PD挂入第二块物理盘需求的帖子,是在远景发布的求助帖,帖子发布时间近2年了吧?至今没有大神给出有效方案,找遍国内主流黑苹果论坛均无方案,那只能自己动手丰衣足食了!~

折腾的意义

方便macOS作为主系统运行的同时兼顾Windows在物理盘同时运行,且在需要切换到Windows通过硬件物理运行时,能继续无缝使用macOS虚拟机运行时的系统和软件数据。

某些应用在win下的版本比较好用,或者仅有Windows版本,比如IDM下载神器,偶尔看到值得收藏的Little movie通过IDM搭配浏览器插件,可以直接获取到视频的真实地址而下载,但在macOS下找不到同类软件;比如Windows下的聊天软件,千牛对于玩淘宝的商家来说不可或缺,但是macOS系统下的千牛版本很残且官方停更,导致各类插件均不兼容且及其难用;再比如Windows版QQ等聊天软件的聊天记录,无法导入到macOS下继续使用,都不得不选择沿用Windows版本,再比如……此处省略一万字……

常规方式使用PD虚拟机建立虚拟磁盘会占用macOS磁盘容量,且数据在虚拟磁盘文件里,不方便调用,但是通过虚拟机运行物理盘的Windows则不会有这个问题;或者macOS系统下通过PD虚拟方式启动物理盘Windows运行轻量应用,需要玩游戏时,又可以无缝切到物理主机运行Windows发挥硬件最大性能,这样Windows软件数据、聊天记录等都可以在物理和虚拟系统之间进行无缝切换使用,从而发挥硬件最大价值!

需求不同,对每个人的意义则不同,本文仅提供折腾方式,个中意义请自行对号入座!~

环境准备

1. 在运行的macOS系统(本文使用版本Mojave 10.14.6,没有黑苹果系统的机友,可以点“那是云Mojelly”头像看之前分享的三篇黑苹果装机分享文章。)

2. 已安装Parallels Desktop虚拟机软件(本文使用版本14.1.3-45485)

3. 已安装好Windows的硬盘(本文使用Windows 10当前最新版本)

4. 待添加到Parallels Desktop的第“二”块物理盘(已分区)

实现步骤

通过PD添加物理盘Windows系统到虚拟机

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲如果首次安装Parallels Desktop,且检测到带有Windows系统的磁盘,会提示使用Boot Camp,按提示配置即可。

需要提醒的是!虚拟机运行方式因硬件环境改变,使得物理盘上的Windows在虚拟运行时提示系统激活,如果使用数字账户激活权利,会在切回物理主机运行时会自动激活。也有网友提议,可以花点小钱,给虚拟机再用另一个激活码激活一次,这样虚拟、物理环境都是激活状态。因为本人不介意虚拟运行时的未激活提示,所以暂未做实测,有兴趣的机友可以自测。

获取备用信息

获取需要添加到PD的第二块物理盘的磁盘信息和分区信息。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲打开macOS的磁盘工具,确定需要挂入PD虚拟机硬盘在macOS系统下的位置,disk4s2,disk4表示系统盘序,s2表示硬盘分区序号

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲打开macOS终端,输入sudo -i 切到root用户,输入gpt -r show /dev/disk4,获得硬盘信息,可以看到该盘已有2个分区。【将此步骤注释为“硬盘信息”下文待用】

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲打开macOS终端,输入diskutil info disk4s1和diskutil info disk4s2,获取分区信息,若上一步“硬盘信息”获取到更多分区,则继续diskutil info disk4s3、diskutil info disk4s4等等,以此类推。【将此步骤注释为“分区信息”下文待用】

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲通过该网页生成一个新的uuid,【将此步骤注释为“UUID”下文待用】。

编译虚拟磁盘配置文件

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲打开Paralls Desktop虚拟机,对生成的Windows虚拟机右键,在Finder中显示。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲对pvm格式文件,右键,显示包内容。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲正常应该可见通过Boot Camp自动导入生成与硬盘名同名****(disk1).hdd的虚拟磁盘文件,按住Option键,拖拽鼠标,生成一个副本文件并更名,比如我现在要添加的第三块,为了遵循PD的规则,也按照磁盘名称命名为“ZA480NM10001 Media (disk3).hdd”,当然你也可以随意命名。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲对“ZA480NM10001 Media (disk3).hdd”右键,显示包内容,里面还可见一个****.hdd文件,按照虚拟磁盘文件名修改一致“ZA480NM10001 Media (disk3).hdd”

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲接下来编译修改虚拟磁盘包内容中的“DiskDescriptor.xml”文件,使用macOS自带的文本编辑器或者其它代码编辑工具都可以。找到<Disk_Parameters></Disk_Parameters>项,修改其中的<UID></UID>和<Name></Name>参数。UID参数使用前面提前准备“待用信息”中的UUID,注意保留前后的中括号{ };Name则使用所需新增的虚拟磁盘完整文件名。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲继续修改“DiskDescriptor.xml”文件,找到<StorageData></StorageData>项,找到Type类型为Bootcamp_UID的<Storage></Storage>子项。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲因为本次添加的硬盘仅分区2有实际用途,分区1实为GPT格式化时预留16M分区无实际用处,所以仅保留一个<Storage></Storage>子项,将【硬盘信息】中的分区2的start起始扇区32768作为<Storage></Storage>子项中的<Start>参数,将下一分区start起始值937699328,填入<Storage></Storage>子项中的<End>参数中,如果你的硬盘有多个分区,以此类推,按分区顺序添加多个<Storage></Storage>子项。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲将之前提前备用的【分区信息】disk4s2中的Disk / Partition UUID参数填入<Storage></Storage>子项中的<File>参数中,注意<File>值对应上一步相应分区的<Start>、<End>起止值,如果有多个分区,以此类推。OK,至此“DiskDescriptor.xml”文件即修改完毕,保存即可。

重建磁盘信息转储文件

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲访达底部路径右键,复制虚拟磁盘文件包内容所在路径

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲打开终端,如果当前非root,输入sudo -i切到root用户,再输入cd+空格+粘贴上一步复制的虚拟磁盘文件路径,如果如图报错-sh: syntax error near unexpected token `(',可以将路径前后加上英文的单引号,或者如图删除路径中磁盘名称后部分内容以星号*代替,回车看到root用户前的路径名称为虚拟磁盘文件名即可。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲编译虚拟磁盘的最后一步,在上一步路径下重建虚拟磁盘包内容中的PhysicalMbr.hds、PhysicalGpt.hds、PhysicalGptCopy.hds三个磁盘信息转储文件,确保当前终端为root用户,逐个执行以下三个命令行

dd if=/dev/disk4 bs=512 count=1 of=./PhysicalMbr.hds

dd if=/dev/disk4 bs=512 count=33 skip=1 of=./PhysicalGpt.hds

dd if=/dev/disk4 bs=512 count=33 skip=937703055 of=./PhysicalGptCopy.hds

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲上一步命令行中/dev/disk4,根据自己的实际硬盘所在位置变动,最后一个命令行中skip=937703055,根据自己【硬盘信息】中“Sec GPT table”值替换,本文测试硬盘值为937703055。

将新的虚拟磁盘添加至虚拟机

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲右键PD虚拟机,点击配置

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲硬件选项中,右下角,+加号,添加硬盘,选择现有的镜像文件,选择刚编译好的虚拟磁盘文件,需要选择虚拟磁盘包内容中的.hdd文件,做完此步,PD已经可以识别并启动虚拟机使用了。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲细心的用户可能注意到,上一步添加硬盘时,在pvm虚拟机包内容中会生成一个以绝对路径为名称的新磁盘文件,这个才是PD实际调用的文件。如果你跟我一样有强迫症,那就再改改……

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 


给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

1. Windows.pvm包内容中复制刚手动编译的ZA480NM10001 Media (disk3).hdd文件名称,并删除。

2. 重命名以绝对路径为名称的新磁盘文件名为ZA480NM10001 Media (disk3).hdd

3. 右键,显示包内容,进入虚拟磁盘包内容中的修改*****.hdd文件名为ZA480NM10001 Media (disk3).hdd

4. 修改“DiskDescriptor.xml”文件,找到<Disk_Parameters></Disk_Parameters>项中的<Name>参数为ZA480NM10001 Media (disk3).hdd

5. 配置虚拟机,选中刚添加的磁盘,再次选择更名后的ZA480NM10001 Media (disk3).hdd文件。

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲如整个操作过程无问题,启动Windows后,即在我的电脑里看到添加的物理硬盘分区,我这里演示的是添加第三块物理盘,分区盘符为E。

注意事项:虽然实测读写无任何问题,但不能在虚拟机内对硬盘重做分区、压缩卷等操作。也就是说,你要挂入物理盘,务必提前做好分区等磁盘设定,比较适用于已有物理Windows盘,挂入Boot Camp的Windows系统中使用。

问题排除

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

在最初尝试添加第二块盘后,启动虚拟机有报一个磁盘相关的错误,但是这次添加第三块物理用没有提示,时间跨度有点长了,不清楚是PD版本关系还是其他原因,如果你也遇到,那么就尝试给Windows10.pvm包内容中的config.pvs虚拟机配置文件添加新硬盘的<Hdd></Hdd>参数,如操作完前面步骤无报错,那么下方内容可以无需理会!

给macOS系统下Parallels虚拟机Windows添加更多物理磁盘

 

▲在config.pvs配置文件中找到已有<Hdd></Hdd>项,在其后再复制添加一份<Hdd></Hdd>项,图示是第二块物理盘和新添加的第三块物理盘参数,因为这次第三块盘是自动添加的,所以截出来供参考对比参数变量位置:

1. 上半部分,三处箭头标记处,应该是需要变量参数,在新增<Hdd></Hdd>项中不能重复相同,可以以递增方式变动,参考截图上半部分和下半部分对比;

2. 新增部分,<SystemName>< /SystemName >参数根据实际新的虚拟磁盘文件名称(注意带hdd后缀),<UserFriendlyName></ UserFriendlyName >参数根据实际新的虚拟磁盘文件名称(注意无需hdd后缀);

3. <Size></Size>参数,这个是根据扇区总数,比如此次文中添加的第三块盘,根据终端获取的【硬盘信息】扇区总数为937703088,扇区和容量的换算公式,总扇区数→除以2→除以1024,忽略小数点得到457728,config.pvs配置用的单位是MB。

扇区与容量为什么这么换算?

提供个小知识:扇区大小固定为512字节,除以2得到KB单位,除以1024得到MB单位,再除以1024得到GB单位,因PD使用MB单位,所以只需要除以2→除以一次1024得到MB单位即可。如果你要偷懒的话,其实<Size>这个参数PD会自动修正,可以不做换算。

4. <Partition></ Partition >参数,根据编译的新虚拟磁盘文件分区数来定,如果有多个分区,就按红框部分,添加多个<Partition></ Partition >参数对应实际macOS下的硬盘分区路径,注意Partition id也是变量,具体可以对比上下两部分。

最后

完全按照上述教程操作后,如无意外,就可以将Windows的多块物理硬盘挂入macOS的PD虚拟机内运行,需要物理运行Windows时,重启主机选择Windows启动即可,这样Windows可以在物理和虚拟之间无缝切换使用,发挥黑苹果的最大价值!关于Ubuntu等linux系统,实测无法通过此方式挂入启动,但是可以通过虚拟磁盘安装Linux系统,再按照本文方法挂入物理盘当做数据盘来使用。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>