Skip to content

磁盘管理

本章将介绍 macOS 磁盘管理,包括磁盘工具、Time Machine 备份、存储空间管理等内容。

磁盘概述

文件系统

text
macOS 支持的文件系统:

APFS (Apple File System)
├── macOS 默认文件系统
├── 64 位架构
├── 原生加密支持
├── 快照功能
├── 空间共享
├── 克隆功能
└── 适用于 SSD

HFS+ (Mac OS Extended)
├── 旧版文件系统
├── 兼容性好
├── 适用于机械硬盘
└── 不支持 APFS 特性

FAT32/exFAT
├── 跨平台兼容
├── 适用于 U 盘
└── exFAT 支持大文件

查看磁盘信息

bash
# 查看所有磁盘
diskutil list

# 查看磁盘详细信息
diskutil info disk0

# 查看磁盘空间
df -h

# 查看特定卷的信息
diskutil info /

# 查看物理磁盘
diskutil list physical

# 查看APFS容器
diskutil apfs list

# 使用系统报告查看
system_profiler SPStorageDataType

磁盘工具

打开磁盘工具

bash
# 打开磁盘工具
open -a "Disk Utility"

# 或通过应用程序
# 应用程序 → 实用工具 → 磁盘工具

# 命令行方式
open /System/Applications/Utilities/Disk\ Utility.app

磁盘急救

bash
# 检查磁盘
diskutil verifyVolume /

# 修复磁盘
diskutil repairVolume /

# 检查并修复启动磁盘
# 需要在恢复模式下运行

# 查看磁盘状态
diskutil info / | grep "Volume Status"

# 验证APFS容器
diskutil apfs verifyVolume disk1

# 修复APFS容器
diskutil apfs repairVolume disk1

格式化磁盘

bash
# 查看可用格式
diskutil listFilesystems

# 格式化磁盘(警告:会删除所有数据)
# APFS 格式
diskutil eraseDisk APFS "MyDisk" GPT disk2

# Mac OS Extended (Journaled)
diskutil eraseDisk JHFS+ "MyDisk" GPT disk2

# exFAT(跨平台)
diskutil eraseDisk ExFAT "MyDisk" GPT disk2

# FAT32
diskutil eraseDisk FAT32 "MYDISK" MBR disk2

# 加密APFS
diskutil eraseDisk APFS "MyDisk" GPT disk2
diskutil apfs encryptVolume disk2s1 -user disk -passphrase "密码"

分区管理

bash
# 查看分区
diskutil list

# 添加分区
diskutil addPartition disk0s2 APFS "NewPartition" 100g

# 删除分区
diskutil deletePartition disk0s3

# 调整分区大小
diskutil resizeVolume disk0s2 200g

# 查看可调整的大小
diskutil resizeVolume disk0s2 limits

# 合并分区(需要删除相邻分区)
diskutil mergePartitions JHFS+ "Merged" disk0s2 disk0s3

Time Machine 备份

设置 Time Machine

text
设置 Time Machine:
系统设置 → 通用 → Time Machine

备份目标:
├── 外置硬盘
├── AirPort Time Capsule
├── 网络存储 (NAS)
└── 其他 Mac

首次备份:
1. 选择备份磁盘
2. 选择要排除的项目
3. 开始备份
4. 等待首次备份完成

Time Machine 命令行

bash
# 查看 Time Machine 状态
tmutil status

# 查看备份目标
tmutil destinationinfo

# 开始备份
tmutil startbackup

# 停止备份
tmutil stopbackup

# 查看备份历史
tmutil listbackups

# 恢复特定文件
tmutil restore /Volumes/Backup/Backups.backupdb/Mac/2024-01-01/Users/用户名/Documents/file.txt ~/Documents/

# 删除旧备份
tmutil delete /Volumes/Backup/Backups.backupdb/Mac/2024-01-01

# 设置排除项
tmutil addexclusion ~/Downloads
tmutil removeexclusion ~/Downloads

