可在Mac命令行用diskutil创建APFS加密宗卷:一、先建加密容器再加卷;二、直接建单卷;三、全盘加密格式化;四、脚本批量部署,均需-passphrase指定密码并验证Encryption或FileVault状态。

如果您希望在Mac上通过命令行方式创建一个带密码保护的APFS加密宗卷,而非使用图形界面的“磁盘工具”,则需借助diskutil命令完成操作。该方法适用于需要自动化、脚本化或精确控制宗卷参数的场景。以下是实现此目标的多种可行路径:
一、使用diskutil apfs addVolume配合预先创建的加密容器
此方法先创建一个加密的APFS容器,再向其中添加宗卷。容器级加密确保所有后续添加的宗卷均受同一密码保护,且支持多宗卷共享密钥管理。
1、插入目标外置磁盘,执行diskutil list识别其标识符(如disk2)。
2、执行命令抹掉磁盘并创建加密APFS容器:diskutil apfs createContainer -passphrase "YourSecurePassword" /dev/disk2
3、运行diskutil list确认新容器出现(通常显示为disk2s1或类似名称)。
4、向该容器添加新宗卷:diskutil apfs addVolume disk2s1 APFS "SecureData" -passphrase "YourSecurePassword"
5、验证宗卷是否已挂载并加密:diskutil apfs list | grep -A 5 "SecureData",确认FileVault: Yes字段存在。
二、直接创建加密APFS宗卷(单卷模式)
此方法跳过显式容器创建步骤,由系统自动构建最小必要结构,适合仅需单一加密宗卷的用户,操作更简洁,但不支持后续在同一物理设备上扩展其他宗卷。
1、确认目标磁盘未被挂载:diskutil unmountDisk /dev/disk2
2、执行一体化加密宗卷创建命令:diskutil apfs createVolume /dev/disk2 APFS "EncryptedVol" -passphrase "StrongPass123!" -role S
3、其中-role S指定为系统宗卷角色(可选),若用于数据存储可省略;若需启用文件保险箱(FileVault)级策略,须额外添加-filevault标志。
4、检查加密状态:diskutil cs list将不再返回结果(因CS已弃用),改用diskutil apfs list查看Encryption字段是否为Yes。
三、使用diskutil eraseDisk创建全盘加密APFS格式
此方法适用于对整块磁盘进行初始化并加密,等效于“磁盘工具”中抹掉整个设备的操作,会清除磁盘上所有分区结构,生成单个加密APFS宗卷。
1、确定目标磁盘标识符,例如disk2,并确保无重要数据残留。
2、执行全盘加密格式化:diskutil eraseDisk APFS "MyEncryptedDrive" GPTFormat /dev/disk2 -passphrase "MyVaultKey2026"
3、注意:该命令强制使用GUID分区图(GPT),且默认启用APFS加密;若省略-passphrase参数,系统将交互提示输入密码。
4、完成后运行diskutil info /dev/disk2s1,确认File System Personality: APFS (Encrypted)与Locked: Yes两项均为真值。
四、通过脚本化方式实现批量加密宗卷创建
当需在多个设备或测试环境中重复部署加密APFS宗卷时,可编写Shell脚本封装上述逻辑,并加入错误检测与权限校验机制,提升可靠性与可维护性。
1、新建脚本文件create_encrypted_apfs.sh,内容以#!/bin/bash开头。
2、添加磁盘存在性校验:if ! diskutil list | grep -q "$1"; then echo "<strong><font color="green">错误:未找到指定磁盘 $1</font></strong>"; exit 1; fi
3、加入密码强度检查逻辑,拒绝使用常见弱口令(如"password"、"123456"等),否则输出<strong><font color="green">警告:密码过于简单,可能被暴力破解</font></strong>。
4、调用diskutil apfs createVolume命令并捕获退出码,非零值时终止并打印<strong><font color="green">命令执行失败,请检查权限或磁盘状态</font></strong>。
5、赋予脚本执行权限:chmod +x create_encrypted_apfs.sh,随后运行sudo ./create_encrypted_apfs.sh disk2 "MySecretKey"。











