欢迎各位兄弟 发布技术文章
这里的技术是共享的
https:/www.y2b.com/watch?v=49NxbzhgsTE&list=PLtBjUc54OziP12ZaLxn9mf-M_krVLLxlA
https://www.y2b.com/watch?v=-dQBftQufS4
可以看看 /node-admin/22549
容器disk1 就是分区吧
bbb-admin@bbb-admindeMac ~ % diskutil list
/dev/disk0 (internal, physical): #物理硬盘
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *107.4 GB disk0 #GUID_分区_方案
1: EFI EFI 209.7 MB disk0s1 #disk0s1 是一个硬盘分区
2: Apple_APFS Container disk1 107.2 GB disk0s2 #disk0s2 是一个硬盘分区,,,,disk0s2一块未格式化的“硬盘空间”(仓库空地)。disk0s2 是物理分区(存储介质)
# 用户只需关注 /dev/disk1:所有日常操作(如扩容、删文件)均通过APFS卷完成,无需直接触碰 disk0s2。
/dev/disk1 (synthesized): #/dev/disk1是一个逻辑实体,是虚拟的合成磁盘, /dev/disk1在空地上建的“智能仓库管理系统”。disk1 是逻辑容器(管理系统)。
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +107.2 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD - 数据 6.1 GB disk1s1
2: APFS Volume Preboot 269.5 MB disk1s2
3: APFS Volume Recovery 1.1 GB disk1s3
4: APFS Volume VM 1.1 MB disk1s4
5: APFS Volume Macintosh HD 23.4 GB disk1s5
6: APFS Snapshot com.apple.os.update-... 23.4 GB disk1s5s1
bbb-admin@bbbb-admindeMac ~ %
请详解一下
以下是您提供的 diskutil list
命令输出的详细解析,我将按照磁盘和分区的逻辑结构逐一解释:
/dev/disk0
(内部物理磁盘)类型:内置物理磁盘(通常是固态硬盘)。
容量:107.4 GB。
分区方案:GUID_partition_scheme
(标准的GPT分区表,适用于现代Mac)。
分区:
类型:Apple_APFS
。
名称:Container disk1
。
大小:107.2 GB。
作用:存放APFS文件系统的容器(对应逻辑磁盘 disk1
)。
类型:EFI
(启动分区)。
大小:209.7 MB。
作用:存储引导加载程序(Bootloader),用于启动操作系统。
EFI分区 (disk0s1
)
APFS容器 (disk0s2
)
/dev/disk1
(APFS容器)类型:APFS容器(虚拟磁盘,由系统动态合成)。
物理存储:disk0s2
(即 disk0
的第二分区)。
容量:107.2 GB(与 disk0s2
完全一致,因为是它的逻辑映射)。
包含的卷(Volumes):
名称:com.apple.os.update-...
(系统更新快照)。
大小:23.4 GB(与 Macintosh HD
相同,因为是它的只读副本)。
作用:系统升级时创建的临时备份,用于安全回滚。
大小:23.4 GB。
作用:系统主卷(存放macOS操作系统文件)。
大小:1.1 MB。
作用:存储虚拟机或系统交换文件(Swap)。
大小:1.1 GB。
作用:系统恢复分区(可用于重装macOS或修复磁盘)。
大小:269.5 MB。
作用:存储系统启动所需的缓存和内核文件。
类型:APFS Volume(用户数据卷)。
大小:6.1 GB。
作用:存储用户文件(如文档、下载等),与系统文件分离(macOS Catalina及之后版本的特性)。
Macintosh HD - 数据
(disk1s1
)
Preboot
(disk1s2
)
Recovery
(disk1s3
)
VM
(disk1s4
)
Macintosh HD
(disk1s5
)
Snapshot(快照) (disk1s5s1
)
для disk1
是一个 APFS容器(Container),它的实际存储空间来自物理分区 disk0s2
。
APFS的特性是所有卷(如系统、数据、Recovery)共享同一块物理空间(107.2 GB),动态分配,无需固定大小。
Macintosh HD
:系统文件(如应用程序、系统库)。
Macintosh HD - 数据
:用户文件(如桌面、文档)。
这是macOS Catalina(10.15)之后的默认设计,目的是增强安全性。
快照是APFS的特性,disk1s5s1
是 Macintosh HD
的只读副本,用于确保系统更新时的安全性。更新完成后通常会自动删除。
Preboot
和 Recovery
是系统关键分区,不可随意操作。
EFI
是硬件启动依赖的分区,误删会导致系统无法启动。
物理磁盘:107.4 GB(disk0
),实际使用约 107.2 GB(disk0s2
)。
系统占用:
系统卷(Macintosh HD
)23.4 GB + 数据卷6.1 GB + Recovery 1.1 GB ≈ 30.6 GB。
剩余空间(约76.6 GB)由APFS动态分配给其他卷或未使用。
无外部磁盘:输出中未显示U盘或移动硬盘(如之前的 disk3
)。
Macintosh HD
和快照大小相同?因为快照是系统升级时对主卷的“冻结”副本,两者内容完全一致(但快照是只读的)。
可以删除无用文件或清理旧系统快照(通常系统会自动处理):
bash# 查看APFS容器的详细空间占用 diskutil apfs list
Macintosh HD
和 Macintosh HD - 数据
吗?不建议!这是macOS的设计,强行合并可能破坏系统稳定性。
如果有其他操作需求(如扩容、备份),请进一步说明场景!
# diskutil apfs list # 查看APFS容器的详细空间占用
# diskutil apfs list disk1 # 查看磁盘 disk1 的APFS容器的详细空间分配
# diskutil unmountDisk /dev/disk0 #卸载某个整个磁盘
# diskutil unmountDisk force disk0 #强制卸载某个整个磁盘
# diskutil unmount /dev/disk1s1 #卸载某个整个分区
# diskutil unmount force /dev/disk1s1 #强制卸载某个整个分区
diskutil unmount /dev/disk4s1 与 diskutil unmount disk4s1 区别
在 macOS 中,以下两个命令看似相似,但存在关键区别:
bashdiskutil unmount /dev/disk4s1 # 正确写法 diskutil unmount disk4s1 # 常见错误写法(可能意外工作但存在风险)
是否包含 /dev/
前缀
仅提供设备名称,依赖 diskutil
的自动路径补全。
虽然 macOS 可能自动补全为 /dev/disk4s1
,但这种行为并非所有系统命令都支持。
存在歧义风险(例如同名文件干扰)。
明确指定设备在系统设备目录(/dev/
)中的完整路径。
这是标准规范写法,所有 Unix/Linux 系统通用。
确保操作系统精确识别目标设备。
/dev/disk4s1
disk4s1
可靠性差异
/dev/
前缀是绝对路径,避免因环境变量或当前目录导致的意外解析错误。
省略 /dev/
可能在某些边缘场景失败(如脚本中工作目录变化时)。
bash# 两种写法通常都能卸载成功 diskutil unmount /dev/disk4s1 # ✅ 规范写法 diskutil unmount disk4s1 # ⚠️ 非规范写法但可能工作 # 但当存在同名文件时,非规范写法会失败 touch ~/disk4s1 # 创建一个同名文件 diskutil unmount disk4s1 # ❌ 错误:会尝试卸载当前目录下的文件而非设备
Apple 的 diskutil
手册页(man page)明确使用 /dev/
前缀:
diskutil unmount /dev/diskNsM
始终使用 /dev/
前缀
保证命令在所有 Unix 环境和复杂场景下可靠执行。
脚本中必须用绝对路径
避免因工作目录变化导致的意外行为。
例外情况
某些更高层工具(如 Disk Utility.app)可能在 UI 中隐藏 /dev/
,但底层依然依赖完整路径。
Unix 设备文件惯例:/dev/
是设备文件的标准化挂载点(磁盘、USB、终端等均在此目录)。
类似命令对比:
bashdd if=/dev/disk4s1 of=backup.img # ✅ 必须用/dev/ fsck_apfs /dev/disk4s1 # ✅ 必须用/dev/
如需进一步验证,可运行 man diskutil
查看官方说明。
disk0s2 与 /dev/disk1 是同一个东西吗
disk0s2
和 /dev/disk1
的关系解析disk0s2
物理实体:它是物理磁盘 (disk0
) 上的一个分区(Partition),类型为 Apple_APFS
。
作用:直接存储二进制数据,是APFS容器的物理存储空间(Physical Store)。
操作限制:用户无法直接读写,需通过APFS容器管理。
/dev/disk1
逻辑实体:它是系统从 disk0s2
抽象出的APFS容器(Container),属于虚拟的“合成磁盘”。
作用:管理 disk0s2
中的APFS卷(如系统、数据、快照等),动态分配空间。
用户可见:所有APFS卷(如 Macintosh HD
、Recovery
)均显示在 disk1
下。
角色 | 类比 |
---|---|
disk0s2 | 一块未格式化的“硬盘空间”(仓库空地)。 |
/dev/disk1 | 在空地上建的“智能仓库管理系统”。 |
APFS卷 | 仓库中的不同储物区(如冷冻区、货架区)。 |
直接操作 disk0s2
≈ 拆毁仓库空地(会导致数据丢失)。
操作 disk1
≈ 通过管理系统调整储物区(安全且可控)。
数据流向:disk0s2
(物理存储) → 提供原始空间 → disk1
(容器) → 分配逻辑卷(如 disk1s1
)。
依赖关系:
删除 disk0s2
会摧毁 disk1
的所有内容。
但删除 disk1
的某个卷(如 Recovery
)不会影响 disk0s2
的物理结构。
假设你在 disk1
中删除文件:
文件从APFS卷(如 Macintosh HD
)逻辑删除。
物理空间仍留在 disk0s2
中,但被标记为“可重用”。
APFS容器 (disk1
) 会自动回收空间,供其他卷使用。
disk0s2
?不可以!它仅是底层存储块,需通过 disk1
的APFS卷访问(如 Macintosh HD
)。
disk0s2
的实际使用情况?bash# 查看APFS容器的详细空间分配 diskutil apfs list disk1
输出会显示所有卷占用的物理空间(来自 disk0s2
)。
APFS的核心优势:
灵活性:多个卷共享同一块物理空间(如系统卷和用户卷)。
安全性:物理层与逻辑层隔离,避免误操作。
快照功能:依赖容器的虚拟化能力(如 disk1s5s1
)。
不是同一个东西:disk0s2
是物理分区(存储介质),disk1
是逻辑容器(管理系统)。
用户只需关注 disk1
:所有日常操作(如扩容、删文件)均通过APFS卷完成,无需直接触碰 disk0s2
。
底层透明化:这是现代文件系统(如APFS/ZFS)的常见设计,为了提升可靠性和功能扩展性。
要回答「disk0s1
加上 disk0s2
是否等于 disk0
的大小」,我们需要从磁盘分区布局和 macOS 的分区设计来分析。
从你的 diskutil list
输出来看:
bash/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *107.4 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk1 107.2 GB disk0s2
disk0
总大小:107.4 GB
disk0s1
(EFI分区)大小:209.7 MB
disk0s2
(APFS容器分区)大小:107.2 GB
计算 disk0s1 + disk0s2
:
209.7 MB + 107.2 GB = 209.7 MB + 107200 MB = 107409.7 MB ≈ **107.41 GB**
而 disk0
大小是 107.4 GB
,基本匹配(可能相差几十 MB,因单位换算误差)。
macOS 显示的 107.4 GB
是 十进制(1 GB = 1000 MB)
但实际分区时可能使用 二进制(1 GiB = 1024 MiB),导致数值稍有不同。
某些情况下,磁盘可能包含:
GPT分区表的元数据(约 16 KB)
未分配的保护性空间(几 MB)
这些通常不计入 diskutil list
的分区大小。
硬盘厂商标称容量(如 107.4 GB)可能与实际可用容量稍有差异。
你可以用 diskutil info
检查每个分区的实际起始和结束位置:
bash# 查看 disk0 的详细分区表 diskutil info disk0 | grep -e "Total Size" -e "Partition Offset" diskutil info disk0s1 | grep -e "Size" -e "Offset" diskutil info disk0s2 | grep -e "Size" -e "Offset"
如果 disk0s1
的偏移量(Offset)加大小(Size)等于 disk0s2
的偏移量,且 disk0s2
的结束位置接近 disk0
的总大小,说明没有其他隐藏分区。
如果发现明显差距(如缺少几 GB),可能是:
未分配空间:某些分区未显示(如恢复分区在旧版 macOS 中是独立分区)。
APFS的物理存储变化:APFS容器可能动态调整了物理占用。
双系统或Boot Camp:若安装过 Windows,可能有其他隐藏分区。
✅ 在你的 diskutil list
输出中,disk0s1 + disk0s2
确实等于 disk0
的大致容量(误差在合理范围内)。
❗ 如果有额外分区(如 disk0s3
),则需要累加所有分区。
在磁盘分区的理论上,disk0
的总大小应该等于其所有分区(disk0s1 + disk0s2 + disk0s3 + ...
)的大小之和,但在实际情况中可能会存在一些细微差异。以下是详细解析:
如果分区表完美对齐且没有隐藏空间,磁盘 (disk0
) 的总容量应当等于所有分区 (disk0s1
, disk0s2
, ...) 的容量之和。例如:
disk0(总大小) = disk0s1(EFI分区) + disk0s2(APFS容器) + disk0s3(其他分区) + ...
以你的 diskutil list
为例:
disk0 (总大小) = 107.4 GB
disk0s1 (EFI) = 209.7 MB
disk0s2 (APFS容器) = 107.2 GB
总和 ≈ 107.4 GB(基本匹配)
然而,实际存储设备中可能出现以下情况,导致总和 不完全 等于 disk0
的总容量:
GPT 分区表的元数据(约 16~34 KB)不会计入任何分区,但占用磁盘空间。
分区对齐(例如 1MB 对齐)会导致少量未使用的“缝隙空间”。
某些 macOS 版本会预留:
Recovery HD 分区(在 APFS 之前,它是独立分区,约 650 MB)。
Boot Camp 或双系统的保留空间(如安装过 Windows)。
硬盘厂商的 1 GB = 1000 MB(十进制),而系统可能用 1 GiB = 1024 MiB(二进制),导致显示差异。
例如:107.4 GB(厂商)≈ 100.0 GiB(系统),数值可能有轻微出入。
若要检查分区是否完全覆盖磁盘,可以使用以下命令:
bash# 1. 查看 disk0 的总容量和分区布局 diskutil info disk0 | grep -e "Total Size" -e "Partition Map" # 2. 检查每个分区的起始(Offset)和大小(Size) diskutil info disk0s1 | grep -e "Size" -e "Offset" diskutil info disk0s2 | grep -e "Size" -e "Offset" # 3. 手动计算分区覆盖范围 # 最后一个分区的 Offset + Size 应接近 disk0 的总大小
根据你的 diskutil list
输出:
disk0
:107.4 GB
disk0s1
(EFI):209.7 MB
disk0s2
(APFS):107.2 GB
计算:
209.7 MB + 107.2 GB = 107.4097 GB ≈ 107.4 GB(匹配)
说明你的磁盘 没有隐藏分区,所有空间已被分配。
如果发现 分区总和 < disk0总大小
,可能是:
未分配空间:可用 diskutil list
检查是否有空闲区域。
APFS 容器的物理存储动态调整:APFS 可能尚未占用全部预留空间。
系统保留空间(如加密元数据、快照备份)。
✅ 在正常情况下,disk0
的大小应等于所有分区(disk0s1 + disk0s2 + ...
)之和。
⚠️ 微小差异(几 MB~几百 MB)是正常的,通常由分区对齐、单位换算或元数据占用导致。
🚨 如果差距显著(如几 GB),需检查是否有未分配空间或隐藏分区。
如有其他疑问(如扩容、修复分区),可提供更多背景信息进一步分析!
disk0s1
的性质解析disk0s1
不是独立物理磁盘,而是 物理磁盘 disk0
上的一个分区。
它是 disk0
的第一个分区(s1
= slice 1),属于物理磁盘的逻辑划分。
类型 | 特性 | 示例 |
---|---|---|
物理磁盘 | 真实的硬件存储设备(如 SSD、HDD),由系统直接识别为 /dev/diskX 。 | /dev/disk0 |
分区 | 物理磁盘上划分的逻辑区块,类型由分区表(如 GPT)管理。 | /dev/disk0s1 |
APFS容器 | 在分区(如 disk0s2 )上构建的虚拟存储池,内含多个逻辑卷。 | /dev/disk1 |
disk0s1
的细节物理依赖:disk0s1
是 disk0
的一部分,没有独立的物理存在,其存储空间完全来自 disk0
。
功能作用:
作为 EFI 系统分区(ESP),存放启动引导文件(如 boot.efi
),是 macOS/Windows 多系统启动的关键。
大小固定:
通常为 200 MB~300 MB,由系统自动创建,用户无需手动调整。
物理磁盘 (`disk0`)
│
├── 分区1 (`disk0s1`) # EFI 系统分区
├── 分区2 (`disk0s2`) # APFS 容器(对应 `disk1`)
└── (其他分区...)
用户操作权限:
可直接读写 disk0s1
中的文件(需挂载),但不建议修改(可能影响系统启动)。
物理磁盘 (disk0
) 的操作(如格式化)会摧毁所有分区。
disk0s1
视为独立磁盘?不可以!它仅是 disk0
的一块逻辑存储区域,不能脱离物理磁盘存在。
diskutil list
显示 disk0s1
和 disk0
分开?这是 macOS 的分区层级展示:
disk0
表示物理设备。
disk0s1
、disk0s2
表示其子分区。
disk0s1
的物理归属?bashdiskutil info disk0s1 | grep "Part of Whole"
输出会显示它属于 disk0
(例如:Part of Whole: disk0
)。
disk0s1
是分区,不是物理磁盘,它依托于物理磁盘 disk0
。
EFI 分区是系统关键组件,日常无需操作,维护时需谨慎。
理解分层结构对磁盘管理(如扩容、修复)至关重要。
若需进一步操作指导(如挂载 EFI 分区),请说明具体需求!
disk0s2
是否属于物理磁盘的解析disk0s2
不是独立物理磁盘,它是 物理磁盘 disk0
上的第二个分区(s2
= slice 2)。
它和 disk0s1
一样,属于 disk0
的逻辑划分部分,而非独立硬件设备。
物理磁盘 (`/dev/disk0`)
│
├── 分区1 (`disk0s1`) # EFI系统分区(引导用)
├── 分区2 (`disk0s2`) # APFS容器(对应逻辑容器 `disk1`)
└── (其他分区,如有)
disk0
:真实的物理存储设备(如SSD/HDD)。
disk0s2
:物理磁盘上划分的存储区块,类型为 Apple_APFS
(用于APFS文件系统)。
disk0s2
是 /dev/disk1
(APFS容器)的物理存储。
disk0s2
提供原始存储空间。
disk1
在 disk0s2
上构建APFS逻辑卷(如系统卷、数据卷)。
用户文件的实际读写:
通过 disk1
的APFS卷(如 Macintosh HD
)进行,而非直接操作 disk0s2
。
命名相似性:disk0
(物理磁盘)和 disk0s2
(分区)名称相近,但后者是前子的子级。
APFS的虚拟化设计:
APFS容器(如 disk1
)掩盖了底层分区(disk0s2
)的细节,让用户更关注逻辑卷。
特性 | 物理磁盘 (disk0 ) | 分区 (disk0s2 ) | APFS容器 (disk1 ) |
---|---|---|---|
类型 | 硬件设备(SSD/HDD) | 物理磁盘上的逻辑存储块 | 虚拟化的存储管理系统 |
用户操作对象 | 需谨慎(如格式化会毁所有数据) | 通常不直接操作 | 直接管理卷(如创建/删除文件) |
文件系统 | 无,需分区后格式化 | 已格式化为 Apple_APFS | 动态管理APFS卷 |
依赖关系 | 顶级实体 | 依赖 disk0 | 依赖 disk0s2 的物理存储 |
disk0s2
的物理归属?bash# 查看 disk0s2 的所属物理磁盘 diskutil info disk0s2 | grep "Part of Whole"
输出示例:
Part of Whole: disk0
表明 disk0s2
是 disk0
的一部分。
disk0s2
?可以,但会摧毁对应的APFS容器(disk1
)及其所有卷:
bash# 风险操作!谨慎执行! diskutil eraseVolume APFS "NewContainer" disk0s2
disk0s2
大小 ≠ disk1
内的卷总和?APFS容器内的卷 共享物理空间,动态分配。可用以下命令查看实际占用:
bashdiskutil apfs list
苹果通过 物理分区(disk0s2
)→ 逻辑容器(disk1
)→ 用户卷(如 Macintosh HD
) 的分层设计,实现了:
空间共享:多个卷灵活共用存储池。
快照功能:依赖容器的虚拟化管理。
安全性:用户操作逻辑卷,避免直接触碰底层分区。
disk0s2
不是物理磁盘,而是物理磁盘 disk0
的第二个分区。
它作为APFS容器的物理存储,与逻辑容器 disk1
构成“存储池+卷”的层级关系。
日常使用无需操作 disk0s2
,所有文件管理通过 disk1
的APFS卷完成。
如有进一步操作需求(如调整分区大小),请明确场景以获取针对性指导!
/dev/disk2 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +107.2 GB disk2 Physical Store disk0s2 0: 后面分成两行什么 意思
这涉及到 diskutil list
输出的格式化显示问题,我来详细解释这个两行显示的真正含义:
bash/dev/disk2 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +107.2 GB disk2 Physical Store disk0s2
两行显示的本质
第一行 0:
显示的是这个APFS容器的逻辑信息
第二行缩进显示的是该容器的物理存储位置
具体字段含义:
APFS Container Scheme -
:表示这是一个APFS容器方案
+107.2 GB
:这个容器的总可用空间
disk2
:容器标识符
Physical Store disk0s2
:明确指出这个虚拟容器的物理存储实际位于物理磁盘的disk0s2分区
技术含义:
这是APFS文件系统的特性:一个物理分区(disk0s2
)可以承载多个虚拟容器
这个显示方式说明disk2
是个"合成磁盘",没有独立的物理存在
真实的存储空间来自disk0s2
分区
这样两行显示是为了:
清楚地表现APFS的层次结构
区分逻辑容器和物理存储的对应关系
保持diskutil list
输出的结构化格式
当你看到这样的显示时,应该理解:
disk2
只是个逻辑容器
它实际占用的是disk0s2
分区的空间
所有对disk2
的操作最终都会落实到disk0s2
这个物理分区
如果想验证这种关联,可以运行:
bashdiskutil info disk2 | grep "Physical Store"
一定会显示它对应的物理分区是disk0s2
这种显示方式是macOS故意设计的,为了准确表示APFS文件系统的虚拟化特性。
diskutil list 详解
我们详细解释一下 macOS 下的 `diskutil list` 命令。
`diskutil` 是 macOS 中用于管理磁盘(包括物理和虚拟磁盘)的命令行工具。`diskutil list` 用于列出所有连接到系统的磁盘、分区和卷的信息。
### 基本用法
在终端中输入:
```bash
diskutil list
```
### 输出示例
输出通常如下(具体内容因系统而异):
```
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 500.0 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +500.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 350.0 GB disk1s1
2: APFS Volume Preboot 85.9 MB disk1s2
3: APFS Volume Recovery 529.0 MB disk1s3
4: APFS Volume VM 1.1 GB disk1s4
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *1.0 TB disk2
1: Windows_NTFS Backup 1.0 TB disk2s1
```
### 输出解释
1. **磁盘标识符**:每块磁盘以 `/dev/diskX` 开头,其中X是数字(如disk0, disk1等)。括号内是磁盘的属性,如:
- `internal, physical`:内置物理磁盘
- `external, physical`:外置物理磁盘(如USB硬盘)
- `synthesized`:合成磁盘(通常指APFS容器)
2. **分区表**:每个磁盘有一个分区表(Partition Scheme),常见的有:
- `GUID_partition_scheme`:GUID分区表(GPT),用于启动Intel Mac的磁盘。
- `Apple_Partition_Scheme`:旧式PowerPC Mac使用的分区表。
- `FDisk_partition_scheme`:通常指MBR分区表,常见于Windows兼容格式的磁盘。
3. **分区/卷**:在分区表下,列出每个分区或卷的信息:
- `#`:分区编号。
- `TYPE`:分区类型,如:
- `EFI`:EFI系统分区(通常隐藏,用于启动)。
- `Apple_APFS`:APFS容器分区(里面包含多个APFS卷)。
- `Apple_HFS`:传统的Mac OS扩展格式(HFS+)。
- `Microsoft Basic Data`:FAT32或NTFS分区(通常由Windows使用)。
- `Windows_NTFS`:NTFS分区。
- `Apple_Boot`:恢复分区。
- `NAME`:卷的名称(如“Macintosh HD”)。
- `SIZE`:分区大小。
- `IDENTIFIER`:设备标识符(如disk0s1,表示disk0的第一个分区)。
4. **APFS容器**:对于APFS格式的磁盘,会显示一个容器(Container),然后在容器下列出多个卷(Volume)。这些卷共享容器的空间,可以动态调整大小。例如:
- `/dev/disk1` 是一个APFS容器,它包含多个卷:系统卷(Macintosh HD)、Preboot、Recovery和VM(交换空间)。
### 常用选项
`diskutil list` 有一些有用的选项:
- `diskutil list -plist`:以XML格式(plist)输出,便于脚本解析。
- `diskutil list physical`:只列出物理磁盘(不包括合成磁盘和卷)。
- `diskutil list external`:只列出外置磁盘。
### 示例用法
1. **列出所有磁盘**:
```bash
diskutil list
```
2. **查看特定磁盘的详细信息**(例如disk0):
```bash
diskutil info disk0
```
3. **只列出物理磁盘**:
```bash
diskutil list physical
```
4. **以plist格式输出**(可以用`plutil`或脚本解析):
```bash
diskutil list -plist
```
### 注意事项
- 需要管理员权限的操作(如分区、格式化)通常需要输入密码。
- 操作磁盘时要格外小心,以免误删数据。
通过`diskutil list`,你可以清晰地了解系统中磁盘的布局,这对于磁盘管理、数据恢复和系统维护非常有用。
diskutil list
是 macOS 系统中的一个终端命令,用于详细列出所有连接到计算机的物理磁盘、分区和逻辑卷。它是磁盘管理和故障排查的重要工具。以下是详细解析:
diskutil list
输出示例:
/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 314.6 MB disk0s1 2: Apple_APFS Container disk1 499.8 GB disk0s2 /dev/disk1 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +499.8 GB disk1 Physical Store disk0s2 1: APFS Volume Macintosh HD 350.0 GB disk1s1 2: APFS Volume Preboot 85.9 MB disk1s2 3: APFS Volume Recovery 529.0 MB disk1s3 4: APFS Volume Data 100.0 GB disk1s4
磁盘标识符(如 /dev/disk0
):
internal/external
:磁盘位置(内置/外置)。
physical
:物理磁盘(如 SSD、HDD)。
synthesized
:虚拟容器(如 APFS 容器)。
分区表信息:
GUID_partition_scheme
:GPT 分区表(现代 Mac 默认)。
Apple_APFS
:APFS 格式容器。
EFI
:EFI 系统分区(启动必需)。
Microsoft Basic Data
:Windows NTFS/FAT 分区。
Apple_HFS
:传统 macOS 扩展格式(HFS+)。
#
:分区编号(从 0 开始)。
TYPE
:分区类型,常见值:
NAME
:卷名称(如系统盘名)。
SIZE
:分区/卷的容量。
IDENTIFIER
:系统分配的唯一标识符(如 disk0s1
)。
物理磁盘(如 disk0
):
对应实际硬件设备(如内置 SSD)。
包含分区表(如 GPT)。
APFS 容器(如 disk1
):
一种虚拟磁盘容器(仅 macOS High Sierra 及以上支持)。
包含多个逻辑卷(如系统、数据、恢复分区)。
物理存储在某个分区上(如 disk0s2
)。
逻辑卷(如 disk1s1
):
Macintosh HD
:系统主卷。
Preboot
:内核和驱动缓存。
Recovery
:恢复分区。
Data
:用户数据卷(macOS Catalina 后分离)。
APFS 容器内的独立卷(无需固定大小)。
例如:
查看磁盘布局:
diskutil list
快速识别磁盘、分区和文件系统类型。
挂载/卸载卷:
diskutil mount disk1s1 # 挂载卷 diskutil unmount disk1s1 # 卸载卷
修复磁盘权限(仅限 HFS+):
diskutil repairPermissions /Volumes/VolumeName
转换磁盘格式(如 FAT32 → APFS):
diskutil eraseDisk APFS "NewDisk" GPT disk2
查看特定磁盘:
diskutil list disk0 # 仅显示 disk0 的详情
显示 UUID 和挂载点:
diskutil info disk1s1 | grep -E "Mount Point|UUID"
修复 APFS 容器:
diskutil apfs repairContainer disk1
安全擦除磁盘:
diskutil secureErase 0 /dev/disk2 # 覆盖磁盘2
谨慎操作:直接操作磁盘可能造成数据丢失(尤其在 eraseDisk
或 partitionDisk
时)。
权限要求:部分命令需要 sudo
权限(如操作系统盘)。
APFS 特性:APFS 卷共享容器空间,无需手动调整大小。
通过 diskutil list
,你可以清晰掌握磁盘结构,为高级操作(如分区调整、系统恢复)打下基础。建议结合 man diskutil
查阅完整手册。
macos 查看 /dev/disk4 的挂载点
在 macOS 中,你可以使用以下命令来查看 /dev/disk4
的挂载点:
diskutil
bashdiskutil info /dev/disk4 | grep "Mount Point"
或者查看完整信息:
bashdiskutil info /dev/disk4
在输出中查找 Mount Point
字段,它会显示挂载路径(如 /Volumes/YourDiskName
)。
mount
命令bashmount | grep disk4
输出示例:
/dev/disk4s1 on /Volumes/YourDiskName (exfat, local, nodev, nosuid)
其中 /Volumes/YourDiskName
即为挂载点。
df
命令bashdf -h | grep disk4
输出会显示挂载点及存储空间使用情况。
设备名可能变化:如果是外置磁盘,拔插后可能变成 disk5
等,建议通过 diskutil list
确认当前设备名。
未挂载时无输出:如果 /dev/disk4
未挂载,上述命令可能无输出,可使用以下命令尝试挂载:
bashdiskutil mount /dev/disk4
如有其他问题,可补充具体场景(如是否为外置硬盘、是否加密等),我会进一步协助!