构建 chromium 时的 WSL2“只读”文件系统

WSL2 "read-only" file system while building chromium

提问人:Gal Hadar 提问时间:8/11/2022 最后编辑:NotTheDr01dsGal Hadar 更新时间:5/6/2023 访问量:4693

问:

我正在尝试根据本指南在 WSL2 上构建 chromium。

当我到达所有内容正在加载时,我收到以下错误:fetch --nohooks chromium

OSError: [Errno 30] Read-only file system: '/home/ghadar/chromium/src/third_party/libprotobuf-mutator/_gclient_src_0ve3yqhz'

我到处找,找不到这个错误的任何解释。

我在 Windows 2 上运行 WSL11,使用 Ubuntu 20.04 作为 Linux 发行版。

Linux Ubuntu WSL-2

评论


答:

1赞 NotTheDr01ds 8/11/2022 #1

我能想到的几种可能性:

  • 文件系统损坏(它发生)
  • 主机 Windows 驱动器上的磁盘空间不足

对于第一个,请参阅 WSL Github 上的 #6220。推荐的解决方案是(首先备份任何关键文件可能是个好主意):

# Identify the correct drive:
mount | grep ext4

# Take the drive returned (e.g. /dev/sdd) and:
sudo e2fsck /dev/sdd -p

这也可能是磁盘空间问题。Chromium 源非常大,约为 57GB。是否有可能 Windows 驱动器上的磁盘空间不足?如果是这样,则 WSL 仍认为它有剩余空间,因为它位于稀疏虚拟磁盘上,该磁盘可以增长到 (250GB/1TB,具体取决于 WSL 版本) ,但一旦主机驱动器上的空间消失,WSL 可能会将设备设置为只读。

如果是这种情况,并且您有一个更大的驱动器(当然,建议使用 SSD/NVMe 以提高性能),如果您愿意,您可以“移动”虚拟磁盘 - 请参阅我关于该主题的超级用户答案

或者,您可以尝试在没有完整存储库历史记录的情况下进行获取,如文档中建议的那样,使用标志。--no-history

0赞 zuchie 5/6/2023 #2

当在 WSL 中提取一个大包时磁盘空间耗尽时,我遇到了类似的问题,它通过清理磁盘为其提供足够大的可用空间,使用命令“wsl --shutdown”关闭 Windows Power shell 中的 WSL,然后重新启动 WSL。