在 WSL2(Windows Subsystem for Linux 2)下安装软件包时遇到存储空间不足的问题

在 WSL2(Windows Subsystem for Linux 2)下安装软件包时遇到存储空间不足的问题,您可以采取以下步骤来解决:

  1. 检查 WSL2 的磁盘使用情况
    • 打开 WSL2 终端并运行以下命令检查磁盘使用情况:
      • df -h
  2. 扩大 WSL2 虚拟磁盘
    • 默认情况下,WSL2 会分配一个动态增长的虚拟硬盘 (VHD),但可能会有最大限制。您可以手动扩大 VHD 的大小。
  3. 关闭所有 WSL 实例:
    • wsl --shutdown
  4. 列举实例
    • wsl -l -v
      • NAME STATE VERSION
      • Ubuntu-22.04 Stopped 2
        docker-desktop Stopped 2
        docker-desktop-data Stopped 2
  5. 导出现有的 WSL 实例(以 Ubuntu 为例):
    • wsl --export Ubuntu-22.04 D:\backup\ubuntu-22.04.tar
  6. 卸载现有的 WSL 实例:
    • wsl --unregister Ubuntu-22.04
  7. 重新导入 WSL 实例并指定更大的 VHD 大小(例如,增加到 512GB):
    • wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\backup\ubuntu-22.04.tar
    • 下面是命令中各个参数的解释:
      • wsl –import: 这是 WSL 命令,用于导入一个新的 WSL 实例。
      • Ubuntu: 这是您为新的 WSL 实例指定的名称。您可以根据需要更改此名称。
      • D:\WSL\Ubuntu: 这是新 WSL 实例的安装位置。您可以将实例安装在其他分区或文件夹中,以便更好地管理存储空间。
      • D:\backup\ubuntu.tar: 这是要导入的 WSL 实例的备份文件路径。该文件是之前使用 wsl --export 命令导出的 tar 文件。
      • 命令的作用是从 D:\backup\ubuntu.tar 文件导入一个新的 WSL 实例,命名为 Ubuntu,安装在 D:\WSL\Ubuntu 目录,并为该实例分配一个 100GB 的虚拟硬盘。
    • 使用 diskpart 进行调整
      • diskpart
      • DISKPART> select vdisk file=”C:\Path\To\Your\Distro\ext4.vhdx”
      • DISKPART> expand vdisk maximum=512000 # 单位为 MB,这里是 512GB
      • DISKPART> exit
  8. 释放 WSL2 内部的空间
    • 删除不必要的文件:
      • apt-get clean sudo apt-get autoremove
    • 清理 Docker 镜像(如果使用 Docker):
      • docker system prune -a
  9. 使用外部存储
    • 您可以将部分数据移动到 Windows 文件系统中,然后在 WSL2 中通过 /mnt 目录访问。例如,将文件移到 Windows D 盘:
      • mv ~/largefile /mnt/d/
  10. 更改 WSL2 默认安装位置
    • 如果您的 Windows 系统盘(通常是 C 盘)空间不足,您可以将 WSL2 的默认安装位置更改为其他盘符。

通过以上步骤,您应该能够在 WSL2 下释放足够的空间,解决安装过程中遇到的存储空间不足问题。

空间分配情况

实际的 df -h 结果

df -h 的输出中可以看出,/dev/sdc 分区的使用率已经达到了 100%,这是造成存储空间不足的主要原因。以下是一些解决方案,您可以选择适合您的方法来释放空间:

  1. 删除不必要的文件和目录
    • 查找和删除不必要的文件或目录:
      • sudo du -h --max-depth=1 /
    • 找到占用大量空间的目录后,可以逐层深入,最终删除不需要的文件。

逐级查找就可以找到哪个目录占用的空间最大,删除或移动到别的目录下

默认用户的修改

重新导入的系统,如果通过Windows 系统的菜单,切换不到默认的用户,可能直接是 root 用户

有两种方式可以直接进入默认用户,比如 用户名为:tony

直接通过Windows 命令行

或是修改 wsl2 下面的 /etc/wsl.conf, 增加如下内容

先使用 wsl –shutdown 关闭系统,再进入系统就可以了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部