Archive2022

跑步视频集锦


虚拟机的mac地址

虚拟世界的MAC地址

先看一下真实世界的MAC地址是如何分配,如何保证没有重复的。

每块网卡都有一个MAC地址,MAC地址是一个6字节、也即48bit的数据。前3字节称为OUI ,是由IEEE组织注册给网络设备生产商的;每个厂商拥有一个或多个OUI,彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备,互不重复。

在VM的世界中,每一台拥有虚拟NIC(网卡)的设备当然也拥有MAC地址。这虚拟网卡的MAC地址,当然也是按照规定,前三字节为OUI,后三字节逐一分配给每个设备。

由于虚拟网卡的”制造商“是VMware,XenSource,微软 等虚拟平台软件的生产商,OUI当然就分配给了他们。

VMware VM所使用的OUI

按照VMware ESX 3的[Server Configuration Guide ]的说法,VMware的使用下面的三个OUI作为VM的MAC地址:

00:0C:29 – 用于自动生成的MAC地址
00:50:56 – 用于手动设置的MAC地址
00:05:69 – 曾经用于旧版本的VM(大约是在ESX 1.5的时代),在ESX 3中已经不再使用

但是在实际应用上,我发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址:

00:50:56:00:00:00 – 00:50:56:3F:FF:FF
这一段MAC地址可以用于手动设置的MAC地址

00:50:56:40:00:00 – 00:50:56:FF:FF:FF
这一段(我的推测,不一定准确),则是用于ESX 3上的自动生成的MAC地址(包括VM和Service Console)

MAC地址的生成

OUI有了,后三字节如何生成呢?要知道虚拟机是经常被创建和销毁的,这一点不像实体PC。网卡生产商可以计算每年生产多少块网卡,从而为每块网卡分配不同的MAC地址; VMware却不可能计算出每年有多少台VM、有多少块虚拟网卡被创建。

VMware ESX Server的算法是,使用散列算法,通过VM的UUID来生成MAC地址。VM的UUID是每一台VM特有的、128bit的ID,是由ESX Server硬件SMBIOS的UUID、加上VM的路径生成的。因此,一台虚拟机的虚拟网卡的MAC地址就与下面四个因素有关:

VMware的OUI
Host (ESX Server)的SMBIOS中的UUID
VM在服务器上的路径
网卡的实体名 (Entity Name),用来确保同一VM上的不同网卡有不同的MAC地址

MAC地址冲突的检测与解决

MAC地址一旦生成,就不会再有变化,除非上面所述的四项因素发生改变(最可能发生的就是第三项,VM在服务器上的路径改变)。

尽管如此,由于散列算法本身的特征,还是有万一发生MAC地址冲突的可能(可能性极小,和年末ジャンボ中头彩的几率差不多)。ESX Server会不断跟踪和检测运行中和挂起(Suspend)的VM,以保证没有MAC地址冲突。但是已经关闭电源的VM是不在检查对象之内的。

因此,万一一台VM启动时ESX检测到MAC地址冲突,它会分配给VM的虚拟网卡一个新的MAC地址。所以从这个意义上说,VM的MAC地址是可能发生变化的——只是这个概率实在太小。

手动指定MAC地址

手动指定MAC地址仅用于一些极其特殊的情况,通常是进行P2V的时候。例如,某物理服务器上的软件,其License已经与该服务器的MAC地址绑定,如果MAC地址改变则软件无法运行;再如,某些底层网络软件以MAC地址来鉴别机器时,为了不做更改能够继续使用,在P2V的时候也要手动指定 MAC地址。
打开一个VM的.vmx文件,可以看到如下设置:(如果有多块NIC的话,那么就会有ethernet0、ethernet1、ethernet2……)

ethernet0.addressType = “generated”
ethernet0.generatedAddress = “00:0c:29:9b:fb:18”

这说明该NIC是自动生成的MAC地址。只需如下更改即可变为手动分配的MAC地址:

ethernet0.addressType = “static”
ethernet0.address = “00:50:56:00:00:01”

其中的00:50:56:00:00:01就是手动指定的MAC地址。

文章出处:https://www.cnblogs.com/Solomon-xm/articles/10253575.html

Win7下用虚拟机安装苹果MacOS Monterey

Win7配置

CPU:Intel (R) Core (TM) i5-3470 CPU @ 3.20GHz 3.20 GHz
内存:16.0GB
系统:Windows 7 旗舰版 64位

所需文件

1. VMware-workstation-full-15.5.7-17171714.exe
下载地址:https://customerconnect.vmware.com/en/downloads/details?downloadGroup=WKST-1557-WIN&productId=643
说明:下载时需注册登录

2. unlocker422.zip
下载地址:https://github.com/DrDonk/unlocker/releases/download/V4.2.2/unlocker422.zip
说明:用于解锁VMware软件,否则在VMware Workstation上无法安装macOS。

3. Install-macOS-Catalina-10.15.7_19H15.iso
获取地址:https://sysin.cn/blog/macOS-Catalina/(ISO 格式原版可引导镜像)
百度网盘链接:https://pan.baidu.com/s/1TTORJOjSbxqQRQB3z4A5hQ 提取码:6bwt
说明:macOS Catalina 10.15.7可引导镜像文件

一、安装VMware Workstation

运行VMware-workstation-full-15.5.7-17171714.exe,安装VMware Workstation Pro:

二、新建MacOS虚拟机

创建新的虚拟机

