Eastsheng's Wiki

Windows10—Linux—子系统

2022-03-08 23:56:48

[toc]

Windows10子系统–Linux

步骤 1 - 启用适用于 Linux 的 Windows 子系统

  • 需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

  • 以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell”> 单击右键 >“以管理员身份运行”),然后输入以下命令:

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

步骤 2 - 检查运行 WSL 2 的要求

  • 若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本。

步骤 3 - 启用虚拟机功能

  • 安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。

  • 以管理员身份打开 PowerShell 并运行:

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

步骤 4 - 下载 Linux 内核更新包

步骤 5 - 将 WSL 2 设置为默认版本

1
wsl --set-default-version 2

步骤 6 - 安装所选的 Linux 分发

  • 打开 Microsoft Store,并选择你偏好的 Linux 分发版。
  • 单击以下链接会打开每个分发版的 Microsoft Store 页面:
    Ubuntu 20.04 LTS

  • 在分发版的页面中,选择“获取”。
  • 首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。

创建用户帐户和密码。

  • 使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。

  • 此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。

  • 创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。

  • 此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。

  • 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。

打开子系统的主目录

1
explorer.exe .

把子系统(WSL)搬到非系统盘

  • 下载并解压LxRunOffline-v3.5.0-msvc.zip
  • 查看安装的子系统
    1
    LxRunOffline.exe list
  • 子系统迁移
    1
    LxRunOffline.exe move -n Ubuntu-20.04 -d D:\Ubuntu

子系统访问电脑目录

1
cd /mnt

启动、停止WSL

1
2
3
4
# 停止LxssManager服务
net stop LxssManager
# 启动LxssManager服务
net start LxssManager

WSL2可视化界面

WLS2+Ubuntu+Windows远程桌面连接

WSL2问题与解决方案

若远程连接不上

  • 检查ip是否正确;
  • 若不是ip问题,在命令行输入以下命令:
    1
    2
    3
    4
    5
    sudo apt-get update
    sudo apt-get install xrdp
    sudo apt-get install vnc4server
    sudo apt-get install xubuntu-desktop
    sudo service xrdp restart #主要是是这一命令

参考的对象类型不支持尝试的操作。

  • 打开WSL Terminal后出现:

    1
    2
    参考的对象类型不支持尝试的操作。
    [已退出进程,代码为 4294967295]
  • 解决方法:

  • 临时解决:管理员身份打开Windows PowerShell,输入
1
netsh winsock reset
  • 永久解决:
    • 下载NoLsp.exe,需要梯子
    • 管理员身份打开Windows PowerShell,输入
1
.\NoLsp.exe C:\windows\system32\wsl.exe
  • 永久解决!!!

WLS2连接不上网络

1
2
3
4
5
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'

参考链接

其他扩展