android 内部sdcard出错处理errors=remount-ro改为errors=continue
2017-02-23 10:28
429 查看
android存储nand flash或者emmc一般会划分一个分区用作内部sdcard,系统启动会挂载该分区,一般挂载到/mnt/sdcard/,可读可写。当该分区出错时,出错处理是errors=remount-ro,也就是重新挂载成只读,这时便无法进行往sdcard写入操作。
/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
sdcard变成只读,一般需要具体查找导致出错的原因,从根本上解决。下策是,直接将errors=remount-ro改为errors=continue,避免出现只读的情况,具体实现如下:
diff --git a/linux-3.4/fs/fat/inode.c b/linux-3.4/fs/fat/inode.c
index d403f76..21459d0 100644
--- a/linux-3.4/fs/fat/inode.c
+++ b/linux-3.4/fs/fat/inode.c
@@ -1007,7 +1007,7 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
opts->numtail = 1;
opts->usefree = opts->nocase = 0;
opts->tz_utc = 0;
- opts->errors = FAT_ERRORS_RO;
+ opts->errors = FAT_ERRORS_CONT;
*debug = 0;
if (!options)
@@ -1107,7 +1107,7 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
opts->errors = FAT_ERRORS_PANIC;
break;
case Opt_err_ro:
- opts->errors = FAT_ERRORS_RO;
+ opts->errors = FAT_ERRORS_CONT;
break;
/* msdos specific */
如此修改可能引发的后遗症,有待具体测试发现。。。
/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
sdcard变成只读,一般需要具体查找导致出错的原因,从根本上解决。下策是,直接将errors=remount-ro改为errors=continue,避免出现只读的情况,具体实现如下:
diff --git a/linux-3.4/fs/fat/inode.c b/linux-3.4/fs/fat/inode.c
index d403f76..21459d0 100644
--- a/linux-3.4/fs/fat/inode.c
+++ b/linux-3.4/fs/fat/inode.c
@@ -1007,7 +1007,7 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
opts->numtail = 1;
opts->usefree = opts->nocase = 0;
opts->tz_utc = 0;
- opts->errors = FAT_ERRORS_RO;
+ opts->errors = FAT_ERRORS_CONT;
*debug = 0;
if (!options)
@@ -1107,7 +1107,7 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
opts->errors = FAT_ERRORS_PANIC;
break;
case Opt_err_ro:
- opts->errors = FAT_ERRORS_RO;
+ opts->errors = FAT_ERRORS_CONT;
break;
/* msdos specific */
如此修改可能引发的后遗症,有待具体测试发现。。。
相关文章推荐
- android写文件出错——sdcard有关
- (优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式! .
- Android--数据持久化之内部存储、Sdcard存储
- Android之获取手机内部及sdcard存储空间的方法
- Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- Android获取内部和SDCard的存储空间
- Android内部存储与外置SDCard
- 读取SDcard Database并在Android ListView显示的处理流程
- Android 8.0 读取内部和外部存储以及外置SDcard的方法
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理
- Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview效率检视工具,分析程序运行速度!并讲解两种创建SDcard方式!
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- 读取SDcard Database并在Android ListView显示的处理流程
- (转)【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview效率检视工具,分析程序运行速度!并讲解两种创建SDcard方式!
- Android之获取手机内部及sdcard存储空间
- Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理