• Android 9 自动恢复出厂设置问题(auto-recovery)


    Android 9 自动恢复出厂设置问题(auto-recovery)

    本章节针对引入了auto-recovery功能的版本,并且设备关机是以直接断电方式.

    涉及知识点:开关机;e2fsck;recovery;救援模式

    概要:

    Android设备进行开关机测试(特定时间段内对设备不停上下电操作),一定概率出现自动恢复出厂设置.

    该问题常见于不带正常开关机流程机器(设备关机是以直接断电方式),即异常掉电会导致数据损坏引发自动恢复出厂设置(auto-recovery)

    Auto-recovery

    auto-recovery的引入就是为了防止设备因为数据损坏进而自动恢复,避免变砖.

    可读写的分区在异常断电过程中,可大能存在分区数据被损坏的可能性,(如上面提到的断电)

    如果文件系统数据损坏可能会触发到 autorecovery 流程修复.

    e2fsck

    用于检查Linux中文件系统中的分区是否能正常工作

    检查和修复ext4;ext3和ext2文件系统的硬盘分区

    -a: 检查 partition,如发现问题会自动修复。
    -b: 设定 superblock 位置。
    -B size: 指定 size 作为区块大小。
    -c: 检查 partition 是否有坏轨。
    -C file: 将检查结果储存到 file。
    -d: 输出 e2fsck debug 结果。
    -f: e2fsck 预设只会对错误的档案系统检查,加上 -f 是强制检查。
    -F: 在检查前将硬盘的 buffer cache 清空,避免发生错误。
    -l list: 记录了坏轨区块加入 list 中。
    -d : 打印 e2fsck 的 debug 结果。
    -f : 强制检查。
    -n: 以 (read-only) 开启档案系统
    -p: 关闭互动模式,如有问题自动修复,等同 -a。
    -v: 显示详细报告。
    -y: 启用使用者互动模式。

    定位问题

    从串口log中定位(Android系统启动的所有日志)
    过滤e2fsck的日志 可以看到类似如下信息:

    6.165162]<3>[I](0)e2fsck: data: Inodes that were part of a corrupted orphan linked list found.
    6.165201]<3>[I](0)e2fsck:
    6.165207]<3>[I](0)e2fsck: data: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    • 1
    • 2
  • 相关阅读:
    mysql高阶语句
    花菁染料CY5标记WSe2硒化钨/WTe2碲化钨纳米粒|CY5-WSe2/WTe2(齐岳荧光标记)
    FW Read protection in code level
    【PyTorch】深度学习实践之反向传播 Back Propagation
    导轨式比例多路换向阀放大器
    双系统时间问题、虚拟机扩展空间问题
    Kafka消息队列
    leetcode:1533. 找到最大整数的索引【奇特的二分】
    CentOS-7.9的硬盘空间扩容(EXSI)
    openMMLab的mmcv和mmdet、mmdet3d、mmseg版本对应关系
  • 原文地址:https://blog.csdn.net/qq_33544860/article/details/127786684