Ubuntu下U盘文件只读的解决办法

转自: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盘拷贝新的文件。但不知道是什么原因。今天下决心解决这个问题。

       首先是在google和baidu上搜索相关资料,有价值的有以下几个:
       3.  http://hi.baidu.com/skyyjl/item/27c993babe0a1ff362388ed1
       其中最有价值的是2和3,但我是通过1找到2的……
       解决方法:
       1. 在Linux系统(ubuntu)中运行如下命令

tail -f /var/log/syslog

       2. 插入有只读文件系统故障的U盘
       3. 观察命令行输出
输出局部如下:

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)

  这表明U盘挂载的文件系统是/dev/sdb4,且文件系统有故障(FAT: Filesystem error)(通过日志找到是设备文件系统出错,且挂载点是/dev/sdb4)
       4. 输入umountU盘命令(注意:此时文件系统还在)

umount /media/** (**是你的U盘名,可以在media目录下查看)(此时sd或u盘仍然要插入,但却要已经卸载)

       5. 修复U盘文件系统故障

sudo dosfsck -v -a /dev/sdb4

输出:

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

我不得不承认我确实看不懂到底是怎么回事,但是经过这些操作以后U盘文件系统恢复正常,可以读写了
 
 
指令:fsck
使用权限 : 超级使用者 root
使用方式 : fsck [-sACVRP] [-t fstype] [–] [fsck-options] filesys […]
说明 : 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统
参数 :
filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 partition 做检查
-C : 显示完整的检查进度
-d : 列印 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。 [1]
例子 :
检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :fsck -t msdos -a /dev/hda5

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值