Android下普遍采用的是ext4文件系统,ext3是一个具有日志记录功能的日志文件系统,可以进行简单的容错和恢复,但是在一个高负荷读写的ext3文件系统下,如果突然发生掉电,就很有可能发生文件系统内部结构不一致,导致文件系统破坏。
Android在启动时,会自动去分析和检查系统分区,如果发现文件系统有简单的错误,会自动修复,如果文件系统破坏比较严重,系统无法完成修复时,系统就会自动进入单用户模式下或者出现一个交互界面,提示用户介入手动修复,现象类似下面所示:
从这个错误可以看出,系统根分区文件系统出现了问题,系统在启动时无法自动修复,然后进入到了一个交互界面,提示用户进行系统修复。
这个问题发生的几率很高,引起这个问题的主要原因就是系统突然掉电,引起文件系统结构不一致。一般情况下解决此问题的办法是采用fsck命令,进行强制修复。
根据上面的错误提示,需要修改init.rc文件在启动时不挂载已损坏文件,并升级ramdisk后系统自动重启,当输入root密码后进入系统修复模式,在修复模式下,可以执行fsck命令,具体操作过程如下:
adb shell
fsck.ext4 -y /dev/block/data
fsck.ext4 -y /dev/block/data4write
fsck修复受损文件系统的过程时间不长,fsck详细用法在本书第四章有详细的讲述,这里不在多讲。需要注意的是,在执行fsck的时候,一定要先卸载要修复的分区,然后再执行修复操作,切记!
初步分析,原因是由于系统部分文件丢失,系统根分区/dev/block/data&& data4write文件系统出现了问题,系统在启动时无法自动修复,造成磁盘检测过不去,系统无法启动。
造成这种现象的原因可能是车机系统在运行某正在操作文件系统app时突然完全断电,引起文件系统结构不一致。
修复方法:
1.可软件修复,用fsck修复受损文件系统。
如出现以下无法修复情况:
则使用方法2.
2.直接USB升级或者制卡升级(推荐)。