欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos df -lh 详解 AG chatgpt 有大用

bbbb-admin@bbbb-admindeMac ~ % df -lh Filesystem       Size   Used  Avail Capacity iused      ifree %iused  Mounted on /dev/disk2s5s1  100Gi   22Gi   27Gi    45%  502068  281183720    0%   / /dev/disk2s4    100Gi  1.0Mi   27Gi     1%       1  281183720    0%   /System/Volumes/VM /dev/disk2s2    100Gi  257Mi   27Gi     1%     735  281183720    0%   /System/Volumes/Preboot /dev/disk2s6    100Gi  100Mi   27Gi     1%     403  281183720    0%   /System/Volumes/Update /dev/disk2s1    100Gi   50Gi   27Gi    65%  239529  281183720    0%   /System/Volumes/Data /dev/disk3s3     15Gi   13Gi  2.2Gi    86%    1170 4294966109    0%   /Volumes/Install macOS Monterey /dev/disk4       39Mi  8.2Mi   31Mi    21%     204 4294967075    0%   /Volumes/Mounty for NTFS /dev/disk2s5    100Gi   22Gi   27Gi    45%  502390  281183720    0%   /Volumes/Macintosh HD 1 /dev/disk5s1     58Gi  5.6Mi   58Gi     1%     124  611119200    0%   /Volumes/未命名2 bbbb-admin@bbbb-admindeMac ~ %  详解


以下是针对您提供的 df -lh 输出的逐项详解,并结合 macOS 文件系统特点的分析:


📊 输出字段总览

字段含义
Filesystem存储设备或虚拟文件系统的标识符
Size总容量
Used已用空间
Avail用户可用的剩余空间(考虑配额限制)
Capacity%已用空间百分比
iused已使用的 inode 数量(文件/目录计数)
ifree剩余可用 inode 数量
%iusedinode 使用率
Mounted on挂载点路径

🔍 各挂载点详细解析

1. 根分区(APFS 卷组)

plaintext
/dev/disk2s5s1  100Gi  22Gi  27Gi  45%  502068  281183720  0%  /
  • 设备标识disk2s5s1(APFS 卷组中的子卷)

  • 特殊说明

    • 这是系统的根分区,采用 APFS 空间共享机制

    • 实际总容量由容器(disk2)动态分配给各卷

    • Avail(27Gi)小于Size - Used(100Gi-22Gi=78Gi)是因为保留空间

2. 系统专用卷

plaintext
/dev/disk2s4    100Gi  1.0Mi  27Gi  1%  1  281183720  0%  /System/Volumes/VM /dev/disk2s2    100Gi  257Mi  27Gi  1%  735  281183720  0%  /System/Volumes/Preboot /dev/disk2s6    100Gi  100Mi  27Gi  1%  403  281183720  0%  /System/Volumes/Update /dev/disk2s1    100Gi  50Gi   27Gi  65%  239529  281183720  0%  /System/Volumes/Data
  • 角色分工

    • Preboot:存放启动需要的内核和驱动

    • VM:虚拟内存交换文件存放位置

    • Data:用户数据卷(与系统卷分离,macOS 10.15+特性)

  • 空间共享:所有卷共享APFS容器的100Gi物理空间

3. 安装镜像

plaintext
/dev/disk3s3     15Gi  13Gi  2.2Gi  86%  1170 4294966109  0%  /Volumes/Install macOS Monterey
  • 特点

    • 明显是 macOS 安装器的临时分区

    • ifree异常大(4294966109)是因为使用HFS+文件系统

4. NTFS挂载卷

plaintext
/dev/disk4       39Mi  8.2Mi  31Mi  21%  204  4294967075  0%  /Volumes/Mounty for NTFS
  • 第三方驱动

    • 使用Paragon/NTFS-3G等工具挂载的NTFS分区

    • 小容量(39Mi)可能为驱动程序的控制卷

5. 其他外置存储

