免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1360 | 回复: 0
打印 上一主题 下一主题

嵌入式产品中U盘损坏修复办法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-12 17:19 |只看该作者 |倒序浏览

                                近日公司出差遇到产品U盘损坏的情况:
  linux kernel只能识别到U盘设备(/dev/sda),但没有分驱设备(/dev/sda1...)
  可以用cat /proc/device,cat /proc/partitions,fdisk -l等命令来查询具体状态
由于拆机换U盘比较麻烦,因此用下载到dosfstools-2.11.src(2).tar.gz进行修复,首先下到此源码后要编译成适应嵌入式平台的程序,具体怎么修改makefile就不细说了,因为大家的平台可能都不一样。
附上dosfstools-2.11.src(2).tar.gz源码供大家下载:

       
        文件:dosfstools-2.11.src.tar.gz
        大小:66KB
        下载:
下载
       
编译后执行
./dosfsck -aV /dev/sda (该命令类似于dos下的chkdsk)
结果修复无效(如果这个指令有效,建议可以在程序中整合dosfsck修复的代码),看了只能重新格掉了
fdisk /dev/sda
>command:d (删除原分)
>command:n (创新一个新的主分区,其它选默认值即可)
>command:w (确认写入,sda1就创建出来了)
然后make一个vfat文件系统信息,指定卷标名为了给udev自动挂载U盘
./mkdosfs -I -n Volume2001 -F 32 /dev/sda1
OK!然后把原来U盘上的数据通过网络复制过去就行了。
附usage说明:
usage: dosfsck [-aAflrtvVwy] [-d path -d ...] [-u path -u ...]
               device
  -a       automatically repair the file system
  -A       toggle Atari file system format
  -d path  drop that file
  -f       salvage unused chains to files
  -l       list path names
  -n       no-op, check non-interactively without changing
  -r       interactively repair the file system
  -t       test for bad clusters
  -u path  try to undelete that (non-directory) file
  -v       verbose mode
  -V       perform a verification pass
  -w       write changes to disk immediately
  -y       same as -a, for compat with other *fsck
Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]
       [-m boot-msg-file] [-n volume-name] [-i volume-id]
       [-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]
       [-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]
       /dev/name [blocks]
-c 建立档案系统之前先检查是否有坏轨
-l 从得定的档案中读取坏轨记录
-f 指定档案配置表(FAT , File Allocation Table)的数量。预设值为2
-F 指定 FAT 表的大小,FAT16就是16,FAT32就是32
-i 指定 Volume ID。一般是一个 4 个位元组的数字,像是 2e203a47 。如果不给系统会自己产生。
-m 当使用者试图用这片磁片或是分割区开机,而上面没有作业系统时,系统会给使用者一段警告讯息。这个参数就是用来变更这个讯息的。你可以先用档案编辑好,然后用这个参数指定,或是用
-m -
这样系统会要求你直接输入这段文字。要特别注意的是,档案里的字串长度不要超过 418 个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在 DOS 底下算两个字元!)
-n 指定 Volume Name,就是磁碟标签。如同在 DOS 底下的 format 指令一样,给不给都可以。没有预设值。
-r 指定根目录底下的最大档案数。这里所谓的档案数包括目录。预设值是在软碟上是 112 或是 224 ,在硬碟上是 512。没事不要改这个数字。
-s 每一个磁丛(cluster)的磁区数。必须是 2 的次方数。不过除非你知道你在作什么,这个值不要乱给。
-v 提供额外的讯息
               
               
               
               
               
               
               

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP