macOS双系统启动异常应先诊断磁盘与启动链:用diskutil list和apfs list检查分区状态,sudo bless --info确认启动项;再依情况用bless指定启动卷、重置NVRAM、修复EFI中BOOTCAMP文件夹或清理残留分区扩容。

macOS 双系统(如 macOS + Windows Boot Camp,或多个 macOS 版本)的分区管理与启动转换出错,多数源于磁盘结构异常、固件配置冲突或启动项损坏。关键不是重装,而是先定位分区状态和启动链是否完整。
确认当前磁盘与启动卷状态
打开“终端”,依次执行以下命令:
- diskutil list:查看所有物理/逻辑磁盘及分区布局,注意是否有“APFS Container”、“Microsoft Basic Data”或异常的“free space”区域
- diskutil apfs list:若使用 APFS,检查容器内卷是否正常挂载、是否有损坏卷标(如显示 "Corrupted" 或 "Invalid")
- sudo bless --info --verbose:显示当前固件指定的默认启动卷路径、Boot UUID 和启动文件位置,可判断是否指向了已删除或不可用的卷
修复被破坏的启动项(适用于无法进入系统或启动菜单不显示目标卷)
若能进入 macOS(即使非目标卷),优先用 bless 手动指定启动项:
- 先用 diskutil list 找到目标 macOS 卷的标识符(如 disk1s5)和名称(如 MacStudio)
- 运行:
sudo bless --device /dev/disk1s5 --setBoot --legacy(旧款 BIOS 启动)
或
sudo bless --mount /Volumes/MacStudio --setBoot --shortform(推荐,适用于 APFS + T2/M1+ 芯片) - 重启后按住 Option 键,确认目标卷出现;仍不显示,说明 NVRAM 启动变量可能被锁,需重置:
关机 → 按电源键 → 立即长按 Cmd+Option+P+R 20 秒(Intel)或 电源键 → 松开 → 再按住 Cmd+Option+P+R → 等待第二次启动声/Apple 标志出现两次(Apple Silicon)
修复 Boot Camp 分区启动失败或 Windows 启动项丢失
Windows 分区无法启动,常因 EFI 引导文件损坏或 macOS 更新覆盖了 EFI 分区中的 BOOTCAMP 文件夹:
- 在 macOS 中打开“磁盘工具”,选择“显示”→“显示所有设备”,找到 EFI 分区(通常为 disk0s1),右键“装载”
- 前往 /Volumes/EFI/EFI,检查是否存在 BOOTCAMP 文件夹;若缺失,需从 Windows 安装 U 盘或恢复环境重建:
插入 WinPE 或 Windows 安装介质 → 重启按住 Option → 选 Windows 安装项 → 进入后按 Shift+F10 打开命令提示符 → 执行:
diskpart → list volume → exit(确认 EFI 分区盘符,通常是 S:)→
cd /d S:\EFI → mkdir BOOTCAMP → copy D:\EFI\Microsoft\Boot\bootmgfw.efi BOOTCAMP\(D: 为安装盘) - 完成后,在 macOS 终端中运行:sudo bless --mount /Volumes/BOOTCAMP --setBoot --nextonly,下次重启将强制进 Windows
清理残留分区与安全合并空间(谨慎操作)
双系统卸载不彻底(如删了 Windows 但没清 EFI 或恢复分区)会导致磁盘工具无法扩容、启动转换助理报错“无法修改此磁盘”:
- 用 diskutil list 找出疑似残留分区(如 “Microsoft Reserved”、“Recovery HD” 但无对应系统)
- 对非系统分区,可用:diskutil eraseVolume "Free Space" "" diskXsY 清空内容(不删除分区结构)
- 再尝试:diskutil apfs resizeContainer diskXsZ 0(Z 是主 APFS 容器序号),让其自动吞并相邻空闲空间
- 若提示“目标容器被锁定”,需先关闭 SIP:
重启进恢复模式 → 终端中运行 csrutil disable → 重启操作 → 完成后务必 csrutil enable






