MacOS 11引导卷布局

2020-11-01 19:59:49

当您格式化磁盘并在其上安装MacOS,使其成为启动卷或引导卷时,它具有标准结构,这在过去几年中发生了很大变化。本文总结了从High Sierra和Mojave到Big Sur(至少在Intel Mac上运行)的所有APFS引导磁盘和卷的布局。

High Sierra和Mojave中的标准APFS引导盘由一个EFI分区和主APFS容器组成。后者中至少有四个APFS卷:

默认情况下,启动卷位于名为Macintosh HD的内部磁盘上,该磁盘构成引导文件系统的根。

默认情况下,只读系统卷位于名为Macintosh HD的内部磁盘上,它构成引导文件系统的根。

默认情况下在名为Macintosh HD-DATA的内部磁盘上的可写数据卷,其通常隐藏在/SYSTEM/VOLULES处并且通过固件链接访问,

大苏尔比这要好得多。系统卷现在是称为密封系统卷(SSV)的密封卷的装载快照:

SSV是名为Macintosh HD的只读系统卷的已装载快照,它构成引导文件系统的根。

默认情况下在名为Macintosh HD-DATA的内部磁盘上的可写数据卷,其通常隐藏在/SYSTEM/VOLULES处并且通过固件链接访问,

请注意,Apple Silicon Mac不使用EFI,因此每个磁盘的顶层可能没有EFI分区。只有当苹果推出第一批生产系统时,这一点才会变得明朗。

只需一个启动卷,High Sierra和Mojave就可以直接从根目录/开始布局文件夹。

Catalina和Big Sur(至少在英特尔)在他们的系统和数据卷之间划分主文件夹。系统卷形成根/,从根/有多个固件链接,它们将两个卷连接成在Finder和终端中看起来像是单个卷的卷。生成的启动卷组的简化集成视图如下所示。

在该图中,系统卷(或SSV)上文件夹显示为蓝色,数据卷上的文件夹显示为绿色。红色部分从系统卷固定链接到数据卷上的该文件夹。这创造了一种单一的、完整的体积的错觉,实际上这两个体积融合在一起。

顶级应用程序文件夹实际上是指向数据卷上的用户应用程序的固件链接。Finder将这一点与MacOS中安装在/System/Applications下的只读应用程序相结合,使捆绑的应用程序和用户应用程序看起来像是在一个文件夹中,但实际上并非如此。试着丢弃Calculator等捆绑的应用程序,或者在Get Info对话框中检查其真实路径,这将是显而易见的。

可变系统文件不能安装在只读系统卷上,因此通常固定链接到数据卷上的文件夹。其中最重要的是/private和/usr/local中的几个文件夹,您可以在这些文件夹中安装您自己的命令工具等。

数据卷本身可通过其位于/system/volumes/data的挂载点进行访问,并且包含顶级用户文件夹的内容,以及主文件夹等。

Firmlink在某些方面类似于传统的符号链接,但只在文件夹之间创建,在两个方向上都可以工作,并且稍微增加了一些魔力,就可以有效地合并两个链接文件夹的内容。例如,只读系统卷上的/Users目录包含/Shared中的一些目录。由于/Users是一个固件链接,因此那里的目录将与可写(数据)卷上的/Users/Shared目录中的目录合并。有关卷组和Catalina中的文件系统魔术的更多详细信息,请参阅这篇抄袭克隆知识库文章。

从/usr/Share/Firmlink获取的系统固件链接的当前列表是:/Applications<;->;Applications/Library<;->;Library/System/Library/Caches<;->;System/Library/Cache/System/Library/Assets<;->;System/Library/Assets/System/PreinstalledAssets<;->;System/Library/AssetsV2<;->;System/Library/AssetsV2/System/Library/PreinstalledAssetsV2<;->;System/Library/AssetsV2/System/Library/PreinstalledAssetsV2<;->;System/Library/AssetsV2/System/Library/PreinstalledAssetsV2<;->;系统/库/资产V2/System/Library/PreinstalledAssetsV2<;系统/库/预安装资产V2/System/Library/CoreServices/CoreTypes.bundle/Contents/Library<;->;System/Library/CoreServices/CoreTypes.bundle/Contents/Library/系统/库/语音<;->;系统/库/语音/用户<;->;用户/卷/卷/核心-->;核心/光学<;->;私有/USR/LOCAL<;->;USR/LOCAL/USR/libexec/CUPS<;->;usr/libexec/cups/usr/share/snmp<;->;usr/share/snmp在每种情况下都显示为固定链接的系统卷路径和数据卷路径。

您还可以创建自己的合成固件链接,它们显示在根卷级别,并链接到数据卷上的文件夹或符号链接。这些文件存储在/etc/synthetic.conf文件中,该文件记录在man synthetic.conf中。里奇·特劳顿出版了一本关于如何做到这一点的极好的教程。以前在引导卷的根级别具有自己的自定义文件夹的用户可以使用此选项在Catalina和Big Sur中创建相同的效果。

标准的系统固件链接意味着,对于大多数用户和大多数目的,您不应该查看任何不同的地方,或者更改您在终端中使用的路径。但是,如果您访问没有方便的固件链接的任何东西,您可能会发现其有效路径现在已经改变-因此有了这些新的路线图,以帮助您了解现在可以找到哪些东西。

在终端中,当您想要运行安装在/usr/local/bin目录中的命令工具时,可以使用命令/usr/local/bin/mytool调用它。在Catalina中,系统卷上的/usr/local文件夹之间的固件链接将该路径连接到数据卷上的正确文件夹,因此您不必更改/system/volumes/data/usr/local/bin/mytool的路径。

在终端中始终使用正确路径的一个有价值的技巧是在Finder窗口中找到文件夹或文件,并将其拖放到命令行中。然后,MacOS会神奇地为您执行任何路径转换。您可能还会发现我的工具Precize很有用,因为它给出了路径、inode编号等等。

这些是Catalina的完整布局,目前也适用于在英特尔Mac上运行的Big Sur。