環境
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