V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  Windows

突然发现 WSL 支持安装发行版时自定义名称了(相同发行版可共存)

  •  
  •   liyafe1997 · 23 天前 · 1225 次点击

    wsl --install -d Ubuntu --name ubuntu1

    wsl --install -d Ubuntu --name xxx-dev-env

    wsl --install -d Ubuntu --name temp-test

    这样你就能得到 3 个不同名字的 Ubuntu 副本!

    之前为了实现类似的功能,我甚至在 WSL2 里面跑 lxd ,以及把 Docker 当虚拟机用,就因为 WSL2 不方便部署多个相同发行版,不好管理环境。

    现在不用再搞这些拐弯抹角了,直接能一键安装一个发行版副本并且指定名称。

    5 条回复    2025-03-10 10:41:17 +08:00
    liyafe1997
        1
    liyafe1997  
    OP
       23 天前
    很可惜,只支持新的 tar 格式的发行版,目前 Ubuntu 似乎只发布了最新版本的(只有 wsl --install -d Ubuntu 才支持这个特性),Ubuntu-22.04 以及更老版本都不行。
    Projection
        2
    Projection  
       23 天前
    之前也可以啊,只要有 rootfs.tar.(gz) 就可以创建发行版的多个实例。

    比如 Ubuntu-22.04 ,从下面的地址中找到 Ubuntu2004-230608_x64.appx 文件并下载:

    https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json

    然后解压出 installer.tar.gz 就可以用 wsl --import 命令创建多个实例了。(现在好像多了个 wsl --install --from-file ,你可以试试)

    除了这种微软提供的 rootfs ,还有其他渠道也可以获得 rootfs 。不过我一般是通过 Docker 定制一个镜像导入到 WSL 中。
    Projection
        3
    Projection  
       23 天前
    @Projection 纠正:文件名是 Ubuntu2204LTS-230518_x64.appx
    liyafe1997
        4
    liyafe1997  
    OP
       23 天前 via Android
    @Projection 你甚至还要先导出 tar 然后再 import ,很麻烦
    sparkinglemon
        5
    sparkinglemon  
       22 天前
    安装好的可以直接导出一个 tar 啊,不用去找 appx

    wsl --install -d Debian # -d <DistributeName>
    #或者 wsl --list 找名称,以 Debian 为例
    wsl --export Debian C:\Debian.tar
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1131 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.