引入
在 macOS 上安装应用程序,除了 .pkg 安装向导这种较为相似于 Windows 的方法,一些简单的程序只需要将 .app 格式的可执行程序文件拖进应用程序文件夹,便可称作完成安装。这样的 .app 文件一般被包在一个 .dmg 的文件当中。

它们都有自己设计的 icon,Finder 窗口的背景也经过了自定义,并以简单的方式告诉用户只需将 .app 文件拖入应用程序文件夹即可完成安装这一方法。

当然,也有一些程序喜欢更简单而不花哨,或者像 Sublime Text 这样的开发者工具相信用户都很清楚安装方法,又或者其实是开发者偷了个懒,当打开磁盘映像后看到的界面与打开普通的 Finder 窗口无异。

通过下面的文章,你可以了解如何制作一个:
- 可以设置磁盘映像图标
- 可以设置磁盘映像背景
- 可以加密、自定义大小
- 可以有多个分区或分卷
的个性化磁盘映像,它可以帮助你创建:
- 程序安装向导
- 个人文件更美观的存放系统
- 文件的加密打包
还等什么,一起开始吧!
了解磁盘映像
还是让我们复制一段维基百科的简介来了解它。

创建空白映像
在你的 macOS 应用程序文件夹中找到「实用工具」文件夹,并打开「磁盘工具」并按下快捷键 Command + O,或在顶部工具栏文件中选择新建映像 -> 空白映像。

「名称」是显示在 Finder 顶部的映像名,可以与文件名不同;
「大小」可以输入任何大小,请注意,创建后不能修改:
- 你可以输入 B、KB、MB、GB 等单位,macOS 系统默认将小写 b(bit) 和 B(byte) 都认为是 byte。
- 如果你想塞入 100 MB 的文件,请输入 120 MB 或以上,创建映像将会占用一定空间,大小越大占用也将越大,你也需预留更多。
- 当你输入完大小后,系统将预分配空间,即直接创建与你输入大小相等的 dmg 文件,因此你输入的大小必须小于磁盘可用空间,即便磁盘映像内文件并没有达到你输入的大小,dmg 文件也将占用你输入的大小。
- 也因此,输入大小越大创建越慢。
「格式」建议保留「Mac OS 扩展(日志式)」,如需修改可参照平时抹掉可移动磁盘(U 盘等)时设置的格式,或根据需要自行调整。

「加密」正如 macOS 所说,128 位 AES 加密更快,而 256 位 AES 更安全,随之当然也更慢。如不需要密码打开,选择「无」即可。

有密码的 dmg 文件在挂载时会要求输入密码。
「分区」可选 Apple 分区图、GUID 分区图(GPT)、主引导分区图(MBR)。
「映像格式」建议选择「读/写磁盘映像」
点击「创建」后,你就可以在指定目录看到刚刚创建的文件了,系统还会自动将其挂载。
自定义
图标

默认的白色宗卷图标当然是可以修改的,支持修改为任何 icns 格式的图标。先不说将其换为自定义图标,系统其实也有不少图标供你选择。
在 Finder 为前置窗口(例如你正在桌面)下按下组合快捷键「Shift + Command + G」,或点击顶部快捷栏「前往」->「前往文件夹」,并输入以下目录:
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/

在该 Bundle 的包文件中有许多系统 icon,例如 AirDrop 和各种文件夹 icon。

包括 Apple 历史发布的 Mac、iPhone、iPad、iPod 等产品图标。

对于驱动器而言,也有 AirDisk,共享文件夹,废纸篓,Time Machine 驱动器图标可选。

或者如果你是在为 App 创建安装映像,例如以 Surge 举例,你也可以以该 App 的 icon 来直接设置为映像图标。

在 .app 上辅助点按,显示其包内容,一般在 Contents -> Resources 下就可以找到很多 .icns 文件。

将 icns 文件拖到磁盘工具中白色映像图标出即可更换图标。

或者将 icns 拖到磁盘映像简介中的图标处也可以替换。

在显示简介页面选择 icon 并按下键盘「delete 键」就可以删除图标返回默认。

这样,一个更换过图标的磁盘映像就制作完毕了。
背景

那么又如何制作像这样的有背景的界面呢?

在你自己的作图软件中创建一定分辨率的图片,取决于 Mac 的分辨率。我的 Mac 较老,最大分辨率仅 1280*800,我创建了 800*600 的空白画布。

然后尽情设计吧!完毕后保存为 png 或 jpg 格式。

在磁盘映像中按下 Command + J,或在顶部工具栏「显示」->「查看显示选项」

在背景中选择图片,并将刚刚设计的文件拖入。注意,拖动时直接拖动,不要先点击再拖动,否则该「显示选项」会变为图片所在文件夹。你也可以先把图片复制到磁盘映像中避免此问题。

调整窗口大小后即完成此部操作,如果你发现图片太小或太大,需要重新编辑。
调整

将文件放入后,显然这两个 icon 太小。我们可以在刚刚的显示选项中做一些必要调整。

通过图标大小来调整,网格间距也可以调整,该设置仅对该文件夹生效,不影响你的其他文件夹。

使用「整理」使图标对齐,同时你也会发现先前制作的图片可能有一些问题,也可以做小幅调整。

一个完整的(粗略的)dmg 就做好了!这张背景图片显得有一些大,制作背景图片的源文件(如 psd 等)在整体 dmg 完毕前一定要保留好以便修改。

你可以像这张背景图片中一样做一个灰色圆角矩形来表明文件位置。
彩蛋
如果说用 dmg 来保存文件需要设置大小并预先占用空间,还无法修改有些麻烦,不妨在 macOS 下做以下伪装。虽然并不能像设置密码一样安全,不过用来临时对付父母藏一些文件也算一个不错的方法。

将文件整理到一个文件夹内,并添加扩展名 .pkg(需要先在 Finder 偏好设置 ->「高级」中打开「显示所有文件扩展名」)使其变为打包安装器格式。

如果直接打开的话,什么也不会发生,除了收到一个错误提示。

但辅助点按「显示包内容」后,所有文件都还在里面。
注意,pkg 文件在 Windows 下会直接变为文件夹(.app 也如此,.dmg 不会)。
结语

通过 dmg 这一磁盘映像格式,创建自定义、有趣、安全的打包文件映像,无不是一种保存文件的新选择。