侧边栏壁纸
博主头像
帆云素材 博主等级

苟利国家生死以,岂因祸福避趋之

  • 累计撰写 26 篇文章
  • 累计创建 26 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Win11安装Linux子系统(WSL2)完整配置

智慧的格子衫
2024-05-07 / 0 评论 / 3 点赞 / 73 阅读 / 0 字

网上教学如何安装的文章很多,但是大多数文章,仅仅只是到安装完成就结束了。
这篇文章将带你:安装Ubuntu系统,配置默认使用root用户,通过ssh访问,开机自启、安装docker。

0. 环境准备

up这里用的Win11,win10配置应该也差不多,基本一致

开干~

win + Q 搜索 Windows 功能,如下图所示,开启这3项
image.png

然后重启电脑

1. 安装WSL2

用管理员权限运行 powershell, 依次运行如下命令

# 启用wsl
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 开启虚拟机特性
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置wsl2版本
wsl --set-default-version 2

2. 安装Ubuntu

打开微软商店(Microsoft Store)搜索Ubuntu,然后选择 Ubuntu20.04 LTS 或者 Ubuntu22.04 LTS 点击安装,等待下载完成。
和网速有关,耐心等待~

image.png

3. 启动并配置Ubuntu

下载完成之后,点击打开,会弹出一个窗口,等30s左右,系统启动中。

image.png

设置账号和密码;这里我设置的都是 local
然后就可以成功进入系统了
image.png

设置root账号

在Ubuntu命令窗口中输入如下命令


# 设置root用户密码
sudo passwd root

# 密码...

# 切换root用户
sudo su

image.png

设置root为默认用户

上述设置,每次ubuntu重启,默认都是local用户,每次都需要手动切换

设置一个一劳永逸的方法

  1. 关闭Ubuntu 终端
  2. 管理员权限打开 powershell
  3. 运行 wsl --shutdown
  4. 运行ubuntu2204.exe config --default-user root

此时,再打开ubuntu,已经是root用户登录
image.png

配置SSH连接

下方配置均使用root用户

更新apt apt-get update

安装ssh服务

# 卸载ssh服务
apt remove openssh-server

# 安装ssh服务
apt install openssh-server -y

修改配置信息

编辑配置文件

vi /etc/ssh/sshd_config

修改端口和地址
22端口被Windows占用,必须要修改
将 Port取消注释,修改为 Port 2202
允许外部连接,取消注释 ListenAddress 0.0.0.0
image.png

文件末尾,添加:

PermitRootLogin yes
PasswordAuthentication yes

开启ssh服务,并配置开机自启

systemctl enable ssh.service

systemctl start ssh.service

到这里已经可以ssh连接了
image.png
image.png

配置子系统开机自启

win + R 输入 shell:startup

在打开的文件夹内新建一个文本文档,复制如下内容并保存

set ws=wscript.CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu-22.04 -u root ", 0
  • , 0:这部分是run方法的第二个参数,指定了命令行窗口的显示方式。0意味着不显示任何窗口,即以隐藏模式运行。如果你希望看到WSL终端窗口,可以将0改为1

注意 Ubuntu 的版本号

重命名该文件为 ubuntu-startup.vbs
image.png

关闭所有软件,重启电脑;等待重启完成,什么都不打开,直接使用ssh工具连接,出现连接成功
image.png

大功告成~

其他

限制WSL内存和CPU

WSL2理论上可用获取Windows系统内管理的所有CPU、内存资源;

由于Linux内核的内存管理机制,它会尽量缓存一些已经读取过的文件页,在很长一段时间内是不会释放的。并且这部分文件页也不会被Windows回收,导致WSL2占用过多内存,而Windows反而没有内存可用的情况;

针对这种场景,可以在%UserProfile%下创建一个.wslconfig文件来进行配置:
%UserProfile%在我本机是 C:\Users\fu
新建一个文本,添加如下内容,再重命名为.wslconfig即可

[wsl2]
processors=4
memory=4GB
swap=4GB
localhostForwarding=true
[experimental]
autoMemoryReclaim=gradual
sparseVhd=true

WSL迁移到D/E盘

wsl默认安装在C盘,如果东西太多C盘容易满,做一个wsl的迁移

  1. 关闭wsl
    wsl --shutdown
  2. 导出wsl
    wsl --export Ubuntu-22.04 E:\wsl\ubuntu.tar
  3. 卸载原子系统
    wsl --unregister Ubuntu-22.04
  4. 导入并指定位置
    wsl --import Ubuntu-22.04 E:\wsl E:\wsl\ubuntu.tar
  5. 配置默认用户
    ubuntu2204.exe config --default-user root

卸载子系统

卸载Ubuntu子系统
wsl --unregister Ubuntu-22.04

ubuntu安装docker

参考 Ubuntu安装Docker、Docker compose - 智慧的格子衫 (fu520.top)

3

评论区