前段时间,苹果刚刚发布了 macOS High Sierra ,基本上所有允许 macOS Sierra的设备都可以更新到新的系统。但是,就我的经验,每一次 macOS 的升级,因为 Mac App Store (MAS) 网络或者其他的原因,总会出现各种问题:较慢的下载速度、频繁的断开连接、无法断点下载等等。另外中国区的 macOS High Sierra 14G+的镜像似乎出现了较大的问题,无法正常更新(不知道现在有没有解决)。那么我们应该如果快速的升级呢?
不通过 MAS 直接下载macOS High Sierra
为了更加快速的升级最新的 macOS ,我们可以采用直接从 Apple 服务器而不是通过 MAS 下载 macOS 镜像的方法。这是一个通用的方法,不过本文主要针对的是 macOS High Sierra ,如果以后 macOS 更新,你也可以采用这种方法。
原理如下:
一般情况下,MAS 在下载了 macOS 时,会首先下载 pkg 文件到计算机中,然后通过 MAS 的处理将其转换成可执行文件「.app」。作为用户并不能直接通过 pkg 文件来安装 macOS。
我们采用的方法就是:
首先,通过浏览器或者下载管理器将所有需要的原始 pkg 文件下载到本地。
然后,通过修改系统配置,使得 MAS 认为本地计算机为 Apple 的服务器,从本地直接提取 pkg 文件。
macOS High Sierra 直接下载
步骤一:从下边给到的三个地址中分别下载 pkg 文件。
- macOS High Sierra InstallESDDmg.pkg文件下载URL:http : //swcdn.apple.com/content/downloads/04/61/091-34298/almpfkbhyxnsgbxxqhoqo7sb40w3uip0wk/InstallESDDmg.pkg
- macOS High Sierra RecoveryHDMetaDmg.pkg文件下载URL:http : //swcdn.apple.com/content/downloads/04/61/091-34298/almpfkbhyxnsgbxxqhoqo7sb40w3uip0wk/RecoveryHDMetaDmg.pkg
- macOS High Sierra InstallAssistantAuto.pkg文件下载URL:http : //swcdn.apple.com/content/downloads/04/61/091-34298/almpfkbhyxnsgbxxqhoqo7sb40w3uip0wk/InstallAssistantAuto.pkg
步骤二:检查文件的 MD5值(可省略,这些 MD5值是我下载后自己校验的,并不是官方提供的,仅仅可以做一个参考。)
- macOS High Sierra InstallESDDmg.pkg : 7df5594a3a9830377147a48fc09edf9b
- macOS High Sierra RecoveryHDMetaDmg.pkg : 3b9d5ee01af925485c111375bbc576c8
- macOS High Sierra InstallAssistantAuto.pkg : 1fdf3ef7735a081648c589b933517c65
步骤三:配置 hosts 文件,将 Apple 服务器的域名指向本地
这个步骤中,我们需要将「swcdn.apple.com」指向「127.0.0.1」。
- 从应用程序列表其中 macOS 的终端;
- 键入:「sudo vim /etc/hosts」并输入系统管理员密码;
- 进入 vim 的编辑页面,按下「i」键进入编辑模式;
- 在文件的末尾加上:「127.0.0.1 swcdn.apple.com」;
- 按下 ESC 键,键入「:wq」保存并退出 hosts 文件。
- 使用「sudo killall -HUP mDNSResponder」刷新下 DNS 缓存,防止因缓存问题造成的 DNS 未生效。
(修改 hosts 文件的方法有很多,这里只是其中一种。)
步骤四:模拟 MAS 下载路径。
我们需要在本地模拟出一个Apple 存放这些文件的路径,我们需要首先 在桌面建立一个服务器的根目录文件夹,我们给他起名字叫「 high_sierra_local」,并根据下载地址中的路径,在这个文件夹中制作出相同的软件包路径。完成制作后,我们需要在本地启动一个服务器服务,这里我们将用到 Python 的SimpleHTTPServer 服务快速搭建一个 web 服务器,将localhost 服务器的根目录指向桌面的「 high_sierra_local」文件夹。
- 打开终端,键入「cd Desktop」, 回车进入「桌面」文件夹;
- 键入「mkdir high_sierra_local」并回车,这时在桌面上你会发现已经建立了相同名称的文件夹了;
- 键入「cd high_sierra_local」,进入新建立的文件夹下;
- 在「high_sierra_local」文件夹下建立 pkg 文件的相对路径:「sudo mkdir -p ./content/downloads/04/61/091-34298/almpfkbhyxnsgbxxqhoqo7sb40w3uip0wk/」(需要输入系统管理员密码);
- 将下载的三个 pkg 文件根据其下载地址放置到「high_sierra_local」文件夹中各自对应的位置。此处会提示你没有权限,点击「验证」,输入系统管理员密码即可;
- 在「终端」使用「high_sierra_local」作为当前工作目录,并执行:「sudo python -m SimpleHTTPServer 80」,提供系统管理员密码,并在消息提示中单击「允许」。
这时候,当前目录「high_sierra_local」已经作为 localhost 服务器的根目录在运行了,我们需要一直打开「终端」窗口,以确保本地服务器的运行,直到下载完成。
如果你想验证你的设置是否成功,你可以复制上边说到的任何 pkg 文件的 url,并在浏览器(一定要在浏览器,下载管理器「比如迅雷」可能会出现没有速度的情况。)中下载。你会发现速度超级快,这是因为你是在通过本地服务器下载,相当于是做了一个「复制粘贴」操作。
步骤四:通过 MAS 下载 macOS High Sierra。
MAS 的地址为:https://itunes.apple.com/app/macos-high-sierra/id1246284741?mt=12
下载过程中,我们不需要做什么操作。一旦下载完成,MAS 将自动把三个 pkg 文件处理成一个可执行的 app 文件,并启动安装程序。
注意:这里需要注意的是,在继续安装前,最好将 hosts 文件中添加的那条「127.0.0.1 swcdn.apple.com」,MAS 在安装 macOS High Sierra 时可能需要从「swcdn.apple.com」 请求其它资源。
这样升级的 macOS High Sierra 是正版么?
在这个解决方法中,我们是从 Apple 服务器上下载所需的资源,并通过 MAS 来完成系统安装。我们唯一改变的是 MAS 下载的服务器地址。因此,并不会影响操作系统的「正版」问题。
制作 macOS High Sierra 的DMG文件
你现在拥有了 app 文件,可以将你的 Mac 升级到最新版本,但是如果你需要执行「全新安装」,则需要为 macOS High Sierra 来创建可引导安装程序。
这里我建议大家采用 Apple 官方提供的方法来实现:https://support.apple.com/en-us/HT201372(即采用:createinstallmedia 命令直接从 app 文件来创建可引导安装程序。)