榨干macOS硬件价值Parallels虚拟机添加物理盘
无论是因为喜欢、还是工作需求将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的第“二”块物理盘(已分区)
▲如果首次安装Parallels Desktop,且检测到带有Windows系统的磁盘,会提示使用Boot Camp,按提示配置即可。
需要提醒的是!虚拟机运行方式因硬件环境改变,使得物理盘上的Windows在虚拟运行时提示系统激活,如果使用数字账户激活权利,会在切回物理主机运行时会自动激活。也有网友提议,可以花点小钱,给虚拟机再用另一个激活码激活一次,这样虚拟、物理环境都是激活状态。因为本人不介意虚拟运行时的未激活提示,所以暂未做实测,有兴趣的机友可以自测。
获取需要添加到PD的第二块物理盘的磁盘信息和分区信息。
▲打开macOS的磁盘工具,确定需要挂入PD虚拟机硬盘在macOS系统下的位置,disk4s2,disk4表示系统盘序,s2表示硬盘分区序号
▲打开macOS终端,输入sudo -i切到root用户,输入gpt -r show /dev/disk4,获得硬盘信息,可以看到该盘已有2个分区。【将此步骤注释为“硬盘信息”下文待用】
▲打开macOS终端,输入diskutil info disk4s1和diskutil info disk4s2,获取分区信息,若上一步“硬盘信息”获取到更多分区,则继续diskutil info disk4s3、diskutil info disk4s4等等,以此类推。【将此步骤注释为“分区信息”下文待用】
▲通过该网页生成一个新的uuid,【将此步骤注释为“UUID”下文待用】。
编译虚拟磁盘配置文件
▲打开Paralls Desktop虚拟机,对生成的Windows虚拟机右键,在Finder中显示。
▲对pvm格式文件,右键,显示包内容。
▲正常应该可见通过Boot Camp自动导入生成与硬盘名同名****(disk1).hdd的虚拟磁盘文件,按住Option键,拖拽鼠标,生成一个副本文件并更名,比如我现在要添加的第三块,为了遵循PD的规则,也按照磁盘名称命名为“ZA480NM10001 Media (disk3).hdd”,当然你也可以随意命名。
▲对“ZA480NM10001 Media (disk3).hdd”右键,显示包内容,里面还可见一个****.hdd文件,按照虚拟磁盘文件名修改一致“ZA480NM10001 Media (disk3).hdd”
▲接下来编译修改虚拟磁盘包内容中的“DiskDescriptor.xml”文件,使用macOS自带的文本编辑器或者其它代码编辑工具都可以。找到项,修改其中的和参数。UID参数使用前面提前准备“待用信息”中的UUID,注意保留前后的中括号{ };Name则使用所需新增的虚拟磁盘完整文件名。
▲继续修改“DiskDescriptor.xml”文件,找到项,找到Type类型为Bootcamp_UID的子项。
▲因为本次添加的硬盘仅分区2有实际用途,分区1实为GPT格式化时预留16M分区无实际用处,所以仅保留一个子项,将【硬盘信息】中的分区2的start起始扇区32768作为子项中的参数,将下一分区start起始值937699328,填入子项中的参数中,如果你的硬盘有多个分区,以此类推,按分区顺序添加多个子项。
▲将之前提前备用的【分区信息】disk4s2中的Disk / Partition UUID参数填入子项中的参数中,注意值对应上一步相应分区的、起止值,如果有多个分区,以此类推。OK,至此“DiskDescriptor.xml”文件即修改完毕,保存即可。
重建磁盘信息转储文件
▲访达底部路径右键,复制虚拟磁盘文件包内容所在路径
▲打开终端,如果当前非root,输入sudo -i切到root用户,再输入cd+空格+粘贴上一步复制的虚拟磁盘文件路径,如果如图报错-sh: syntax error near unexpected token`(',可以将路径前后加上英文的单引号,或者如图删除路径中磁盘名称后部分内容以星号*代替,回车看到root用户前的路径名称为虚拟磁盘文件名即可。
▲编译虚拟磁盘的最后一步,在上一步路径下重建虚拟磁盘包内容中的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
▲上一步命令行中/dev/disk4,根据自己的实际硬盘所在位置变动,最后一个命令行中skip=937703055,根据自己【硬盘信息】中“Sec GPT table”值替换,本文测试硬盘值为937703055。
▲右键PD虚拟机,点击配置
▲硬件选项中,右下角,+加号,添加硬盘,选择现有的镜像文件,选择刚编译好的虚拟磁盘文件,需要选择虚拟磁盘包内容中的.hdd文件,做完此步,PD已经可以识别并启动虚拟机使用了。
▲细心的用户可能注意到,上一步添加硬盘时,在pvm虚拟机包内容中会生成一个以绝对路径为名称的新磁盘文件,这个才是PD实际调用的文件。如果你跟我一样有强迫症,那就再改改……
1.Windows.pvm包内容中复制刚手动编译的ZA480NM10001 Media (disk3).hdd文件名称,并删除。
2.重命名以绝对路径为名称的新磁盘文件名为ZA480NM10001 Media (disk3).hdd
3.右键,显示包内容,进入虚拟磁盘包内容中的修改*****.hdd文件名为ZA480NM10001 Media (disk3).hdd
4.修改“DiskDescriptor.xml”文件,找到项中的参数为ZA480NM10001 Media (disk3).hdd
5.配置虚拟机,选中刚添加的磁盘,再次选择更名后的ZA480NM10001 Media (disk3).hdd文件。
▲如整个操作过程无问题,启动Windows后,即在我的电脑里看到添加的物理硬盘分区,我这里演示的是添加第三块物理盘,分区盘符为E。
注意事项:虽然实测读写无任何问题,但不能在虚拟机内对硬盘重做分区、压缩卷等操作。也就是说,你要挂入物理盘,务必提前做好分区等磁盘设定,比较适用于已有物理Windows盘,挂入Boot Camp的Windows系统中使用。
在最初尝试添加第二块盘后,启动虚拟机有报一个磁盘相关的错误,但是这次添加第三块物理用没有提示,时间跨度有点长了,不清楚是PD版本关系还是其他原因,如果你也遇到,那么就尝试给Windows10.pvm包内容中的config.pvs虚拟机配置文件添加新硬盘的参数,如操作完前面步骤无报错,那么下方内容可以无需理会!
▲在config.pvs配置文件中找到已有项,在其后再复制添加一份项,图示是第二块物理盘和新添加的第三块物理盘参数,因为这次第三块盘是自动添加的,所以截出来供参考对比参数变量位置:
1.上半部分,三处箭头标记处,应该是需要变量参数,在新增项中不能重复相同,可以以递增方式变动,参考截图上半部分和下半部分对比;
2.新增部分,参数根据实际新的虚拟磁盘文件名称(注意带hdd后缀),</ UserFriendlyName>参数根据实际新的虚拟磁盘文件名称(注意无需hdd后缀);
3.参数,这个是根据扇区总数,比如此次文中添加的第三块盘,根据终端获取的【硬盘信息】扇区总数为937703088,扇区和容量的换算公式,总扇区数→除以2→除以1024,得到457728,config.pvs配置用的单位是MB。
扇区与容量为什么这么换算?
提供个小知识:扇区大小固定为512字节,除以2得到KB单位,除以1024得到MB单位,再除以1024得到GB单位,因PD使用MB单位,所以只需要除以2→除以一次1024得到MB单位即可。如果你要偷懒的话,其实这个参数PD会自动修正,可以不做换算。
4.参数,根据编译的新虚拟磁盘文件分区数来定,如果有多个分区,就按红框部分,添加多个参数对应实际macOS下的硬盘分区路径,注意Partition id也是变量,具体可以对比上下两部分。
完全按照上述教程操作后,如无意外,就可以将Windows的多块物理硬盘挂入macOS的PD虚拟机内运行,需要物理运行Windows时,重启主机选择Windows启动即可,这样Windows可以在物理和虚拟之间无缝切换使用,发挥黑苹果的最大价值!关于Ubuntu等Linux系统,实测无法通过此方式挂入启动,但是可以通过虚拟磁盘安装Linux系统,再按照本文方法挂入物理盘当做数据盘来使用。
好了,本期技术帖分享就是这么多了,感谢阅读至此,欢迎点赞、收藏、转发素质三连,让更多的机友了解这新鲜的搞机方式!更欢迎土豪不吝打赏~~~