plaintext
/dev/disk5s1     58Gi  5.6Mi  58Gi  1%  124  611119200  0%  /Volumes/未命名2
  • 特征

    • 未格式化的外置磁盘(可能是FAT32/exFAT)

    • 超低inode使用率(124)表明几乎没有文件


🛠 关键发现与建议

  1. APFS 空间分配问题

  • 所有系统卷显示相同的Avail(27Gi),表明容器空间即将耗尽

  • 建议清理 /System/Volumes/Data(已用50Gi)

  • 安装镜像残留

    bash
    diskutil unmount /Volumes/Install\ macOS\ Monterey diskutil eject /dev/disk3

    完成后可释放15Gi空间

  • 外置磁盘异常
    /dev/disk5s1显示中文"未命名2",建议重新格式化:

    bash
    diskutil eraseDisk FAT32 NEWNAME /dev/disk5
  • 高级检查命令

    bash
    # 查看APFS容器真实空间 diskutil apfs list # 分析大文件 sudo du -hd 1 /System/Volumes/Data

  • 📚 技术图示

    plaintext
    APFS Container (disk2) ├── disk2s1 Data Volume      (用户数据) ├── disk2s2 Preboot          (启动文件) ├── disk2s4 VM               (交换空间) ├── disk2s5 System Volume    (系统文件)   └── disk2s6 Update           (系统更新)

    建议优先处理系统卷空间不足的问题,避免影响系统稳定性。如需进一步分析某个特定分区,可使用 diskutil info /dev/diskXsY 获取详细参数。



    /dev/disk2s5s1  100Gi   22Gi   27Gi    45%  502068  281183720    0%   / 这里 100Gi 是什么意思,为什么不是 100G

    在 macOS 的命令行输出中,文件系统容量显示的单位(如 Gi 和 G)存在细微但重要的区别。这涉及到 二进制前缀(GiB)和十进制前缀(GB) 的差异:


    📊 容量单位详解

    单位全称换算关系操作系统显示
    GiGibibyte1 GiB = 1024 MiB = 1024×1024 KiB = 1024×1024×1024 BmacOS/Linux df -h
    GGigabyte1 GB = 1000 MB = 1000×1000 KB = 1000×1000×1000 B硬盘厂商标称

    🔍 你的输出解析

    plaintext
    /dev/disk2s5s1  100Gi   22Gi   27Gi    45%  ...

    这里的 100Gi 表示:

    • 实际二进制容量:1024³ × 100 ≈ 107,374,182,400 字节

    • 相当于十进制:约 93.13 GB(因为 100 GiB ÷ 1.073741824 ≈ 93.13 GB)


    🤔 为什么不是 100G

    1. 技术准确性

    • 操作系统内核和文件系统管理使用 二进制计算(GiB/MiB/KiB)

    • 这是 Unix/Linux 系统的传统标准

  • 对比场景

    • 硬盘厂商标注的 500GB 实际在系统中显示为约 465GiB

    • 当你在 macOS 中格式化磁盘时,diskutil 也会用 GiB 计算

  • 历史原因

    • 早期计算机内存和存储严格按 1024 进制划分

    • 后来硬盘厂商为营销改用 1000 进制,导致显示差异


    🛠 验证方法

    bash
    # 查看精确字节数(验证 GiB 计算) diskutil info /dev/disk2s5s1 | grep "Disk Size"

    输出示例:

    plaintext
    Disk Size:               107374182400 Bytes (exactly 100 GiB)

    💡 用户如何理解?

    场景显示单位示例解释
    系统命令Gi/Mi/Kidf -h二进制单位
    硬盘包装GB/MB/KB1TB SSD十进制单位
    磁盘工具GUIGB图形界面可能自动转换

    如果你想看到 GB 显示,可以手动换算:

    bash
    echo "100 GiB = $((100 * 1073741824 / 1000000000)) GB" # 输出:100 GiB = 107 GB

    建议始终关注 Gi 单位的数值,这才是 macOS 系统管理的真实容量基准。






    普通分类: