还在用虚拟机?既庞大又不够流畅,试试WSL。WSL(Windows Subsystem for Linux)允许你直接在 Windows 上运行 Linux 环境,无需启动虚拟机或双系统。WSL 2 是 WSL 的第二个版本,改进了性能和功能,提供了更接近原生 Linux 的体验。
WSL2 介绍
WSL2 (Windows Subsystem for Linux 2)是微软在Windows 10和Windows 11上引入的一项功能,允许用户在Windows操作系统上运行Linux环境及其相关命令和应用程序,而无需使用虚拟机或安装双系统
。
WSL2基于 Hyper-V 的轻量级虚拟机,运行完整的Linux内核,提供了更好的性能和更高的兼容性。
WSL 2 的优点
- 性能提升:WSL 2 使用虚拟机技术,提供更快的文件系统性能和系统调用兼容性。
- 更好的系统调用兼容性:WSL 2 支持完整的 Linux 内核功能,使得大多数 Linux 应用程序能够更好地运行。
- 更好的网络支持:WSL 2 提供了更稳定的网络连接,支持直接通过
localhost
访问 Windows 应用程序。 - 支持 GUI 应用程序:通过配置 X 服务器,WSL 2 可以运行图形化界面的应用程序。
- 多发行版支持:WSL 2 支持多种 Linux 发行版,如 Ubuntu、Debian、Kali Linux 等。
- 便捷的系统间相互访问:可以方便的在windows和linux系统间互传文件。
WSL 安装使用
1. 检查更新
首先,确保你的 Windows 10 版本是最新的,以支持 WSL 2。你可以通过以下步骤检查和更新 Windows 版本:
- 检查当前 Windows 版本:
- 打开命令提示符(CMD),输入以下命令并回车:
winver
- 如果版本太低,可以在“设置” - “更新和安全” - “Windows 更新”中检查更新。有时候系统可能不会提示最新版本,这时可以使用 Microsoft 提供的更新助手。
- 版本要求如下:
- 对于 x64 系统:版本 1903 或更高版本(内部版本 18862 或更高版本)。
- 对于 ARM64 系统:版本 2004 或更高版本(内部版本 19041 或更高版本)。
- 如果没有别的顾虑,建议升级到最新版。
- 打开命令提示符(CMD),输入以下命令并回车:
2. 启用虚拟功能
在 PowerShell 中以管理员身份运行以下命令,以确保启用适用于 Linux 的 Windows 子系统和虚拟机平台功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
完成上述命令后,重启计算机以完成安装。
3. 下载 Linux 内核更新程序包
下载适用于 WSL 2 的 Linux 内核更新程序包。下载地址如下:
下载完成后,运行安装程序并按照提示完成安装。
Ubuntu24 安装
安装 Linux 分发版本,比如最新的Ubuntu24,可以通过 Microsoft Store 安装 Ubuntu,或者使用命令行工具从 tar 文件安装。
方式一,通过 Microsoft Store 安装:
- 打开微软应用商店。
- 搜索“Ubuntu”,在列表中选择最新的长期支持版本(例如 Ubuntu 24.04 LTS)并安装。
- 安装完成后,可以在开始菜单中找到“Ubuntu 24.04 LTS”,点击它启动终端。
方式二,通过命令行安装:
-
下载 Ubuntu 24.04 的 tar 文件:
- 访问 Ubuntu WSL 下载页面,下载适用于 Windows 的 Ubuntu 24.04 LTS tar 文件(通常是
.tar
文件)。
- 访问 Ubuntu WSL 下载页面,下载适用于 Windows 的 Ubuntu 24.04 LTS tar 文件(通常是
-
移动 tar 文件到 D 盘:
- 将下载的 Ubuntu 24.04 tar 文件(
.tar
文件)移动到 D 盘的某个目录,例如D:\WSL\Ubuntu-24.04
。
- 将下载的 Ubuntu 24.04 tar 文件(
-
使用 WSL 命令导入 Ubuntu:
- 打开 PowerShell 并以管理员身份运行。
- 导航到你存放
.tar
文件的目录,例如D:\WSL\Ubuntu-24.04
。 - 使用以下命令导入 Ubuntu:
请注意将wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04\ubuntu-24.04.2-wsl-amd64.tar --version 2
ubuntu-24.04.2-wsl-amd64.tar
替换为你实际的文件名。
-
启动 Ubuntu:
- 导入完成后,可以通过 PowerShell 运行以下命令启动 Ubuntu:
wsl -d Ubuntu-24.04
- 或者通过开始菜单搜索“Ubuntu-24.04”,点击它启动终端。
- 如果是首次启动,系统会提示你设置一个用户名和密码。这个用户将是 Linux 系统中的默认用户,确保记住这些凭证。
- 导入完成后,可以通过 PowerShell 运行以下命令启动 Ubuntu:
5. 确保 WSL 的版本为 2.0
使用以下命令查看安装的 WSL 版本:
wsl -l -v
如果显示的版本不是 2,可以使用以下命令将其设置为 WSL 2 版本:
wsl --set-version Ubuntu-24.04 2
6. WSL apt 换源
为了提高软件包下载速度,建议更换为国内的镜像源。
-
备份源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
-
编辑
sources.list
文件:sudo vim /etc/apt/sources.list
-
将源文件内容注释掉,并添加以下任意源:
-
阿里云源:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
-
清华源:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse
-
-
保存文件并退出编辑器:
- 在
vim
中,按Esc
键,然后输入:wq!
并回车以保存并退出。
- 在
-
查看文件是否更改成功:
cat /etc/apt/sources.list
-
更新源:
sudo apt-get update
-
更新软件:
sudo apt-get dist-upgrade sudo apt-get upgrade
7. WSL2 备份与还原
确保你的 Windows 10 版本是 1903 或更高版本,才能使用这些命令。
-
通过按
Win + R
,输入cmd
回车打开命令行窗口:wsl -l
- 你可以看到系统中安装了一个 WSL 发行版,例如
Ubuntu-24.04
。
- 你可以看到系统中安装了一个 WSL 发行版,例如
-
查看版本信息:
wsl --version
-
备份 WSL 发行版:
- 停止发行版(如果正在运行):
wsl -t Ubuntu-24.04
- 使用
wsl --export
命令备份发行版:wsl --export Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar
- 停止发行版(如果正在运行):
-
还原 WSL 发行版:
- 卸载发行版(如果已安装):
wsl --unregister Ubuntu-24.04
- 使用
wsl --import
命令还原发行版:wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04.tar --version 2
- 卸载发行版(如果已安装):
8. 配置默认用户
如果你希望设置默认的 Linux 用户,可以按照以下步骤操作:
-
通过
ubuntu2404.exe
配置:- 如果你通过 Microsoft Store 安装过 Ubuntu,可以使用以下命令设置默认用户:
ubuntu2404.exe config --default-user <你的用户名>
- 如果你通过 Microsoft Store 安装过 Ubuntu,可以使用以下命令设置默认用户:
-
如果没有通过 Microsoft Store 安装:
- 下载并安装 Windows Terminal。
- 打开 Windows Terminal 设置,编辑
settings.json
文件。 - 添加或修改以下内容:
{ "guid": "{你的guid}", "name": "Ubuntu-24.04", "source": "Windows.Terminal.Wsl", "startingDirectory": "//wsl$/Ubuntu-24.04/home/<你的用户名>" }
9. 修改 Ctrl+C 和 Ctrl+V 快捷键
在 Windows 下,Ctrl + C
和 Ctrl + V
默认是复制和粘贴快捷键,但在 WSL 中 Ctrl + C
用于中断进程。建议修改为 Ctrl + Shift + C
和 Ctrl + Shift + V
。
- 编辑
settings.json
文件:- 打开 Windows Terminal 设置,编辑
settings.json
文件。 - 添加或修改以下内容:
{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" }, { "command": "paste", "keys": "ctrl+shift+v" }
- 打开 Windows Terminal 设置,编辑
10. 迁移 WSL 到非系统盘
默认情况下,WSL 会安装在 C 盘。为了节省 C 盘空间,可以将 WSL 迁移到其他磁盘分区,例如 D 盘。
-
下载 LxRunOffline 工具:
- 访问 LxRunOffline 下载页面。
- 下载适用于 x64 系统的
LxRunOffline-vx.x.x-msvc.zip
版本。
-
解压并使用 LxRunOffline 工具:
- 解压下载的文件到任意目录,例如
D:\LxRunOffline
。
- 解压下载的文件到任意目录,例如
-
获取发行版名称:
- 打开 PowerShell 并以管理员身份运行。
- 使用以下命令获取发行版名称:
.\LxRunOffline.exe list
-
执行迁移命令:
- 使用以下命令将 Ubuntu-24.04 迁移到 D 盘:
.\LxRunOffline.exe m -n Ubuntu-24.04 -d D:\WSL\Ubuntu-24.04
- 使用以下命令将 Ubuntu-24.04 迁移到 D 盘:
-
查看迁移后发行版的安装路径:
- 使用以下命令查看迁移后的安装路径:
.\LxRunOffline.exe di -n Ubuntu-24.04
- 使用以下命令查看迁移后的安装路径:
11. Vmmem 进程限制
WSL 2 实际上是在虚拟机中运行的,Vmmem 进程会占用大量内存。可以通过配置文件限制 Vmmem 进程的内存占用。
-
创建
.wslconfig
文件:- 在用户目录下创建
.wslconfig
文件,例如C:\Users\<你的用户名>\.wslconfig
。
- 在用户目录下创建
-
添加以下内容:
[wsl2] memory=6GB swap=0 localhostForwarding=true
-
关闭并重新启动 WSL:
wsl --shutdown
12. 与宿主 Windows 文件系统相互访问
在 Windows 10 下访问 Linux 子系统文件:
- 打开文件资源管理器,在地址栏输入
\\wsl$\Ubuntu-24.04
,可以跳转到 Linux 子系统根目录。
在 Linux 子系统访问 Windows 文件:
- 进入
/mnt
目录,可以访问 Windows 文件系统。cd /mnt ls
13. 解决 systemctl
命令无法使用问题
在 WSL 2 中默认情况下 systemctl
命令无法使用,可以通过以下步骤解决:
-
安装必要的软件:
sudo apt install -y fontconfig daemonize
-
编辑
/etc/profile
文件:- 打开
/etc/profile
文件:sudo vim /etc/profile
- 在文件末尾添加以下内容:
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}') if [ -z "$SYSTEMD_PID" ]; then sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}') fi if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME fi
- 打开
-
修改
/etc/sudoers
文件:- 编辑
/etc/sudoers
文件:sudo visudo
- 在文件末尾添加以下内容:
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
- 编辑
-
应用更改:
- 执行以下命令应用更改:
source /etc/profile
- 或者重新打开终端并验证
systemctl
是否可以使用:systemctl
- 执行以下命令应用更改:
14. 安装 VcXsrv: WSL 图形化界面
为了在 WSL 2 中使用图形化界面,可以安装 VcXsrv。
-
下载并安装 VcXsrv:
- 访问 VcXsrv 下载页面。
- 下载并安装 VcXsrv。
-
配置 VcXsrv:
- 启动 VcXsrv,一路选择
Next
完成配置。 - 确保选择“Disable access control”选项。
- 启动 VcXsrv,一路选择
-
安装 Xfce 桌面环境:
- 在 Ubuntu 终端中安装以下软件包:
sudo apt-get install xfce4-terminal sudo apt-get install xfce4
- 在 Ubuntu 终端中安装以下软件包:
-
编辑
~/.bashrc
文件:- 打开
~/.bashrc
文件:sudo vim ~/.bashrc
- 在文件末尾添加以下内容:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
- 打开
-
启动 Xfce 桌面环境:
- 在 Ubuntu 终端中输入以下命令启动桌面环境:
startxfce4
- 在 Ubuntu 终端中输入以下命令启动桌面环境:
推荐使用 Windows Terminal
Windows Terminal 是 WSL 的理想配套。它速度快、可配置、外观漂亮,并且提供了 Windows和 Linux 开发的所有优点。
- 支持WSL2,SSH,Powershell,cmd和其他命令行
- 多个选项卡和拆分窗格
- 搜索框
- 自定义键绑定
- GPU加速文字渲染
- 美观的新字体Cascadia Code
- 资源使用率低(每个选项卡通常10MB)
- 自动更新(如果使用Microsoft Store)
- 好的文档
- 它是开源的!
安装Windows Terminal
安装Windows Terminal最简单方法是通过windows的应用商店,直接搜索安装即可。如果内网限制无法通过微软商店安装 Windows Terminal,下面提供手动安装和配置新版 Windows Terminal 的步骤,并添加右键菜单快捷方式。
通过命令行安装:
-
下载新版终端安装包:
- 访问 Windows Terminal 的 GitHub 发布页面。
- 找到最新版本或您需要的特定版本,下载 x64 架构的 .zip 安装包(例如
Microsoft.WindowsTerminalPreview_1.22.3232.0_x64.zip
)。 - 如果无法直接访问 GitHub,可以使用 GitHub 加速网站下载:例如 https://github.akams.cn/,将 GitHub 发布页面的链接复制到加速网站中即可。
-
解压安装包并创建快捷方式:
- 将下载的 .zip 文件解压到您选择的目录(例如
D:\Apps\terminal-1.22.3232.0
)。 - 在解压后的目录中找到
WindowsTerminal.exe
文件,右键点击,选择“创建快捷方式”,并将快捷方式放置到桌面或其他方便访问的位置。
- 将下载的 .zip 文件解压到您选择的目录(例如
-
设置系统环境变量(可选,但推荐):
- 将 Windows Terminal 的安装目录添加到系统环境变量
Path
中,以便可以直接在命令提示符或 PowerShell 中通过terminal
命令启动。 - 按下
Win + R
,输入sysdm.cpl
并回车,打开“系统属性”窗口。 - 点击“高级”选项卡,然后点击“环境变量”。
- 在“系统变量”部分,找到
Path
变量,选中并点击“编辑”。 - 点击“新建”,输入 Windows Terminal 的安装目录(例如
D:\Apps\terminal-1.22.3232.0
),然后点击“确定”。 - 关闭所有窗口,使环境变量更改生效。
- 将 Windows Terminal 的安装目录添加到系统环境变量
-
启动 Windows Terminal:
- 按下
Win + R
,输入terminal
并回车,即可启动新版 Windows Terminal。
- 按下
5. 添加右键菜单快捷方式
以管理员身份运行 PowerShell 或命令提示符,并执行以下命令:
# 添加右键菜单项
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /ve /d "Windows Terminal"
# 设置图标 (将路径替换为您实际的图标路径)
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /v "Icon" /t REG_EXPAND_SZ /d "D:\Apps\terminal-1.22.3232.0\Images\terminal.ico"
# 设置命令 (将路径替换为您实际的 WindowsTerminal.exe 路径)
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command" /f /ve /t REG_EXPAND_SZ /d "D:\Apps\terminal-1.22.3232.0\WindowsTerminal.exe"
注意:请将上述命令中的图标路径(terminal.ico
)和执行程序路径(WindowsTerminal.exe
)替换为您实际的安装路径。确保路径中没有多余的字符或错误。
完成以上步骤后,在文件夹的空白区域右键点击,即可看到“Windows Terminal”选项,方便地在此处打开终端。
结语
在本指南中,我们展示了如何在 Windows 10 或 11 上安装和配置 WSL 2,并将 Ubuntu 24.04 安装到 D 盘。希望你能享受在 WSL 上使用 Ubuntu 的体验。不要忘记查看我们的博客获取最新的 Ubuntu 新闻和信息。
进一步阅读
通过以上步骤,你应该能够在 Windows 10 或 11 上成功安装 WSL 2 并将 Ubuntu 24.04 安装到 D 盘,从而享受高效的工作环境。