如何在 WSL Ubuntu 中使用其他驱动器?

如何在 WSL Ubuntu 中使用其他驱动器?

我正在使用 WSL Ubuntu 来使用 Stable Diffusion AI 艺术生成器,但由于我的 C: 驱动器相对较小,因此遇到了问题。

我想知道是否有办法让 Ubuntu 将其信息下载到其他驱动器,例如 D: 驱动器或其他驱动器?如果可以,我该怎么做?

答案1

您可以在 C: 盘上安装 WSL 系统,然后将其导出。

摘自 Mehmet Fatih 在 DEV.to 上的文章:

  1. 列出你的 WSL 安装:wsl --list -v
  2. 终止正在运行的系统(在此示例中,它称为Ubuntu): wsl -t Ubuntu
  3. 将您的 WSL 系统导出到外部驱动器(在此示例中为 D: 驱动器):wsl --export Ubuntu "D:\wsl_export\ubuntu-ex.tar"
  4. 取消注册 WSL 系统(安装在您的 C: 盘上):wsl --unregister Ubuntu
  5. 再次导入你的 WSL 系统,并将其解压到外部驱动器上:wsl --import Ubuntu "D:\wsl_import\ubuntu" "D:\wsl_export\ubuntu-ex.tar"

参考:在 Windows 中的另一个驱动器上安装 WSL

答案2

我正在使用 WSL Ubuntu 来使用 Stable Diffusion AI 艺术生成器,但由于我的 C: 驱动器相对较小,因此遇到了问题。

有趣的是 - 我刚才也在想同样的事情。而且我的C:动力一点也不小,但我可能对新的稳定扩散模型上瘾了。剪纸!气球艺术!哇哦!;-)

我想知道是否有办法让 Ubuntu 将其信息下载到其他驱动器,例如 D: 驱动器或其他驱动器?如果可以,我该怎么做?

当你可以直接从 Ubuntu/WSL 中使用D:驱动器,这并不是一个好主意。 /mnt/d将提供对它的访问权限,但 WSL2 用于访问 Windows 驱动器的网络文件系统非常慢。对于 Stable Diffusion,它不会改变您的图像生成时间,但几乎肯定会大大增加 SD 的启动时间,因为每次都必须将模型加载到/mnt/dGPU 中。

从 WSL2 访问 Windows 驱动器上的许多小文件可能比 ext4 虚拟磁盘慢 100 倍左右。但根据我昨天进行的快速测试,即使是像稳定扩散模型这样的单个大文件,速度也会慢大约两倍。

最好创建一个分离WSL2 分布/实例位于D:驱动器上的某个位置,至少假设它是 SSD。如果您要从 SSD 转移C:到 HDD D:,那么您需要做出一些速度与大小的权衡决定。

您可以使用以下说明@Joseph 提供, 但:

  1. 正如我在评论中指出的那样,请务必小心谨慎
  2. 你还需要设置默认用户在新的实例中。
  3. 您需要发出一个命令wsl --set-default <new_version>以使新副本成为默认副本。

如果您在 Windows 11 下使用最新的 WSL 版本(从 Microsoft Store 安装),则有一种稍微更简单的方法。

  • 退出现有的 Ubuntu

  • 在 PowerShell 中(作为常规非管理员用户):

    wsl --shutdown
    
    # create a directory for the new distribution
    mkdir D:\WSL\instances\stable-diffusion
    
    # Find the location of the existing Ubuntu:
    Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\ |
        ForEach-Object {
            (Get-ItemProperty $_.PSPATH) | Select-Object DistributionName,BasePath
        }
    
    wsl --import --vhd Stable-Diffusion D:\WSL\instances\stable-diffusion C:\Users\<yourUsername>\path\you\found\above\ext4.vhdx
    

    然后你就可以启动了wsl ~ -d Stable-Diffusion

  • 通过设置您的默认用户这个答案(推荐方法 1)。

  • 然后wsl ~ -d Stable-Diffusion应该使用您的默认用户正确启动。

  • 确认一切正常后,您可以选择发出:

    wsl --set-default Stable-Diffusion
    wsl --unregister <old_distribution_name>
    

    但请记住,这是一个破坏性的、不可逆的操作。请先确保您所需的所有文件在新发行版中可用!

    您还可以将旧发行版保留为“通用” Ubuntu WSL 安装,并使用D:专门用于此目的的 Stable Diffusion 版本。

    如果是这样,并且你想减小图像的尺寸(删除模型等之后),那么也请参阅这个答案

相关内容