ubuntu WSL2“只读”文件系统,同时构建 chrome

u59ebvdq  于 2023-05-06  发布在  其他
关注(0)|答案(2)|浏览(310)

我试图根据this guide在WSL2上构建 chrome 。
当我到达fetch --nohooks chromium时,所有内容都在加载,然后我得到以下错误:

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

我找遍了所有的地方,也找不到任何关于这个错误的解释。
我在Windows 11上运行WSL2,Ubuntu 20.04作为Linux发行版。

w8f9ii69

w8f9ii691#

我能想到的几种可能性:

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

关于第一个,请参见#6220 on the WSL Github。建议的解决方案是(首先备份任何关键文件可能是个好主意):

# Identify the correct drive:
mount | grep ext4

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

也可能是磁盘空间问题。Chromium源代码非常大,大约为57 GB。Windows驱动器上的磁盘空间是否不足?如果是这样,那么WSL仍然认为它有剩余的空间,因为它在一个可以增长到(250 GB/1 TB,取决于WSL版本)的稀疏虚拟磁盘上,但是一旦主机驱动器上的空间用完,WSL可能会将设备设置为只读。
如果是这种情况,并且您有一个更大的驱动器(当然,建议使用SSD/NVMe来提高性能),如果您愿意,您可以“移动”虚拟磁盘-请参阅my Super User answer主题。
或者你可以尝试在没有完整的repo历史记录的情况下获取,就像文档中建议的那样,使用--no-history标志。

34gzjxbg

34gzjxbg2#

我遇到了类似的问题,当磁盘空间耗尽,而提取一个大的包在WSL,它得到了解决,清理磁盘给它足够大的可用空间,关闭WSL在Windows电源 shell 命令“wsl --shutdown”,然后重新启动WSL。

相关问题