测试平台
Platform: RK3399/RK3328
OS: Android10.0
现象
在3328 android10.0上外接u盘/移动硬盘(usb/pcie)开机提示需要格式化,格式化后可以正常使用,但是重启后会再次提示需要格式化
分析
查看log,发现是系统获取LOST.DIR信息时出错,提示No space in …
log忘记保存
开机格式化后,重启前用adb进入外接存储删除LOST.DIR目录,重启后发现没有提示格式化也可以正常使用.
解决
diff --git a/external/fsck_msdos/dir.c b/external/fsck_msdos/dir.cindex 38c7014..31a4663 100644--- a/external/fsck_msdos/dir.c+++ b/external/fsck_msdos/dir.c@@ -964,6 +964,7 @@ reconnect(int dosfs, struct bootblock *boot, struct fatEntry *fat, cl_t head)if (lfcl < CLUST_FIRST || lfcl >= boot->NumClusters) {/* Extend LOSTDIR?XXX */pwarn("No space in %s\n", LOSTDIR);+ lfcl = (lostDir->head < boot->NumClusters) ? lostDir->head : 0;return FSERROR;}lfoff = lfcl * boot->ClusterSize