如何解决FAT文件系统出现readonly的问题

环境

openwrt系统中开启samba服务器, 插入usb设备,分区为vfat格式
在windows中反复删除、读写u盘

问题

反复读写后会出现文件系统只读的问题
串口日志如下:

[ 1456.424000] FAT-fs (sda1): error, fat_free_clusters: deleting FAT entry beyond EOF
[ 1456.440000] FAT-fs (sda1): Filesystem has been set read-only

原因分析

通过分析日志和内核代码,当检测到文件系统异常时,会进行错误处理,默认是remount readonly, 也就是当文件系统错误时,重新挂载文件系统,这样导致只读

问题解决

文件系统报错无法避免,只能通过mount参数规避,防止出现readonly问题
在挂载参数中修改errors处理
可以通过在文档中查看参数定义

linux-kernel/Documentation/filesystems/vfat.txt

errors取值: panic|continue|remount-ro (默认是rmount-ro)

mount时将参数指定为continue即可
如mount -t vfat /dev/sda /mnt/sda -o errors=continue

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章