安装 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 中的文件了。

相关推荐
handler012 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
Gary Studio2 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
YJlio2 小时前
Windows Internals 读书笔记 10.3.3:Task Scheduler 架构详解
人工智能·windows·笔记·python·学习·chatgpt·架构
又来敲代码了3 小时前
k8s的部署
linux·运维·云原生·容器·kubernetes
IT WorryFree3 小时前
FGT-KVM 完整部署极简教程(CentOS 7 + KVM 环境)
linux·运维·centos
一袋米扛几楼983 小时前
【报错问题】彻底解决 TypeScript 报错 TS2769: No overload matches this call (JWT 篇)
linux·javascript·typescript
goyeer3 小时前
【ITIL4】32服务实践 - 服务变更管理
linux·运维·服务器·数字化·价值·itil
扛枪的书生3 小时前
Git 学习总结
linux
liuyao_xianhui3 小时前
进程概念与进程状态_Linux
linux·运维·服务器·数据结构·c++·哈希算法·宽度优先
wang09073 小时前
Linux性能优化之磁盘基础介绍
linux·运维·性能优化