# 查看排除项
tmutil isexcluded ~/Downloads

本地快照

bash
# 查看本地快照
tmutil listlocalsnapshots /

# 创建本地快照
tmutil localsnapshot

# 删除本地快照
tmutil deletelocalsnapshots 2024-01-01-120000

# 禁用本地快照
sudo tmutil disablelocal

# 启用本地快照
sudo tmutil enablelocal

从 Time Machine 恢复

text
恢复方法:

方法一:迁移助理
1. 打开迁移助理(应用程序 → 实用工具)
2. 选择从 Time Machine 备份传输
3. 选择要恢复的数据
4. 等待传输完成

方法二:恢复模式
1. 进入恢复模式
2. 选择"从 Time Machine 备份恢复"
3. 选择备份源和备份点
4. 等待恢复完成

方法三:浏览备份
1. 点击菜单栏 Time Machine 图标
2. 选择"进入 Time Machine"
3. 浏览历史版本
4. 选择要恢复的文件

存储空间管理

查看存储使用

bash
# 查看磁盘空间
df -h

# 查看目录大小
du -sh ~

# 查看当前目录下各文件夹大小
du -sh *

# 查看最大的文件/文件夹
du -sh * | sort -rh | head -10

# 查找大文件
find ~ -size +100M -type f 2>/dev/null

# 使用 ncdu 工具(需安装)
brew install ncdu
ncdu ~

清理存储空间

