在线教育网站项目第三步 :windows 11通过wsl 2 安装ubuntu24.04

一、说明

WSL2和VMware在功能、性能、安装和使用场景等方面存在显著差异。‌

1、功能和性能
‌WSL2‌:WSL2是微软开发的一种技术,允许在Windows操作系统上运行一个完整的Linux内核,通过虚拟化技术实现。它直接在Windows上运行,资源使用更高效,通常性能更好。WSL2支持多种Linux发行版,如Ubuntu、Debian、Fedora等,并且与Windows共享内核和资源,提供了更好的兼容性和性能‌

‌VMware‌:VMware是一个完整的虚拟机软件,可以安装和运行任何支持x86架构的操作系统。VMware提供了更复杂的网络设置、多个虚拟机同时运行、图形界面等功能。虽然VMware在性能上可能会有一些开销,尤其是在资源有限的情况下,但其强大的功能使其在复杂环境中表现更出色‌

2、安装和使用场景
‌WSL2‌:安装过程相对简单,可以通过命令行快速启动,不需要额外的虚拟机管理。WSL2适合进行开发和测试,特别是在需要在Windows环境中运行Linux命令行工具和脚本的场景。由于其与Windows的无缝集成,WSL2在开发和测试环境中非常受欢迎‌

‌VMware‌:安装过程相对复杂,需要安装虚拟机软件、创建虚拟机、配置虚拟硬件等。VMware适合需要完整Linux系统或图形应用的场景,尤其是在需要隔离环境进行多操作系统并行运行的场景中表现更好‌
 

总结就一点,缺钱就用这个 

注意注意注意:用win11,win11,win11

二、准备工作

1、 查看先决条件

bios打开虚拟化

打开Windows功能,打开“适用于Linux的Windows子系统”和“虚拟机平台

Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用命令安装 。 如果使用的是更早的版本需要手动安装。
以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:systeminfo

PS C:\Windows\system32> systeminfo
主机名:             X58
OS 名称:            Microsoft Windows 11 IoT 企业版 LTSC
OS 版本:            10.0.26100 暂缺 Build 26100
OS 制造商:          Microsoft Corporation

bcdedit /set hypervisorlaunchtype auto

 PS C:\Windows\system32> bcdedit /set hypervisorlaunchtype auto
操作成功完成。

2、查询wsl版本

管理员身份打开 PowerShell

wsl升级到最新版

#wsl升级到最新版 版本为2.4.12
wsl --update

 

3、其它命令

wsl --list --verbose #列出已安装的 Linux 发行版
wsl --status # 检查 WSL 状态
wsl --help # Help 命令
wsl --shutdown #关闭
wsl hostname -I #标识 IP 地址 

 三、手动安装ubuntu 24.04

1、下载发行版

旧版 WSL 的手动安装步骤 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributions

2、解压下载的发行版

下载好是一个AppxBundle文件

将后缀AppxBundle改为zip

解压后目录如下

将上面画红色圈圈的 Ubuntu_2404.0.5.0_x64.appx 后缀appx再次改为zip

再次解压,目录如下

 

3、运行安装

会跳出来安装wsl2.4.12,看来前面没有下载成功啊 

这时候正式开始安装,会产生一个ext4的文件,这个就是镜像 

创建用户名密码之后就安装成功了

用户名:ubuntu2404

密码:123456

 

安装完成

4、查询虚拟机

wsl -l --all -v

 

四、导出虚拟机

为了方便后面移植,导入导出方便,我们先导出一个虚拟机保存在其它地方

1、关闭虚拟机

wsl -t Ubuntu-24.04

#关闭
PS C:\Windows\system32> wsl -t Ubuntu-24.04
操作成功完成。

PS C:\Windows\system32> wsl -l --all -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2

看看已经stop了

2、导出虚拟机文件

一定要先关闭在导出,导出是一个tar文件

wsl --export Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar

 

 

 3、卸载虚拟机

这个动作一般别做,请确保已经导出保存了虚拟机

wsl --unregister Ubuntu-24.04

 PS C:\Windows\system32> wsl --unregister Ubuntu-24.04
正在注销。
操作成功完成。

PS C:\Windows\system32> wsl -l --all -v
适用于 Linux 的 Windows 子系统没有已安装的分发。
 

注销其实就是删掉了, 

五、导入虚拟机

1、导入