由于VMware Workstation尚未解锁,现在还不能创建macOS虚拟机,我们先退出VMware Workstation,用unlocker对它进行解锁。

解压unlocker422.zip内全部内容到unlocker422文件夹下,然后运行windows文件夹下的unlock.exe文件,会出现命令行窗口:

按回车键,关闭命令行窗口。

再次打开VMware Workstation,发现可以创建macOS虚拟机了,版本我们选最高版本macOS 10.16:

磁盘空间我们设成80GB,否则后续系统升级时空间会不够用,点“下一步”:

点“完成”按钮:

如果需要我们随时可以通过“编辑虚拟机设置”对虚拟机的配置进行修改,如下图:

三、配置MacOS虚拟机

下面通过“编辑虚拟机设置”来设置虚拟机的内存:

设置虚拟机的光驱,把它和我们下载的Install-macOS-Catalina-10.15.7_19H15.iso连接起来:

下面我们开始进入虚拟机系统的安装环节。

四、为MacOS虚拟机安装MacOS Catalina系统

开启虚拟机

选择语言“简体中文”:

选择磁盘工具:

选择虚拟机硬盘,点“抹掉”:

设置磁盘名称、格式、方案,点“抹掉”:

点“完成”,然后退出磁盘工具:

选“安装macOS”,点“继续”:

点“继续”:

点“同意”:

选磁盘,点“安装”:

安装中…

选择地区:

选择语言输入法:

点“继续”:

Apple ID稍后设置:

点“同意”:

设置好电脑账户,点“继续”:

点“继续”:

选桌面外观,点“继续”:

安装完成:

五、升级MacOS Catalina系统

点左上角苹果菜单中“关于本机”:

点“软件更新”:

点“立即升级”:

点“继续”:

点“同意”:

点“继续”:

输入用户名和密码:

重新启动:

输入用户名和密码:

升级完成:

Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect

上一篇我介绍了【如何为iTunes Connect准备应用】。最后在这篇文章里我会简单介绍下如何来上传IPA到iTunes Connect。

登陆iTunes Connect,进入Manage Your Applications页面后,点击你创建的应用图标,进入应用的主页。

如图,在应用的主页中可以看到应用的基本信息。通过右上方的按钮可以来管理付费方面的设置。在左下方图标旁边是应用的当前状态。上传应用之前必须确定应用的状态为Waiting for upload。

点击图标下方的View Details进入应用的详细信息页面。在页面上方中部有一个Binary Details按钮,点击后可以查看文件上传的情况。在这个页面还可以更改应用的状态。我目前遇到的状态有以下几种:

  • Waiting for upload 等待上传,只有这种状态下才可以上传IPA
  • Waiting for Review 等待审核,上传成功后开始排队等待审核
  • In Review 正在接受审核
  • Developer Reject 开发者撤回,开发者可能出于某种原因要撤回文件进行修改,在下次上传之前必须进入Binary Details页面修改应用状态为Waiting for upload,才可以进行下次上传。上传后会重新排队。

另外,由于我的应用正在接受审核,所以我不知道还有哪些状态,但至少有拒绝和通过这两种。

更新mobileprovision和p12

现在我来介绍一下,在上传应用之前还必须要做的一个重要事情。我在“如何使用iOS开发者授权和申请证书”这篇文章介绍了mobileprovision和p12这两个文件的生成方法,也提到了它们在开发阶段和发布阶段需要使用不同的文件。接下来我就简单介绍以下在哪里为准备发布的应用生成mobileprovision和p12文件。

回到开发者授权系统,进入Certificates页面后,点击Distribution标签。如下图,点击图中的链接可以下载一个AppleWWDRCA(Apple World Wide Developer Relations Certification Authority)证书文件到本地,如果是MAC,双击它就可以进入Keychain Access,这个证书文件会给所有你从Apple开发者网站下载的证书签名,包括前篇文章提到的证书。但是我怎么也找不到如何在Windows下使用AppleWWDRCA给证书签名的资料,所以除了建议使用MAC来签名之外,我无法提供一个可行的方法。如果你的证书没有经过AppleWWDRCA签名,它是无法正常上传到iTunes Connect的。

回到开发者授权系统证书页面,点击Request Certificate,按照我们之前介绍过的流程上传一个CSR文件,然后下载一个cer文件进行签名(需要用MAC),再导出p12供Flash发布。

mobileprovision文件的生成方式同之前的方法没有什么区别,只不过需要从Distribution标签下重新申请一个Profile,然后选择一个Distribution的签名证书,就可以导出provision文件了。

使用新的p12和mobileprovision文件重新打包发布一个IPA,这个文件就是我们即将上传到iTunes Connect上的Binary文件。

使用Application Loader上传应用

在Mac下使用Application Loader是上传Binary到iTunes Connect的唯一途径。如果你安装了Xcode 4,可以使用最新的Application Loader 1.4来上传,否则可以下载Application Loader 1.3.dmg,还可以参考Application Loader使用指南。

Application Loader使用方法非常的简单,使用你的开发者帐号登陆,然后按照提示一步一步操作就可以了。Application Loader提供的不仅是文件上传的功能,它还同时校验和检查IPA的证书与授权,所以如果你的文件在发布过程中没有经过合法的签名,或者没有使用正确的授权与证书,那么上传是不会成功的。

上传成功后就可以等着Review了,我目前的经验也只能分享到这里。希望有对流程更清楚的专家可以对我介绍有误的地方及时提出修改意见,谢谢!