- 论坛徽章:
- 0
|
近日公司出差遇到产品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 |
|