# wsl --import <虚拟机名称> <新数据镜像文件的存放文件夹路径> <原来导出的备份文件路径>
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar

2、查看虚拟机

wsl -l --all -v


PS C:\Windows\system32> wsl -l --all -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2

这时候没有启动

3、修改默认虚拟机

# wslconfig /setdefault <选定的虚拟机名称>
wslconfig /setdefault Ubuntu-24.04

PS C:\Windows\system32> wslconfig /setdefault Ubuntu-24.04
操作成功完成。

4、修改默认登陆用户

迁移后登录可能会发现使用的是root登录,而非安装时设置的用户
这里我们需要设置wsl.conf文件,一般存储在/etc/wsl.conf,具体可看官方wiki WSL中的高级设置配置

1、先启动ubuntu,直接执行
PS C:\Windows\system32> wsl
root@x58:/mnt/c/Windows/system32#

sudo vi /etc/wsl.conf

在后面添加
[user]                                                                                                          default = ubuntu2404

 

重启

wsl --list --running
wsl --shutdown 或者 wsl --terminate <发行版名称>
wsl
或者
#启动
wsl -d Ubuntu-24.04

PS C:\Windows\system32> wsl --list --running
适用于 Linux 的 Windows 子系统分发:
Ubuntu-24.04 (默认)
PS C:\Windows\system32> wsl --shutdown
PS C:\Windows\system32> wsl

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu2404@x58:/mnt/c/Windows/system32$

我们看到进入的是 ubuntu2404用户而不是root了,修改了默认用户

六、自动安装ubuntu 24.04

1、我们先注销掉上面安装的系统

wsl --unregister Ubuntu-24.04

注销掉后,在查查
wsl -l --all -v

2、安装wsl

#wsl升级到最新版 版本为2.4.12
wsl --update

3、查看Linux分发

# 查看Linux分发(等同于 wsl -list -online)
wsl -l -o

PS C:\Windows\system32> wsl -l -o
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
Debian                          Debian GNU/Linux
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1


4、安装指定分发

wsl --install -d Ubuntu-24.04

这种安装方式简单,当然里面有你需要的系统才行,没有就得安装前面的手动安装 

PS C:\Windows\system32> wsl --install -d Ubuntu-24.04
正在下载: Ubuntu 24.04 LTS
[                           0.4%                           ]

PS C:\Windows\system32> wsl --install -d Ubuntu-24.04
正在下载: Ubuntu 24.04 LTS
正在安装: Ubuntu 24.04 LTS
已成功安装分发。它可通过 “wsl.exe -d Ubuntu-24.04” 启动 

wsl --shutdown # 全部终止 或者 wsl --terminate <发行版名称> # 终止指定
wsl  # 启动默认
或者
#启动
wsl -d Ubuntu-24.04

PS C:\Windows\system32> wsl -d Ubuntu-24.04
Provisioning the new WSL instance Ubuntu-24.04
This might take a while...
Create a default Unix user account: x58win
New password:
Retype new password:
passwd: password updated successfully

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Thu Mar 13 23:27:25 CST 2025

  System load:  0.18                Processes:             31
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 5%                  IPv4 address for eth0: 172.19.235.201
  Swap usage:   0%


This message is shown once a day. To disable it please create the
/home/x58win/.hushlogin file.

5、安装目录

C:\Users\x58win\AppData\Local\wsl\{ab7dfcc1-ebef-42af-af40-398f1e22f605}

同样有一个ext4.vhdx的镜像文件,和前面一样,我们也可以导出导入

我们自己安装前面操作一遍,这个安装简单多了

我们这次进去的默认用户不是root了,为什么呢,前面conf里设置过了,他是wsl设置的,算全局的了 

七、目前wsl状态

1、查看一下目前安装运行情况

# 版本查看
PS C:\Windows\system32> wsl --version
WSL 版本: 2.4.12.0
内核版本: 5.15.167.4-1
WSLg 版本: 1.0.65
MSRDC 版本: 1.2.5716
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.26100.3476
PS C:\Windows\system32>
# 目前安装ubuntu状态
PS C:\Windows\system32> wsl -l --all -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2

# 启动 进入linux状态了

PS C:\Windows\system32> wsl -d Ubuntu-24.04
x58win@x58:/mnt/c/Windows/system32$

# 再查 注意新打开一个ps窗口
PS C:\Windows\system32> wsl -l --all -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Running         2

