linux下FAT32格式u盘只读的问题及解决方法

以下是网上看到的解决办法:http://blog.csdn.net/heqiuya/article/details/7870554

[plain] view plain copy

  1. 其实是掉电保护,之前挂在的SD变成了制度文件,只需要将SD卡重新挂载一遍就OK了.
  2. FAT: Filesystem panic (dev mmcblk0p4)
  3. fat_free_clusters: deleting FAT entry beyond EOF
  4. File system has been set read-only
  5. JFFS2 notice: (410) check_node_data: wrong data CRC in data node at 0x0a6537b8: read 0x989975b, calculated 0x9b01bd19.
  6. 你可以用mount查看
  7. /dev/mmcblk0p4 on /mnt/sd type vfat (ro,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=cp936)
  8. /dev/mmcblk0p4 on /home/sd type vfat (ro,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=cp936)
  9. 在/etc/init.d/rcS中添加一句
  10. mount -o remount,rw /dev/mmcblk0p4

网上说的另一种方法,把fat32格式改为ext2文件系统格式:

我尝试用上面的方法来解决我的问题,但是又遇到了问题

我通过dmesg命令查看到u盘错误信息,

[plain] view plain copy

  1. FAT: Filesystem panic (dev sda1)
  2. fat_free_clusters: deleting FAT entry beyond EOF
  3. File system has been set read-only

[plain] view plain copy

  1. 使用mount命令,打印出挂载的格式为ro即只读模式。
  2. 在mount命令中加入remount参数,并修改/etc/fstab文件,挂载成功。
  3. mount -o remount,rw /mnt/sd

[plain] view plain copy

  1. 没办法只好使用第二种方式,格式化u盘为ext2格式。
  2. 首先确认内核是否支持ext2文件系统,我的内核是2.6.24,默认不支持ext2,因此,我在内核菜单项中加入了ext2的支持,采取静态模式,编译后更新内核。
  3. 然后格式化u盘
  4. #mkfs.ext2 /dev/sda1
  5. 目前测试情况一切正常。

[html] view plain copy

    时间: 2024-10-13 12:46:09

    linux下FAT32格式u盘只读的问题及解决方法的相关文章

    C3P0在Linux下的Failed to get local InetAddress for VMID解决方法

    com.mchange.v2.c3p0.impl.C3P0ImplUtils generateVmId 信息: Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomness java.net.UnknownHostException: Along.Fedora: Along.Fedora at java.net.InetAddress.ge

    Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

    这两天在进行网站搬家,这次网站搬家采用直接打包mysql数据库和网页文件的形式进行迁移,上传好mysql data目录里面的网站数据库至VPS上mysql存放数据库的目录里面,解压就行.我的VPS存放数据库的路径是 /usr/local/mysql/var. 上传好网站数据,解压,配置好数据库链接参数就行,网站就能正常连接上了,我本以为这已 经是顺利迁移完成了,但后来操作的时候,发现只能读取数据库的内容,不能更改写入任何信息,提示#1036 – Table ‘* ‘ is read only (

    Linux下可执行文件格式详解

    Linux下面,目标文件.共享对象文件.可执行文件都是使用ELF文件格式来存储的.程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件.Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的. 我们先来了解一些基本的想法. 首先,最重要的思路是一个程序从人能读懂的格式转换为供操作系统执行的二进制格式之后,代码和数据是分开存放的,之所以这样设计有这么几个原因: 1.程序执行之后,代码和数据可以被映射到不同属性的虚拟

    linux下转格式函数iconv段错误

    今天将windows代码移植到Linux下,其中用到了Unicode转char的函数,被坑了一会,相关函数及编码格式,Linux与windows不同,有几点需要注意: 1.wchar_t 在Linux下占用4个字节,在windows下占2个字节: 2.Linux默认的文本编码方式是UTF-8:Linux终端汉字显示的设置方式:vi /etc/sysconfig/i18n: 设置LANG="en_US.UTF-8"或者LANG="zh_CN.UTF-8": 3.ico

    linux下自动化格式分区方法(非交互,可以用于shell脚本)

    自动化格式分区方法----非交互---可用于脚本 要先给用户一个提示,让他选择一个分区来格式化 for i  in `mount|grep  "/dev/sdb"|awk '{print $1}'` do fuser –km $i;umount $i done dd if=/dev/zero  of=$PartDisk bs=512  count=1 sync;sleep 3 echo 'n p 1 +20M n p 2 +512M n p 3 +128M t 3 82 w'|fdis

    Linux下将UTF8编码批量转换成GB2312编码的方法

    Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux下如何进行转换 UTF8编码和GB2312编码是有区别的,在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换 成GB2312编码,可是一个个的转换十分麻烦,下面小编就教你如何在Linux下将UTF8编码批量转换成GB2312编码. 背景 本人在使用oracl

    linux下访问window的共享文件,在命令行实现方法

    1.挂载共享目录 mount -t cifs //192.168.0.1/aa  /tmp/export -o username=text,password=test //192.168.0.1/aa   为:windows的共享目录 /tmp/export   为:挂在点 username=test   test为windows的账户 passowrd=test   test为windows的对应帐号密码 2.取消挂载 第一种:umount //192.168.0.1/aa 第二种:umoun

    Linux 下文件名乱码(无效的编码)的解决办法

    文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码. sudo apt-get install convmv convmv 使用方法:convmv -f 源编码 -t 新编码 [选项] 文件名常用参数:-r 递归处理子文件夹–notest 真正进行操作,默认情况下是不对文件进行真实操作–list 显示所有支持的编码–unescap 可以做一下转义,比如把

    Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

    修改了lower_case_table_names=1 后,业务发有个库的表打不开了,看了表名以前是大写,查了一下如果设置不区分大小写, 以前的大小表名要改成小写.重启服务后可用! MYSQL在LINUX下数据库名.表名.列名.别名大小写规则如下: 1.数据库名与表名是严格区分大小写的 2.表的别名是严格区分大小写的 3.列名与列的别名在所有的情况下均是忽略大小写的 4.变量名也是严格区分大小写的 Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法