本帖最后由 YorkWaugh 于 2021-5-22 21:19 编辑
大佬们可以直接忽略此贴。。。
众所周知,官方版的VMware不支持macOS的安装,需要工具解锁,即论坛上经常被提到的unlocker:https://github.com/BDisp/unlocker/
简介(摘录自官方):
- 适用于VMware Workstation的macOS Unlocker V3.0
- 1.简介
- Unlocker 3专为VMware Workstation 11-15和Player 7-15设计。
- 如果您使用的是较早的产品,请继续使用Unlocker 1。
- 第3版已针对以下方面进行了测试:
- * Windows和Linux上的工作站11/12/14/15
- * Windows和Linux上的Workstation Player 7/12/14/15
- 补丁代码根据产品进行以下修改
- 正在修补:
- *修复vmware-vmx及其衍生版本以允许macOS引导
- *修复了vmwarebase .dll或.so,以允许在创建VM时选择Apple
- *下载适用于macOS的最新VMware Tools的副本
- 27/09/18 3.0.0-首次发布
- 18/02/10 3.0.1-修复了gettools.py与Python 3配合使用并正确下载darwinPre15.iso的问题
- 18/10/10 3.0.2-修复了带有Windows可执行文件的防病毒软件引起的误报
- -允许Python 2和3从Bash脚本运行Python代码
- 19/10/24 3.0.3-修复了适用于VMware Workstation 15.5的解锁程序和gettools
复制代码
有没有注意到,最近几次修复都和gettools有关。。。那是因为unlocker需要VMware Fusion的darwin.iso和darwinPre15.iso
在原先(11.1.0)版本前,官方https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/11.1.0/13668589/下有packages文件夹,里面提供了这两个文件,但是,之后版本都不在单独提供,而是整合在主包里。。。例如最新的https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/12.1.1/17801503/下只有core文件夹,而gettools.py下这这么写的:
- # Setup url and file paths
- url = 'http://softwareupdate.vmware.com/cds/vmw-desktop/fusion/'
- # Get the list of Fusion releases
- # And get the last item in the ul/li tags
-
- response = urlopen(url)
- html = response.read()
- parser.clean()
- parser.feed(str(html))
- url = url + parser.HTMLDATA[-1] + '/'
- parser.clean()
- # Open the latest release page
- # And build file URL
- response = urlopen(url)
- html = response.read()
- parser.feed(str(html))
-
- lastVersion = parser.HTMLDATA[-1]
-
- urlpost15 = url + lastVersion + '/packages/com.vmware.fusion.tools.darwin.zip.tar'
- urlpre15 = url + lastVersion + parser.HTMLDATA[-1] + '/packages/com.vmware.fusion.tools.darwinPre15.zip.tar'
- parser.clean()
- # Download the darwin.iso tgz file
- print('Retrieving Darwin tools from: ' + urlpost15)
- try:
- # Try to get tools from packages folder
- if sys.version_info > (3, 0):
- # Python 3 code in this block
- urlretrieve(urlpost15, convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip.tar'), reporthook)
- else:
- # Python 2 code in this block
- (f,headers)=MyURLopener().retrieve(urlpost15, convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip.tar'), reporthook)
- except:
- # No tools found, get them from the core tar
- print('Tools aren\'t here... Be patient while I download and' +
- ' give a look into the core.vmware.fusion.tar file')
- urlcoretar = url + lastVersion + '/core/com.vmware.fusion.zip.tar'
- print('Retrieving Darwin tools from: ' + urlcoretar)
- # Get the main core file
- try:
- if sys.version_info > (3, 0):
- # Python 3 code in this block
- urlretrieve(urlcoretar, convertpath(dest + '/tools/com.vmware.fusion.zip.tar'), reporthook)
- else:
- # Python 2 code in this block
- (f,headers)=MyURLopener().retrieve(urlcoretar, convertpath(dest + '/tools/com.vmware.fusion.zip.tar'), reporthook)
- except:
- print('Couldn\'t find tools')
- return
-
- print()
-
- print('Extracting com.vmware.fusion.zip.tar...')
- tar = tarfile.open(convertpath(dest + '/tools/com.vmware.fusion.zip.tar'), 'r')
- tar.extract('com.vmware.fusion.zip', path=convertpath(dest + '/tools/'))
- tar.close()
-
- print('Extracting files from com.vmware.fusion.zip...')
- cdszip = zipfile.ZipFile(convertpath(dest + '/tools/com.vmware.fusion.zip'), 'r')
- cdszip.extract('payload/VMware Fusion.app/Contents/Library/isoimages/darwin.iso', path=convertpath(dest + '/tools/'))
- cdszip.extract('payload/VMware Fusion.app/Contents/Library/isoimages/darwinPre15.iso', path=convertpath(dest + '/tools/'))
- cdszip.close()
-
- # Move the iso and sig files to tools folder
- shutil.move(convertpath(dest + '/tools/payload/VMware Fusion.app/Contents/Library/isoimages/darwin.iso'), convertpath(dest + '/tools/darwin.iso'))
- shutil.move(convertpath(dest + '/tools/payload/VMware Fusion.app/Contents/Library/isoimages/darwinPre15.iso'), convertpath(dest + '/tools/darwinPre15.iso'))
-
- # Cleanup working files and folders
- shutil.rmtree(convertpath(dest + '/tools/payload'), True)
- os.remove(convertpath(dest + '/tools/com.vmware.fusion.zip.tar'))
- os.remove(convertpath(dest + '/tools/com.vmware.fusion.zip'))
-
- print('Tools from core retrieved successfully')
- return
复制代码
也就是说,如果没有packages文件夹,就从core文件夹下下载com.vmware.fusion.zip.tar,解压后提取。。。
然而,com.vmware.fusion.zip.tar有多大呢?不多,也就半个G左右吧。。。
你要知道,unlocker可不会调用IDM,网速不好的话这可以下一晚上。。。
解决办法的话。。。大家都看出来了吧。。。把俩iso复制到tools文件夹下(没有就新建个),运行时提示You already have downloaded the tools. Download again?[y/n]敲n就可以跳过了。。。
考虑到有人网络问题,这里就把12.1.1版本的文件和3.0.3版本放网盘里https://wwi.lanzoux.com/b016auhwh 密码:d2i8 ,有需要的可以直接下载。 |