2、windows与wsl文件互访

  • Windows 访问 WSL 文件:通过 \\wsl$\<DistroName> 路径。这里我的是Ubuntu

  • WSL 访问 Windows 文件:通过 /mnt/c//mnt/d/ 等路径。

八、网络配置

1、宿主机,也就是我们的windows操作系统本身

C:\Users\x58win>ipconfig

Windows IP 配置


以太网适配器 以太网:      ###这里是真实网卡的ip地址,也就是我们windows的外网ip地址

   连接特定的 DNS 后缀 . . . . . . . :
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.13
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.1.1

以太网适配器 vEthernet (Default Switch):  ###虚拟网卡 wsl安装之后就有了

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::3586:8b6e:e9ab:1b1c%9
   IPv4 地址 . . . . . . . . . . . . : 172.18.160.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 vEthernet (WSL (Hyper-V firewall)):  ###虚拟网卡 wsl安装之后就有了

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::c6c9:7541:909:fd1b%24
   IPv4 地址 . . . . . . . . . . . . : 172.19.224.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0

2、安装的ubuntu子系统网络状况

x58win@x58:/mnt/c/Windows/system32$ sudo ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 10.255.255.254/32 brd 10.255.255.254 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:6a:e1:5f brd ff:ff:ff:ff:ff:ff
    inet 172.19.235.201/20 brd 172.19.239.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe6a:e15f/64 scope link
       valid_lft forever preferred_lft forever

我们看 inet 172.19.235.201/20 brd 172.19.239.255,

说明ip地址:172.19.235.201,子网掩码:255.255.240.0brd: 172.19.239.255

3、测试子系统是否能连接外网 

x58win@x58:/mnt/c/Windows/system32$ ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10: icmp_seq=1 ttl=44 time=31.0 ms
64 bytes from 39.156.66.10: icmp_seq=2 ttl=44 time=29.6 ms
64 bytes from 39.156.66.10: icmp_seq=3 ttl=44 time=28.6 ms

看情况能连接到外网 

4、观察子系统与宿主机网络情况

可以看到windows下WSL初始了一个(172.19.235.201)和子系统同网段(172.19.224.1)的一个网络接口vEthernet (WSL (Hyper-V firewall))

一般WSL初始的子系统ip虽然说是随机的,但我观察一般也没什么变化,为了以防万一,我们也可以给添加一个固定IP,不过我们改

wsl -d <子系统版本名> -u root ip addr add <固定IP>/<掩码> [broadcast <广播地址>] dev eth0 label eth0:1

5、安装ssh

# 目前在root下
# 查询是否安装ssh
dpkg -l | grep openssh-server
或者
systemctl list-unit-files | grep ssh.service
都没有,

# 安装
sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl status ssh
sudo systemctl enable ssh

6、如何通过局域网其他机器访问的wls子系统

简单点就是外网能访问到子系统 

在wls2 宿主机windows 11系统中设置端口转发, 由于WSL2使用虚拟网络适配器,具有自己的私有IP地址,因此局域网内的其他机器无法直接访问WSL2实例。为了解决这个问题,我们需要在Windows中配置防火墙和端口转发规则

打开Windows PowerShell,以管理员身份运行。运行以下命令,允许传入连接到WSL2: 

New-NetFirewallRule -DisplayName "WSL2 SSH" -Direction Inbound -LocalPort 22 -Action Allow -Protocol TCP

-DisplayName:为规则指定一个显示名称,这里是 “WSL2 SSH”。

-Direction:指定规则的方向,这里是 “Inbound”(入站)。

-LocalPort:指定要允许的本地端口,这里是 22(SSH 通常使用的端口)。

-Action:指定对匹配的流量采取的动作,这里是 “Allow”(允许)。

-Protocol:指定协议类型,这里是 “TCP”。

 运行以下命令设置端口转发规则,将传入的连接转发到WSL2实例:

netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=<WSL2_IP_Address>

###<WSL2_IP_Address> 需要一起替换掉,这个需要打开WSL2 然后运行ifconfig就能看到了。
就是我们前面看到的172.19.235.201

7、我们执行上面这两条命令

PS C:\Windows\system32> New-NetFirewallRule -DisplayName "WSL2 SSH" -Direction Inbound -LocalPort 22 -Action Allow -Protocol TCP


