必须先卸载U盘再修复:运行mount | grep -i usb确认挂载点,sudo umount /dev/sdX1卸载设备;根据文件系统类型执行dosfsck/ntfsfix/fsck.exfat等对应工具修复,完成后重新挂载验证读写。

不能在挂载状态下运行 fsck —— 这是核心前提。U盘已挂载为只读,说明系统检测到文件系统异常后自动降级保护,此时直接调用 fsck 会报 Device or resource busy 错误,强行跳过卸载步骤可能导致元数据损坏或数据丢失。
确认挂载状态并安全卸载
先查清楚U盘当前是否真的挂载着,以及挂载在哪:
- 运行
mount | grep -i usb或findmnt -D /dev/sdX1(把sdX1替换为你的设备名,如sdc1) - 若输出含挂载点(如
/media/user/MyUSB),说明已挂载;若无输出,则可能未自动挂载,但仍需用lsblk确认设备是否存在 - 执行
sudo umount /dev/sdX1卸载设备节点本身(不是挂载路径),避免因进程占用失败;若提示 target is busy,可用lsof +D /media/user/MyUSB或fuser -v /media/user/MyUSB查杀占用进程
根据文件系统类型选择对应工具
U盘常见格式为 FAT32、exFAT 或 NTFS,不能统一用 fsck,必须匹配底层工具:
- FAT32:用
sudo dosfsck -a -v /dev/sdX1(-a自动修复,-v显示详细过程) - exFAT:用
sudo fsck.exfat /dev/sdX1(需安装exfat-utils包) - NTFS:用
sudo ntfsfix /dev/sdX1(轻量修复,不替代 Windows chkdsk;若严重损坏,建议在 Windows 下用chkdsk X: /f /r) - ext4(少见但存在):用
sudo e2fsck -y /dev/sdX1(e2fsck是 ext 系列专用工具,比通用fsck更可靠)
修复后重新挂载验证
修复命令退出且无报错(尤其注意是否出现 FILE SYSTEM WAS MODIFIED 或类似成功提示)后:
- 运行
sudo mount /dev/sdX1 /mnt(或任一空目录)测试是否可正常读写 - 尝试新建文件、复制小文件,观察是否仍被拒绝写入
- 若再次只读,可能是硬件故障(如闪存块老化)或控制器异常,此时修复仅临时有效,应尽快备份并更换U盘
预防频繁只读问题
U盘反复进入只读状态,往往不是单次错误,而是累积性损坏的信号:
- 养成“安全弹出”习惯,避免拔插时正在读写
- 避免在低电量笔记本或供电不足的USB集线器上长期使用
- 定期用
dosfsck -n /dev/sdX1(只读扫描)做健康检查 - 对重要数据,不要依赖单一U盘,配合云同步或双备份机制

















