WSL2+Ubuntu 部署Linux
1. 简介
- WSL2:WSL2是Windows Subsystem for Linux 2的简称,是微软在Windows 10/11操作系统中提供的一种功能,用于在Windows系统上运行Linux环境,与主机Windows系统共用同一套硬件资源。它允许用户在Windows操作系统中使用本机的Linux内核,而不需要使用虚拟机或双启动等方式,开发者和用户可以在Windows环境中轻松地访问和运行Linux命令行工具和应用程序。WLS2是WLS(Windows Subsystem for Linux)的升级版 。
- Ubuntu:Ubuntu是一种流行的Linux发行版,广泛用于桌面和服务器环境。它基于Debian发行版,以其用户友好性、稳定性和广泛的软件包支持而闻名。Ubuntu也是WSL2支持的一种Linux发行版之一,用户可以通过WSL2在Windows 10/11上安装和运行Ubuntu环境。
2. 安装与配置
2.1. 前提
- 查看windows是否支持虚拟化:
如果未启用,则需要在BIOS中开启虚拟化技术。
- 开启Hyper-v:因为 WSL2 基于 Hyper-V,所以需要启用 Hyper-v,可以通过 控制面板 -> 程序 -> 程序与功能 -> 启用或关闭 Windows 功能:
注:Window家庭版不支持Hyper-V:
- WSL2 的虚拟化功能是由 Windows 的底层 Hyper-V 虚拟化技术提供支持的,但它并不依赖完整的 Hyper-V 组件。即使在 Windows 家庭版中,微软也允许启用 Hyper-V 的部分功能(Virtual Machine Platform)来支持 WSL2。
- 如果不放心,也可以使用命令脚本启动Hyper-v,脚本如下:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
2.2. 利用WSL2安装Ubuntu
搜索输入“power”,找到 Windows PowerShell 之后以管理员身份运行
在弹出的命令窗口中依次输入以下命令:
- 启用Windows子系统( Linux )的功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 启用虚拟平台功能:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
这两个步骤,等同于在“启用或关闭 Windows 功能”中,开启“适用于 Linux 的 Windows 子系统”和“虚拟平台”。
执行完上述命令后,重启电脑。
- 将WSL的默认版本设置为2:
wsl --set-default-version 2
注意,WIN11默认即安装的为WSL2,不需要执行该命令;WIN10用户需要执行该命令切换至WSL2
- 下载并安装WLS所需要的组件和基本文件系统:
wsl --install
等待安装完成即可。
注:仅当根本没有安装WSL时,上述命令才有效。
wsl --install --online:可以查看可用发行版列表
wsl --install -d <DistroName>:可以安装一个指定的发行版
安装完成可设置默认用户名以及密码提示:
Enter new UNIX username: //输入用户名
New password: //输入新密码
Retype new password: //再次输入密码,与新密码保持一致
该模式表示普通用户模式。
至此,可以在文件资源管理器中查看到Linux -> Ubuntu,后续与Ubuntu之间的文件操作可以从此处进行。
2.3. 一些小坑
2.3.1. 代理设置不兼容
如果出现“wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理”,这通常意味着WSL的网络配置与Windows系统的代理设置不兼容。
解决方式:
- 步骤1: 创建
.wslconfig
文件
-
- 打开文件资源管理器,导航到您的用户目录,路径通常是
C:\Users\<your_username>
。 - 在该目录下,创建一个新的文本文件,并将其命名为
.wslconfig
- 打开文件资源管理器,导航到您的用户目录,路径通常是
- 步骤2: 编辑.wslconfig文件
-
- 右键点击.wslconfig文件,选择“用记事本打开”。
- 在打开的文本编辑器中,输入以下内容:
[experimental]
networkingMode=mirrored // 表示 WSL 和 Windows 使用相同的网络配置
dnsTunneling=true
firewall=true
autoProxy=true
-
- 保存并关闭文件。
- 步骤3: 应用配置并重启WSL
-
- 打开命令提示符或PowerShell。
- 输入以下命令以关闭WSL的所有分发版:
wsl --shutdown
-
- 等待命令执行完成,这将关闭所有正在运行的WSL实例。
- 步骤4: 重启WSL
-
- 重新打开命令提示符或PowerShell。
- 输入wsl命令来启动WSL。
- 步骤5: 验证问题是否解决
-
- 检查是否还有关于localhost代理的提示。
- 如果问题已解决,您可以继续使用WSL。
其实,最简单的方式,直接在 WSL Settings 中设置即可。
2.3.2. root用户
默认的情况下使用的普通用户登录,其实这是一种安全的方式,但如果想执行root用户权限,有两种方式:
一是使用 sudo 命令,具体详细指令该怎么用不做过多介绍了;
二是常驻root用户,指令为:sudo su,然后输入密码即可。
3. 附录:常见wls指令
- wsl -l -s:查看当前WSL的版本和运行状态
- wsl --shutdown:关闭所有分发版
- wsl --unregister <DistributionName>:卸载指定的发行版WSL