Name                          : {8db73cd9-2edf-48a4-9cf9-140a816420f2}
DisplayName                   : WSL2 SSH
Description                   :
DisplayGroup                  :
Group                         :
Enabled                       : True
Profile                       : Any
Platform                      : {}
Direction                     : Inbound
Action                        : Allow
EdgeTraversalPolicy           : Block
LooseSourceMapping            : False
LocalOnlyMapping              : False
Owner                         :
PrimaryStatus                 : OK
Status                        : 已从存储区成功分析规则。 (65536)
EnforcementStatus             : NotApplicable
PolicyStoreSource             : PersistentStore
PolicyStoreSourceType         : Local
RemoteDynamicKeywordAddresses : {}
PolicyAppId                   :
PackageFamilyName             :
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.19.235.201

PS C:\Windows\system32> netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.19.235.201

PS C:\Windows\system32>

#这个没有任何输出

检查执行情况 netsh interface portproxy show v4tov4

PS C:\Windows\system32> netsh interface portproxy show v4tov4

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
0.0.0.0         22          172.19.235.201  22

PS C:\Windows\system32>

8、ssh连接验证

我的wls子系统登录用户名是:x58win

 成功登录

我们在部署时就可以这样开发端口了,比方8080,就干上面两步,应该换个名字,把22改为8080就可以了

九、修改主机名

我们在使用时,导入一个同样的子系统,但是用户名和主机名都一样,不好区分,用户名更改麻烦一点,毕竟有些安装的软件和用户名权限有关,但是主机名还是可以修改的。这样有主机名不一样,也可以

1. 修改hostname
目录: /etc/

编译文件: hostname

指令: sudo vim /etc/hostname

操作:将原主机名修改成新主机名。

2. 修改hosts
目录: /etc/

编译文件: hosts

指令: sudo vim /etc/hosts

操作:将原主机名修改成新主机名。

3. 特别注意
如果出现修改完上述两步,还无法修改主机名,执行此步骤。

原因可能是wsl 没有修改配置文件,导致wsl 每次重启都会恢复默认配置的主机名。

目录: /etc/

编译文件: wsl.conf

指令: sudo vim /etc/wsl.conf

操作:添加代码

[network]
hostname = 《新主机名》
generateHosts = false

注释:generateHosts = false,表示不会自动生成主机配置信息

十、修改并固定ip地址

同一个 虚拟机镜像导入的子系统,ip地址是一样的

看看

 inet 172.19.235.201/20 brd 172.19.239.255 scope global eth0
 inet 172.19.235.201/20 brd 172.19.239.255 scope global eth0

这样感觉不太好,我们当作子系统就是一个系统,那么我们要求每一个系统ip地址都是不一样的,

所以我们修改一下,其实我也不知道如果两个子系统同一个ip地址,会不会有问题,至少觉得会有问题,找不到主机啊,我们访问时间可都是访问ip的

#在子系统中执行

# 添加新的

sudo ip addr del 172.19.235.201/20 broadcast 172.19.239.255 dev eth0

sudo ip addr add 172.19.235.202/20 broadcast 172.19.239.255 dev eth0

修改了,两个ubuntu 子系统都会更改为统一ip 

x58win@minio-kk:/mnt/c/Windows/system32$ ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:0e:cf:33 brd ff:ff:ff:ff:ff:ff
    inet 172.19.235.202/20 brd 172.19.239.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe0e:cf33/64 scope link
       valid_lft forever preferred_lft forever

 x58win@data:/mnt/c/Windows/system32$ ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:0e:cf:33 brd ff:ff:ff:ff:ff:ff
    inet 172.19.235.202/20 brd 172.19.239.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe0e:cf33/64 scope link
       valid_lft forever preferred_lft forever

没搞明白,明天研究一下,再来更新 

deepseek了一下

需要进一步询问用户是如何安装这两个Ubuntu子系统的。是否通过Microsoft Store安装了两个不同的发行版,还是复制了同一个发行版?如果用户复制了同一个实例,可能会导致网络配置冲突,因为它们可能共享相同的网络命名空间。

另外,用户提到的修改IP后另一个也跟着变化,这可能表明两个实例共享同一个网络接口或命名空间,导致IP配置相互影响。在WSL2中,每个实例通常有独立的网络命名空间,但如果用户手动修改了网络配置而没有正确隔离,可能会导致这个问题。

