macos 中 fsck 是按文件系统类型区分的底层工具:apfs 用 fsck_apfs,hfs+ 用 fsck_hfs;仅限恢复模式或单用户模式下对未挂载或异常卷使用,需先确认卷格式与设备标识符,推荐先 -n 只读扫描再 -y 修复,并依据退出码判断结果。

macOS 中的 fsck 并非单一命令,而是按文件系统类型区分的一组底层工具——APFS 用 fsck_apfs,HFS+ 用 fsck_hfs。它不适用于正常运行状态,只在系统无法挂载或启动异常时启用,核心价值在于绕过 GUI 层直接校验元数据一致性。
区分文件系统类型再选命令
APFS(macOS 10.13+ 默认)和 HFS+(旧系统)使用完全不同的检查逻辑,混用会报错或无效:
- 确认当前系统卷格式:进入恢复模式 → 终端 →
diskutil list,查看目标宗卷(如 Macintosh HD)对应的 TYPE 列,显示 apfs 或 hfs - APFS 必须用
fsck_apfs,不可用fsck或fsck_hfs;HFS+ 卷调用fsck_hfs,否则提示 “not a hfs filesystem” - 注意设备标识符写法:如
/dev/disk1s1中的s1是宗卷序号,不是分区编号,需与diskutil list输出严格一致
单用户模式下修复已挂载根卷
适用于启动卡在命令行、显示 localhost:/ i have no name !# 等权限丢失场景,需先解除只读挂载:
- 开机按 Command + S 进入单用户模式
- 执行
/sbin/mount -uw /重新以读写方式挂载根文件系统 - 对 APFS 根卷运行:
/sbin/fsck_apfs -fy /dev/disk1s1(替换为实际标识符) - 输出含 repaired 或 OK 后输入
reboot;若提示 “volume is busy”,说明挂载失败,需检查diskutil apfs list是否识别容器
恢复模式中脱机强制修复
当单用户模式无法挂载、或 fsck_apfs 报 “device busy” 时,恢复模式提供独立环境,可直接操作未挂载设备:
- 开机按 Command + R 进入恢复环境
- 实用工具 → 终端 →
diskutil list找到系统宗卷设备路径(如/dev/disk2s5) - 先尝试卸载占用:
diskutil unmountDisk /dev/disk2(整盘卸载,非单宗卷) - 再执行:
fsck_apfs -fy /dev/disk2s5(恢复模式 PATH 已包含工具,无需/sbin/前缀) - 若返回 “error: could not open device”,说明仍有进程锁住设备,此时应优先用磁盘工具“急救”,再回退至此步
用诊断参数定位具体错误类型
盲目加 -y 可能掩盖深层问题,建议先用只读模式探查异常点:
- 只读扫描(不修改):
fsck_apfs -n -l /dev/disk1s1,-l输出详细日志,可看到 “corrupted checkpoint”、“invalid extent ref” 等关键错误描述 - 跳过交互式确认:
-s参数避免中途停顿,适合脚本化诊断(如批量检查多个宗卷) - 对比两次输出:首次
-n查问题,确认后改用-y修复,修复后再跑一次-n验证是否清零 - 注意退出码:成功返回 0,修复后返回 1,未修复错误返回 4 —— 可用于自动化判断是否需人工介入











