wsl 中出现 read-only file system 时,先停止写入并备份能读取的数据。不要在正在挂载的根文件系统上直接运行 e2fsck;需要先从 windows 侧关闭 wsl,再以裸挂载方式让另一套环境检查磁盘。
先停止业务写入并保存关键文件
先把还能读取的项目、数据库导出文件或配置复制到 Windows 目录。随后在 PowerShell 运行 wsl --shutdown,确保目标发行版的 ext4.vhdx 不再被占用。

以裸挂载方式接入 VHD
以管理员身份运行 wsl --mount "D:\WSL\Ubuntu\ext4.vhdx" --vhd --bare,路径换成实际 VHDX。再从另一套正常的 WSL2 发行版运行 lsblk 识别新出现的设备名。

离线检查后再启动
确认目标分区没有挂载后,运行 sudo e2fsck -f /dev/sdX,把 sdX 换成上一步确认的设备。检查完成后退出辅助发行版,在 PowerShell 执行 wsl --unmount,再启动原发行版验证读写。文件系统检查可能修复或移走损坏条目,重要数据仍应从备份恢复。












