Alex_McAvoy

想要成为渔夫的猎手

Win10 子系统(WSL)的安装

参考文档:

【安装步骤】

1.以管理员身份运行 PowerShell 2.启用子系统功能
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
3.启用虚拟机功能
1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3.下载 Linux 内核更新包并安装

下载链接:WSL2 Linux kernel update package for x64 machines

4.启用 wsl2 功能
1
wsl --set-default-version 2

如果出现报错信息 请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化问题,那么需要手动安装 Hyper-V 虚拟机

具体安装方法:点击这里

5.下载合适的 Linux 系统

在微软商店搜索 WSL,下载合适的版本

6.创建用户

安装完成后,运行等待几分钟后会要求创建用户,输入用户名、密码即可

需要注意的是,该处创建的并不是 root 用户

7.root 用户

因为 Ubuntu 默认的 root 密码是随机的,即每次开机都会产生一个新的密码,在终端输入 sudo passwd,然后输入当前用户密码

回车后会提示输入新的密码,确认后即修改完成,使用 su root 输入密码,即可登录到 root 用户

【更换源】

Ubuntu 的软件源配置文件是 /etc/apt/sources.list,首先执行以下命令,将系统自带的该文件做个备份

1
cp /etc/apt/sources.list /etc/apt/sources_back.list

然后使用 vim,打开 sources.list,添加清华源,注意要添加版本一致的源

1
vim /etc/apt/sources.list

清华源镜像查询:点击这里

添加完成后,执行以下命令进行更新

1
apt-get update && apt-get upgrade

【迁移到非系统盘】

说明:在命令提示符界面中,输入 wsl --terminate 可以查看 wsl 所有相关命令

1.终止正在运行的分发
1
wsl --shutdown
2.导出子系统

利用 wsl --export <分发版> <文件名> 导出子系统

1
wsl --export Ubuntu-18.04 I:/WSL/Ubuntu-18.04.tar

导出完成后,可以看到文件结构如下

3.注销原分发

利用 wsl --unregister <分发版> 来注销分发,以免出现重复

1
wsl --unregister Ubuntu-18.04

此时,再利用 wsl --list 命令查询,可以发现当前没有分发版本

4.导入子系统

利用 wsl --import <分发版> <安装位置> <文件名> 导入之前导出的分发

1
wsl --import Ubuntu-18.04 I:/WSL/Ubuntu-18.04 I:/WSL/Ubuntu-18.04.tar

此时,可以看到新导入的分发

5.设置非 root 用户启动

重新导入后,不能像之前那样在应用商店中更新,同时默认以 root 账户启动,这显然存在安全隐患

在命令提示符窗口中,输入 regedit 打开注册表,找到当前用户,其中 S-1-5-18 代表 SYSTEM,S-1-5-19 代表 LocalService,S-1-5-20 代表 NetworkServer,S-1-5-21-...代表当前用户

接下来在当前用户下的 \Software\Microsoft\Windows\CurrentVersion\Lxss 中找到要更改默认账户的分发版

在 WSL 中利用 cat /etc/passwd 命令获取 Uid,这里的值是 1000,换算成十六进制是 3E8

对注册表中的 DefaultUid 进行编辑,将其值设为 3E8 即可

【Hyper-V 虚拟机的安装】

新建文本文件,复制以下内容,另存为 Hyper-V.cmd

1
2
3
4
5
6
7
8
9
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

之后右键,以管理员身份运行,配置完成后输入 Y 重启计算机即可

重启后重新启动 WSL2 功能即可

1
wsl --set-default-version 2
感谢您对我的支持,让我继续努力分享有用的技术与知识点!