免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6943 | 回复: 0

[存储网络] sd卡反复变成只读解决办法 [复制链接]

论坛徽章:
0
发表于 2009-06-01 15:01 |显示全部楼层
首先推荐两个网页:
http://www.linuxquestions.org/questions/linux-hardware-18/usb-drive-becomes-read-only-again-and-again-603214/
http://www.linuxsir.org/bbs/lastpostinthread349139.html

我们的相同之处就是用的fat文件系统,我的应用和第二个同志的一样,解决办法:移植一个修复工具dosfsck,其详细用法请参看:
http://linux.about.com/library/cmd/blcmdl8_dosfsck.htm
dosfsck的工作机制如下(转自:
http://wiki.linux.org.hk/w/Scan_disk#FAT_.28dosfsck.29
):
FAT (dosfsck)
依次序检查以下:
  • FAT 中有无效的 cluster 编号,发现则改成 EOF。
  • 档案 cluster 链有循环
  • 有坏 cluster (读取时有错误),发现则把该 cluster 标记为坏 cluster,并由使用它的档案中移除。
  • 有大量坏项目的目录,发现则可能要遗弃整个目录。
  • 档案 . 和 .. 不是目录,发现则需要改名。
  • 在根目录发现目录 . 和 ..,发现则需要遗弃。
  • 有坏档案名称,发现则需要改名。
  • 有重复目录项目,发现则需要改名或遗弃。
  • 有目录的档案大小为非零,发现则需要设定为 0。
  • 有目录 . 不指向父目录 (parent directory),发现则需要调节指标。
  • 有目录 .. 不指向父目录的父目录,发现则需要调节指标。
  • 档案的第一 cluster 编号无效,发现则需要设档案大小为 0。
  • 档案有坏或未使用的 cluster,发现则需要折断档案。
  • 档案 cluster 链长于档案大小栏所指定的大小,发现则需要折断档案。
  • 两个或以上的档案使用同一个 cluster,发现则除一个档案外,其档案都需要被折断。如果被折断是一个已检查的目录,折断后需要重新开以整个档案系统检查工作。
  • 档案 cluster 链短于档案大小栏所指定的大小,发现则需要折断档案。
  • cluster 被标记为已使用但未有一个档案使用,发现则需要未使用。
    此外,亦会检查以下但不进行修复:
  • 启动磁区 (boot sector) 有无效参数
  • 非根目录没有 . 和 .. 两项目
    请注意这句话:If -a and -r are absent, the file system is only checked, but not repaired.
    推荐这样使用:
    ./dosfsck -arV -w /dev/sda (该命令类似于dos下的chkdsk)
    结果修复无效(如果这个指令有效,建议可以在程序中整合dosfsck修复的代码),看了只能重新格掉了
    david@raptor:/media$ fsck /dev/sdb1
    fsck 1.40.2 (12-Jul-2007)
    dosfsck 2.11, 12 Mar 2005, FAT32, LFN
    FATs differ but appear to be intact. Use which FAT ?
    1) Use first FAT
    2) Use second FAT
    ? 1
    Reclaimed 416900 unused clusters (1707622400 bytes).
    Free cluster summary wrong (584604 vs. really 1001504)
    1) Correct
    2) Don't correct
    ? 1
    Leaving file system unchanged.
    /dev/sdb1: 0 files, 1/1001505 clusters
    david@raptor:/media$ fsck /dev/sdb1
    fsck 1.40.2 (12-Jul-2007)
    dosfsck 2.11, 12 Mar 2005, FAT32, LFN
    FATs differ but appear to be intact. Use which FAT ?
    1) Use first FAT
    2) Use second FAT
    ? 2
    Reclaimed 418050 unused clusters (1712332800 bytes).
    Free cluster summary wrong (584604 vs. really 1001504)
    1) Correct
    2) Don't correct
    ? 1
    Leaving file system unchanged.
    /dev/sdb1: 0 files, 1/1001505 clusters
    david@raptor:/media$


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/50685/showart_1951302.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP