执行flutter run无法访问第二块硬盘文件报只读文件系统错误如何解决
问题根因
报错核心是存储Flutter项目的HDD分区被系统挂载为只读文件系统,Flutter无法写入修改项目配置文件、生成运行日志,双系统场景下该问题几乎都由Windows快速启动锁死NTFS分区、Ubuntu挂载NTFS分区时未分配写入权限两个原因导致。
解决方案
按顺序执行以下操作即可解决:
- 关闭Windows快速启动(必须操作,否则会反复触发分区锁)
进入Windows系统,打开控制面板→电源选项→选择电源按钮的功能→点击「更改当前不可用的设置」→取消勾选「启用快速启动(推荐)」,保存设置后正常关机,再开机进入Ubuntu系统。 - 修改NTFS分区挂载权限(永久生效方案)
- 终端执行
sudo blkid,找到存储Flutter项目的NTFS分区对应的UUID,记录数值。 - 终端执行
sudo gedit /etc/fstab打开分区挂载配置文件,在文件末尾添加一行配置:UUID=你记录的UUID /media/你的Ubuntu用户名/自定义挂载目录名 ntfs defaults,uid=1000,gid=1000,umask=0022 0 0
注意:uid和gid为当前用户的ID,默认普通用户值为1000,不确定可以执行id命令查询。 - 保存文件后,先卸载原有挂载的HDD分区:
sudo umount /media/你的Ubuntu用户名/原有挂载目录名,再执行sudo mount -a重新挂载所有分区,无报错即为配置成功。
- 终端执行
- 临时修复方案(仅应急使用,重启后可能失效)
执行sudo ntfsfix /dev/分区标识(分区标识可通过sudo fdisk -l查询,格式类似/dev/sda3),修复后重新挂载分区即可临时获得写入权限。 - 验证修复效果
进入HDD内的Flutter项目目录,执行touch test.txt,如果可以正常创建文件说明读写权限已开启,先执行flutter clean清理旧缓存,再执行flutter run即可正常启动项目。
内容的提问来源于stack exchange,提问作者Athul krishna.M.A
相关产品推荐
相关产品推荐

