转自:http://blog.163.com/liyilouis007@126/blog/static/3180905020126845057442/
细看3个相关文档!具体步骤是:检查出错的文件系统---->确定挂载点---->执行命令修复文件系统
在dosfsck中,查看fsck具体参数说明。其中最后一项是该设备挂载点,根据实际情况而定,如我插入sd卡后,真正创建的节点名是“/dev/mmc/blk0/part1”,而在日志中打印的语句是:Filesystem Panic(dev mmcblk0p1)(此节点是系统默认生成的,用udev/mdev挂载时就用这个),所以我执行 dosfsck -V -a /dev/mmc/blk0/part1 即可!
具体设备的文件系统类型可通过命令查看,如 file、fsck、df、mount或挂载后的 stat -f /dev/mmc/blk0/part1,确认
已经有大概一个月时间U盘出现文件系统只读的问题了。症状为无法删除U盘中现有文件,无法向U盘拷贝新的文件。但不知道是什么原因。今天下决心解决这个问题。
其中最有价值的是2和3,但我是通过1找到2的……
2. 插入有只读文件系统故障的U盘tail -f /var/log/syslog
这表明U盘挂载的文件系统是/dev/sdb4,且文件系统有故障(FAT: Filesystem error)(通过日志找到是设备文件系统出错,且挂载点是/dev/sdb4)Jul 8 16:44:50 cslouis-pc kernel: [15595.155904] FAT: Filesystem error (dev sdb4) Jul 8 16:44:50 cslouis-pc kernel: [15595.155905] fat_get_cluster: invalid cluster chain (i_pos 0)
5. 修复U盘文件系统故障umount /media/** (**是你的U盘名,可以在media目录下查看)(此时sd或u盘仍然要插入,但却要已经卸载)
输出:sudo dosfsck -v -a /dev/sdb4
我不得不承认我确实看不懂到底是怎么回事,但是经过这些操作以后U盘文件系统恢复正常,可以读写了dosfsck 3.0.9 (31 Jan 2010) dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN Checking we can access the last sector of the filesystem Boot sector contents: System ID "MSDOS5.0" Media byte 0xf8 (hard disk) 512 bytes per logical sector 4096 bytes per cluster 36 reserved sectors First FAT starts at byte 18432 (sector 36) 2 FATs, 32 bit entries 7801856 bytes per FAT (= 15238 sectors) Root directory start at cluster 2 (arbitrary size) Data area starts at byte 15622144 (sector 30512) 1950354 data clusters (7988649984 bytes) 63 sectors/track, 255 heads 63 hidden sectors 15633345 sectors total FATs differ but appear to be intact. Using first FAT. /UNIX:8r4:6MP Contains a free cluster (7168). Assuming EOF. Reclaiming unconnected clusters. Reclaimed 28283 unused clusters (115847168 bytes) in 16 chains. Checking free cluster summary. Performing changes. /dev/sdb4: 3847 files, 488059/1950354 clusters