安装 WSL 最好的方式

微软的 WSL 是一种使用 Linux 非常好的方式,如果通过 Microsoft Store 的默认方式安装 WSL 发行版,其 Linux 文件系统会被存放在 C:\Users\xxx\AppData\Local\Packages\,对于 C 盘空间紧张的电脑来说,这种方式并不友好。

今天给大家介绍一个能够直接将 WSL 安装在其他位置的方式。

前置要求

要安装 WSL,首先要检查系统是否可以使用 WSL。要使用 WSL 2,只需要 Windows 10 2004 及以上版本,或 Windows 11。然后打开 Windows 功能中的 适用于 Linux 的 Windows 子系统 和 虚拟机平台:

你也可通过在管理员的 PowerShell 中执行如下命令来启用这两个功能:

cmd 复制代码
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

在重启之后就可以使用 wsl 命令了。

下载 Linux 内核更新包

在系统重启后,打开终端,输入如下指令:

shell 复制代码
wsl --update

这个过程将会下载最新版本的 WSL 2 的 Linux 内核。如果下载很慢的话,也可以通过下面的地址直接下载后再安装:

下载 Linux 版本

普通情况下, WSL 的 Linux 版本都是通过 Microsoft Store 下载安装的,但是这个微软的商店不是互动性假死,就是间歇性崩溃。我从未见过像这样连基本能够都不能保证的应用商店。

因此,我们到这个地方直接下载:
https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json

这是 Microsoft 官方 WSL 仓库中用于描述受支持发行版及其下载地址的配置文件。

这个文件里记录了 WSL 所支持的 Linux 发行版,我们挑选一个下载即可。这里我先选择了 Ubuntu-24.04,其 Url 为:
https://releases.ubuntu.com/24.04.3/ubuntu-24.04.3-wsl-amd64.wsl

我们将这个 wsl 文件下载到一个本地文件夹中,这可以看成一个软件安装包。其本质上是一个 WSL 发行版的 rootfs 打包文件,类似于容器镜像,用于初始化 Linux 根文件系统。

安装 wsi 到指定文件夹

我们通过这个命令来安装刚下载的 Linux 发行版,注意,这个命令是重点:

cmd 复制代码
wsl --install --from-file D:\wsl\rootfs\ubuntu-24.04.3-wsl-amd64.wsl --location D:\wsl\ubuntu --name ubuntu-24.04

下面对这个命令的每一项进行解释:

  • wsl --install:表示安装 wsl 的 Linux 发行版
  • --from-file:后面跟着 wsl 的路径,表示从本地 wsl 文件安装
  • --location:表示安装到的位置,这里安装到了 D:\wsl\ubuntu 这个位置
  • --name:Linux 发行版的名称

通过这种方式,Linux 就直接安装到了 D 盘的指定文件夹,而前面下载的 wsl 文件,在安装完成之后就可以删除了。

现在在 Windows 的终端上就可以创建 Linux 的终端了:

对于文件操作,也可以在 Windows 文件资源管理器左侧可以找到 Linux 的标志,点击 Linux 就可以操作 Linux 文件。

而在 WSL 的 Linux 中,Windows 的磁盘会被自动挂载到 /mnt 目录下,例如 /mnt/c、/mnt/d。这样就可以像在 Linux 中操作文件一样操作 Windows 中的文件了。

相关推荐
广州浮点FLOATLIC7 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
BLUcoding7 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK7 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2088 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)8 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter6258 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
java资料站8 小时前
二、Spring AI Alibaba · ChatModel
java·windows·spring
北冥you鱼9 小时前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
xh didida9 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
zly350010 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器