我就是复制的同一个实例,我还自己改了主机名,连用户名都是一样的,所以应该导致了这个问题,网上有种方法可以解决,就是通过脚本设置ip

也就是不能够拷贝了,得重新装吗?

我准备全部删除了,再装一遍,不用导入功能,单独装

deepseek说

用户想在Windows 11的WSL里安装两个完全独立的Ubuntu 24.04服务器,并且要求它们之间可以互相访问,同时还能被外部访问。首先,我需要理解用户的具体需求。这两个Ubuntu实例需要完全独立,可能意味着各自有不同的文件系统和配置,不能是同一个实例的多个会话。互访意味着它们之间需要网络互通,而外部访问可能需要从Windows主机或局域网内的其他设备访问这两个WSL实例。

十一、总结

1、在固定这个问题上deepseek是不靠谱的,

2、官方文档有说:

 Linux 发行版作为独立的容器在 WSL 2 托管 VM 内运行。 通过 WSL 2 运行的 Linux 发行版将共享同一网络命名空间、设备树(而非 /dev/pts)、CPU/内核/内存/交换空间、/init 二进制文件,但有自己的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 init 进程。

 3、上一条可以解释为什么我们通过netplan修改ip失败了,也不是失败,而是没有达到目的,我用简单的说法说明这个问题

  • linux发行版在vm上运行,比方说我们安装了ubuntu 24.04,他就运行在vm上面,共享了很多东西,然后我们有import出了一个实例,它有自己的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 init 进程,我认为实例没有netplan的所有权,也就是我们执行修改了静态ip,执行netpan apply,其实是在发行版上执行的,而不是在实例上执行的,这就是我们修改静态ip,然后所有的实例都变成了一个相同的ip,而且是最后修改的那个ip
  • ubuntu发行版是它所有import出来的实例的基座,基座上所有功能都能在实例上运行,但是如果是共享功能,将会导致所有实例都更改,要谨慎使用
  • 以netplan方式无法修改静态ip,那么可以用add ip的方式临时修改ip,实例不是拥有 init 进程吗?把add ip 的命令放在这个是否可行,大家可以试试
### 如何在WSL2安装Ubuntu 24.04 #### 准备工作 确保Windows已更新到最新版本,并启用了适用于Linux的Windows子系统(WSL)[^1]。 #### 设置WSL2作为默认版本 通过PowerShell命令可以将WSL2设为默认版本: ```powershell wsl --set-default-version 2 ``` 此操作会使得之后安装的所有发行版都基于WSL2运行环境。 #### 安装特定版本的Ubuntu 由于微软商店中的Ubuntu应用通常不是最新的长期支持(LTS)版本,为了获取指定版本如Ubuntu 24.04 LTS,则需借助其他方法。一种常见做法是从Microsoft Store下载通用的Ubuntu镜像后,在线升级至所需的具体版本;另一种更直接的方法是利用`wsl --import`指令导入预先准备好的Ubuntu 24.04 VHD文件或tarball压缩包[^2]。 对于前者,可以通过如下步骤实现在线升级: - 首先从Microsoft Store安装任意一个可用的Ubuntu版本; - 启动该Ubuntu实例并执行常规初始化过程; - 更新现有软件包列表 `sudo apt update && sudo apt upgrade -y`; - 添加官方旧版本库以便访问较老但稳定的发布版本; - 使用do-release-upgrade工具逐步迁移到目标版本,例如Ubuntu 24.04 LTS. 然而,考虑到效率与便捷性,推荐采用后者即直接导入预构建映像的方式。可以从互联网找到由社区成员分享的Ubuntu 24.04 WSL专用映像链接,按照指引完成下载解压后再使用上述提到的`wsl --import`命令将其注册成为新的WSL分发版[^3]。 #### 导入自定义Ubuntu映像示例 假设已经获得了名为`ubuntu_24.04.wsl.tar.gz`的Tarball格式映像文件,放置于C:\temp目录下,那么可以在管理员权限下的PowerShell窗口里输入下列语句来创建一个新的Ubuntu 24.04 WSL环境: ```powershell cd C:\temp tar -xf ubuntu_24.04.wsl.tar.gz -C . wsl --import Ubuntu-24.04 .\rootfs.ext4 --version 2 ``` 这里`.\\rootfs.ext4`代表解压后的根文件系统的路径名,而最后一步则是指定了所要建立的新WSL分布式的名称以及使用的内核模式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值