bash
# 清理系统缓存
rm -rf ~/Library/Caches/*

# 清理下载文件夹
rm -rf ~/Downloads/*

# 清理日志文件
rm -rf ~/Library/Logs/*
sudo rm -rf /var/log/*

# 清理 Xcode 派生数据
rm -rf ~/Library/Developer/Xcode/DerivedData/

# 清理 Homebrew 缓存
brew cleanup --prune=all

# 清理 npm 缓存
npm cache clean --force

# 清理 pip 缓存
pip cache purge

# 清理 Docker
docker system prune -a

存储优化

text
macOS 存储优化功能:

系统设置 → 通用 → 存储空间

优化功能:
├── 存储在 iCloud 中
│   ├── 桌面和文稿
│   ├── 照片
│   └── 信息
├── 自动清倒废纸篓
├── 优化存储空间
│   ├── 自动删除已观看的视频
│   ├── 自动下载邮件附件
│   └── 仅保留最近使用的文件
└── 减少杂乱
    ├── 查找大文件
    ├── 查找重复文件
    └── 查找旧文件

外置磁盘管理

挂载和卸载

bash
# 查看已挂载的卷
ls /Volumes/

# 挂载磁盘
diskutil mount disk2s1

# 卸载磁盘
diskutil unmount /Volumes/MyDisk

# 强制卸载
diskutil unmount force /Volumes/MyDisk

# 弹出磁盘
diskutil eject disk2

# 挂载所有磁盘
diskutil mountDisk disk2

# 卸载所有分区
diskutil unmountDisk disk2

外置磁盘格式选择

text
外置磁盘格式选择指南:

仅 macOS 使用:
├── APFS(SSD)
└── Mac OS Extended(机械硬盘)

macOS 和 Windows:
├── exFAT(推荐)
└── FAT32(小于 32GB)

macOS、Windows 和 Linux:
└── exFAT

跨平台大文件:
└── exFAT

加密存储:
└── APFS(加密)

磁盘映像

创建磁盘映像

bash
# 创建空白磁盘映像
hdiutil create -size 10g -fs APFS -volname "MyDisk" ~/Desktop/mydisk.dmg

# 从文件夹创建磁盘映像
hdiutil create -volname "MyFolder" -srcfolder ~/Documents/MyFolder -ov -format UDZO ~/Desktop/myfolder.dmg

# 创建可读写磁盘映像
hdiutil create -size 10g -fs APFS -volname "MyDisk" -format UDRW ~/Desktop/mydisk.dmg

# 创建加密磁盘映像
hdiutil create -size 10g -fs APFS -volname "Secure" -encryption AES-256 ~/Desktop/secure.dmg

# 格式说明:
# UDZO - 压缩(只读)
# UDRW - 读写
# UDSP - 稀疏磁盘映像
# UDSB - 稀疏捆绑磁盘映像

管理磁盘映像

bash
# 挂载磁盘映像
hdiutil attach ~/Desktop/mydisk.dmg

# 挂载到指定位置
hdiutil attach ~/Desktop/mydisk.dmg -mountpoint /Volumes/MyDisk

# 卸载磁盘映像
hdiutil detach /Volumes/MyDisk

# 强制卸载
hdiutil detach /Volumes/MyDisk -force

# 转换磁盘映像格式
hdiutil convert mydisk.dmg -format UDZO -o mydisk_compressed.dmg

# 查看磁盘映像信息
hdiutil imageinfo mydisk.dmg

# 验证磁盘映像
hdiutil verify mydisk.dmg

稀疏磁盘映像

bash
# 创建稀疏磁盘映像(按需增长)
hdiutil create -size 100g -fs APFS -volname "Sparse" -type SPARSE ~/Desktop/sparse.sparseimage

# 创建稀疏捆绑磁盘映像(更适合备份)
hdiutil create -size 100g -fs APFS -volname "Bundle" -type SPARSEBUNDLE ~/Desktop/bundle.sparsebundle

# 压缩稀疏磁盘映像
hdiutil compact ~/Desktop/sparse.sparseimage

# 调整稀疏磁盘映像大小
hdiutil resize -size 200g ~/Desktop/sparse.sparseimage

磁盘加密

FileVault

bash
# 查看 FileVault 状态
fdesetup status

# 启用 FileVault
sudo fdesetup enable

# 禁用 FileVault
sudo fdesetup disable

# 查看加密进度
fdesetup status -verbose

# 添加恢复密钥
sudo fdesetup changerecovery -personal

# 查看授权用户
fdesetup list

# 添加用户
sudo fdesetup add -usertoadd 用户名

加密外置磁盘

bash
# 加密 APFS 卷
diskutil apfs encryptVolume disk2s1 -user disk -passphrase "密码"

# 解密 APFS 卷
diskutil apfs decryptVolume disk2s1 -passphrase "密码"

# 查看加密状态
diskutil apfs list | grep "Encryption"

# 创建加密磁盘映像
hdiutil create -size 10g -fs APFS -volname "Encrypted" -encryption AES-256 ~/Desktop/encrypted.dmg

磁盘性能

检测磁盘性能

bash
# 使用 diskutil 测试
diskutil info disk0 | grep "Solid State"

# 查看磁盘类型
system_profiler SPStorageDataType | grep "Medium Type"

# 使用命令行测试读写速度
# 写入测试
dd if=/dev/zero of=/tmp/testfile bs=1m count=1024
# 读取测试
dd if=/tmp/testfile of=/dev/null bs=1m
# 清理测试文件
rm /tmp/testfile

# 使用第三方工具
brew install --cask blackmagic-disk-speed-test
brew install fio

TRIM 支持

bash
# 查看 TRIM 状态
system_profiler SPStorageDataType | grep TRIM

# 启用 TRIM(第三方 SSD)
sudo trimforce enable

# 禁用 TRIM
sudo trimforce disable

# 注意:启用 TRIM 可能影响数据恢复

小结

本章介绍了 macOS 磁盘管理的主要内容:

  1. 磁盘概述:了解文件系统和磁盘信息
  2. 磁盘工具:使用图形和命令行工具
  3. Time Machine:设置和管理备份
  4. 存储管理:清理和优化存储空间
  5. 外置磁盘:挂载和格式化外部存储
  6. 磁盘映像:创建和管理 DMG 文件
  7. 磁盘加密:FileVault 和卷加密
  8. 磁盘性能:检测和优化磁盘性能

下一步

下一章我们将学习 用户账户,了解 macOS 用户管理方法。