答案是:先用mount | grep定位只读挂载点,再通过dmesg | tail -30查ext4错误、journal异常或NTFS不安全状态等真实病因;若为挂载参数误设则sudo mount -o remount,rw /path修复;若文件系统损坏需卸载后e2fsck -f -y或xfs_repair;NTFS/FAT32盘须先禁用Windows快速启动,再ntfsfix或dosfsck;fstab错误则需单用户模式修正。

在银河麒麟V10终端执行rm、touch、echo >等写入操作时突然报错“Read-only file system”,不是权限设置问题,也不是用户没加sudo——根文件系统或挂载点已被内核强制设为只读,必须定位触发原因并针对性恢复读写能力。
确认当前挂载状态与只读根源
先看系统到底把哪个路径锁死了:运行mount | grep " $(df . | tail -1 | awk '{print $1}') ",查出当前工作目录所在设备的挂载行;若输出含ro,(如ro,relatime),说明该设备被显式挂为只读;若挂载选项是rw却仍报错,则大概率是文件系统损坏触发了内核保护机制。
立即执行dmesg | tail -30,重点找包含ext4 error、journal has been aborted、failed to remount rw或NTFS volume is in an unsafe state的行——这些才是真实病因,比盲目重挂载更关键。
针对不同原因的修复路径
方法一:挂载参数误设为ro,可直接remount恢复
执行sudo mount -o remount,rw /(根分区)或sudo mount -o remount,rw /mnt/data(其他挂载点)。这一步仅对纯参数错误有效;若提示mount: /: cannot remount /dev/sda2 read-write, is write-protected,说明底层已拒绝写入,必须跳转至方法二。
方法二:ext4/xfs文件系统损坏,需强制检查修复
① 先卸载目标分区:sudo umount /dev/sdXn(如/dev/sda2);若提示target is busy,用sudo lsof +D /mnt/xxx查占用进程并kill。
用于设计、审查、生成或重构使用Effector、effector-react、Farfetched、AtomicRouter、@effector/next等库的React应用。
② 运行sudo e2fsck -f -y /dev/sdXn(ext4)或sudo xfs_repair /dev/sdXn(xfs)。【-f参数强制检查,跳过“clean”标记判断;不加-f可能直接退出,导致修复失效】
③ 修复完成后重新挂载:sudo mount /dev/sdXn /mnt/xxx,再测试写入。
方法三:NTFS/FAT32移动盘被Windows休眠锁住
先确认是否双系统:在Windows中彻底关机(禁用“快速启动”),而非重启或休眠;然后在麒麟终端执行sudo ntfsfix /dev/sdXn(NTFS)或sudo dosfsck -a /dev/sdXn(FAT32)。【ntfsfix不能替代chkdsk,仅清除休眠标志;若Windows未真正关机,此命令无效】
方法四:/etc/fstab配置错误导致启动即只读
若系统启动后立刻进入只读状态,且mount显示根分区为ro,极可能是/etc/fstab里某行UUID写错或类型填成vfat却挂载NTFS分区。需进单用户模式:重启→GRUB菜单按e编辑启动项→找到以linux开头的行→末尾添加rd.break→Ctrl+X启动→执行mount -o remount,rw /sysroot→chroot /sysroot→编辑/etc/fstab修正错误行→exit两次重启。

















