小米手机误删 /data/adb 导致无限重启?免双清完美救砖教程(set_policy_failed)
一句话结论:误删
/data/adb后报set_policy_failed:/data/adb、卡 Recovery 无限重启,不需要格式化 Data(双清),按顺序修复即可保留全部数据正常开机。
项目 说明 实测机型 marble(Redmi Note 12 Turbo / POCO F5)适用条件 可进入 TWRP / OrangeFox 等第三方 Recovery; /data为 F2FS 或 Ext4数据影响 无需双清,照片、聊天记录、文件全部保留 参考思路 酷安 @時_Aurora
1. 故障现象
在 TWRP / Recovery 下误删 /data/adb 目录后重启,设备卡在 Recovery 无限重启,屏幕出现红字报错:
set_policy_failed:/data/adb多数人的第一反应是「完了,要格式化 Data(双清)了」——其实完全不需要。
2. 为什么删了个文件夹就会无限重启
/data/adb不是普通文件夹,它是存放 Root 权限管理(Magisk、KernelSU)核心文件的目录。Android 启动时会经过 SELinux(安全增强型 Linux)的严格加密策略校验。/data分区通常采用 F2FS 文件系统。F2FS 为提升读写速度,会在底层维护一个 Checkpoint(检查点) 缓存。- 直接在 Recovery 里执行
rm -rf删除文件夹时,底层 Checkpoint 可能因非正常关机或缓存未同步而卡死(报错shutdown(107))。系统因此认为该目录依然存在,但实际文件已丢失,触发set_policy_failed并拒绝启动。
3. 修复前准备
| # | 准备项 | 说明 | |
|---|---|---|---|
| 1 | 电量 | 确保手机电量在 30% 以上 | |
| 2 | Recovery | 能进入 TWRP 或橙狐(OrangeFox)等第三方 Recovery | |
| 3 | 分区节点 | 知道自己的 /data 分区设备节点;终端执行 `mount \ | grep "/data" 查看,**本文以 dm-7` 为例,请自行替换** |
4. 完美修复步骤(保姆级)
⚠️ 请严格按照顺序执行,特别是第 4.2 步和第 4.3 步,否则极易导致数据彻底损坏!
操作路径:进入 TWRP → 高级(Advanced) → 终端(Terminal),依次输入以下命令。
4.1 解除分区挂载
系统可能仍占用分区,必须先卸载 /data 和 /sdcard:
umount /sdcard 2>/dev/null
umount /data 2>/dev/null验证是否卸载干净(关键步骤),检查 dm-7(替换为你自己的设备节点):
mount | grep dm-7⚠️ 重点:敲完回车若屏幕有输出,说明没卸载干净,继续执行umount /data,直到这条命令没有任何输出(直接跳回#提示符),才能进行下一步!
4.2 强制修复文件系统(核心)
清理 F2FS 底层损坏的缓存和卡死的 Checkpoint:
fsck.f2fs -f -a /dev/block/dm-7| 参数 | 含义 |
|---|---|
-f | 强制(force) |
-a | 自动修复(auto) |
- 执行后屏幕会滚动大量代码,等待进度跑到 100.00%,直到出现
Done.并重新回到#提示符才算完成。 - 若提示找不到命令,改用绝对路径:
/sbin/fsck.f2fs -f -a /dev/block/dm-7。 - 若仍找不到,说明 TWRP 太精简,可用 TWRP 的「清除 → 高级清除 → 选中 Data → 修复文件系统」代替本步。
4.3 重新挂载并彻底删除
底层理顺后,再次挂载并删除该目录:
mount /data
rm -rf /data/adb4.4 同步写入并重启
防止操作被缓存吞掉,强制写入硬件后重启:
sync
reboot5. 结果
执行 reboot 后手机黑屏重启,成功越过报错界面,正常进入系统桌面,所有照片、聊天记录和文件均完好无损。
6. 避坑总结
- 千万不要在挂载状态下跑
fsck,这会直接毁掉文件系统! - 输入命令时注意拼写(
mkdir别打成madir,fsck别打成fack),Linux 终端对拼写极其严格。 - 修复后重启若依然报错,改用第 7 节的兜底方案重建目录。
7. 兜底方案:手动重建空目录
若按上述步骤修复后重启仍报 set_policy_failed,可手动创建一个空目录「骗」过系统:
mkdir -p /data/adb
chown root:root /data/adb
chmod 700 /data/adb
restorecon -R -v /data/adb
sync
reboot8. 命令速查(终端对照用)
# 步骤 1:卸载 + 验证(有输出就继续 umount /data)
umount /sdcard 2>/dev/null
umount /data 2>/dev/null
mount | grep dm-7
# 步骤 2:卸载干净后修复文件系统(等待 Done.)
fsck.f2fs -f -a /dev/block/dm-7
# 步骤 3:重新挂载并删除
mount /data
rm -rf /data/adb
# 步骤 4:同步并重启
sync
reboot注:dm-7为示例节点,执行前务必用mount | grep "/data"确认自己的实际节点并全部替换。
9. 附加信息
- 参考思路:酷安 @時_Aurora 的帖子
- 适用机型:理论上适用于所有安卓 F2FS / Ext4 文件系统及具有 Recovery 权限的设备
- 关键词:
set_policy_failed:/data/adb、TWRP 救砖、小米无限重启、F2FS fsck、Magisk 误删
评论 (0)