在 Windows 中安装 Linux 子系统

Installing Windows Subsystem for Linux

Posted by J Leaves on January 25, 2020

系统要求

  • Windows 10(支持家庭版)
  • 64 位系统
  • 版本至少是 Fall Creators Update(版本号1709)

安装准备

  1. 打开控制面板-软件和功能,左侧点击 启用或关闭 Windows 功能,勾选 使用于 Linux 的 Windows 子系统
  2. 重启电脑
  3. 打开 Microsoft Store,搜索栏输入 Linux,按照提示找到 Ubuntu,点击安装
  4. 安装完成后,找到开始菜单中的 Ubuntu,点击打开

Ubuntu 的初始化

  1. Ubuntu在第一次打开时会自动初始化,等待一段时间
  2. 输入你在 Linux 中的用户名(建议仅使用小写字母和数字),输入密码两次,完成账户创建

检查版本号

  1. 查看内核版本:输入

    1
    
    uname -r
    

    例如,显示 4.4.0-17763-Microsoft,代表 Windows 操作系统版本为 17763,WSL 的 Linux 内核版本为 4.4.0

  2. 查看 Ubuntu 的版本:输入

    1
    
    sudo lsb_release -a
    

    例如,显示

    1
    2
    3
    4
    5
    
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.2 LTS
    Release:        18.04
    Codename:       bionic
    

    代表 Ubuntu 18.04 的长期支持版本

优化网络设置

国内的网络环境下,使用官方源会非常慢,建议以下两种措施仍选其一:

  • 更换为国内的阿里源
  • 直接为 Ubuntu 设置代理

更换安装源

更换准备
  1. 提升权限:输入

    1
    
    sudo -i
    

    接着输入你刚才设置的密码,这样就不用每个命令之前加 sudo 了

  2. 备份默认源的配置文件: 默认源的配置文件位于 /etc/apt/sources.list,我们将其备份为 sources.list.old 输入

    1
    
    cp /etc/apt/sources.list /etc/apt/sources.list.old
    
使用 vim 编辑配置文件
  1. 用 vim 打开源配置文件:输入

    1
    
    vim /etc/apt/sources.list
    
  2. 删除原有内容:输入

    1
    
    :1,$d
    
  3. 输入 i 进入编辑模式,左下角显示 INSERT

  4. 单机鼠标右键,粘贴以下内容(适用于 Ubuntu 18.04)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.
    deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted
       
    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
       
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team. Also, please note that software in universe WILL NOT receive any
    ## review or updates from the Ubuntu security team.
    deb https://mirrors.aliyun.com/ubuntu/ bionic universe
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic universe
    deb https://mirrors.aliyun.com/ubuntu/ bionic-updates universe
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates universe
       
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team, and may not be under a free licence. Please satisfy yourself as to
    ## your rights to use the software. Also, please note that software in
    ## multiverse WILL NOT receive any review or updates from the Ubuntu
    ## security team.
    deb https://mirrors.aliyun.com/ubuntu/ bionic multiverse
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic multiverse
    deb https://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse
       
    ## N.B. software from this repository may not have been tested as
    ## extensively as that contained in the main release, although it includes
    ## newer versions of some applications which may provide useful features.
    ## Also, please note that software in backports WILL NOT receive any review
    ## or updates from the Ubuntu security team.
    deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
       
    ## Uncomment the following two lines to add software from Canonical's
    ## 'partner' repository.
    ## This software is not part of Ubuntu, but is offered by Canonical and the
    ## respective vendors as a service to Ubuntu users.
    # deb http://archive.canonical.com/ubuntu bionic partner
    # deb-src http://archive.canonical.com/ubuntu bionic partner
       
    deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
    deb https://mirrors.aliyun.com/ubuntu/ bionic-security universe
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security universe
    deb https://mirrors.aliyun.com/ubuntu/ bionic-security multiverse
    # deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security multiverse
    

    若为 Ubuntu 16.04,将上述所有 bionic 换为 xenial;若为 Ubuntu 20.04,将上述所有 bionic 换为 focal

  5. 按 Esc 键退出编辑模式

  6. 保存文件并退出 vim:输入

    1
    
    :wq
    
更新软件源
  1. 使新的软件源生效:输入

    1
    
    apt-get update
    
  2. 将系统和所有软件更新到最新版本:输入

    1
    
    apt-get upgrade
    

    输入 Y 同意

  3. 再次输入

    1
    
    lsb_release -a
    

    可见系统已升级到最新版本

共享主系统代理

Ubuntu 中的代理由以下环境变量控制

  • http_proxy
  • https_proxy
  • ftp_proxy

由于 WSL 默认不走 Windows 主系统中设置的代理,需要进行设置。

临时更改环境变量

以主系统中 HTTP 代理的端口号为 10809 为例,输入

1
export HTTP_PROXY=127.0.0.1:10809
shell 配置文件

shell 是 Unix 系统为用户提供命令行窗口的一类程序。bash 是最常见的 shell 之一。

shell 配置文件的地址:

  • 系统配置

    • /etc/profile
    • /etc/profile.d 文件夹中的文件

    • /etc/bashrc (仅适用于 bash )
  • 用户设置

    • ~/.bashrc(仅适用于 bash )
永久更改环境变量

若要永久更改环境变量,需要编辑 shell 的配置文件。

比如,新建或编辑 /etc/profile.d/proxy.sh 文件

1
sudo vim /etc/profile.d/proxy.sh

加入以下内容并保存

1
2
3
export http_proxy=http://127.0.0.1:10809
export https_proxy=http://127.0.0.1:10809
export ftp_proxy=http://127.0.0.1:10809

启用 SSH 连接

WSL 自带命令行窗口。若要使用第三方终端进行链接,需要在 Ubuntu 内配置 SSH。

更新 SSH 配置

输入

1
vim /etc/ssh/sshd_config

找到以下行,使用 vim 将其内容更改如下

1
2
3
Port 8022
ListenAddress 0.0.0.0
PasswordAuthentication yes

(编辑文件的方法:输入 i 进入编辑模式,编辑完成后按 Esc 键退出编辑模式,输入 :wq 保存并退出。下文不再赘述)

输入

1
service ssh start

生成 SSH 密钥

若提示

1
sshd: no hostkeys available -- exiting

则代表未检测到有效的密钥,输入以下命令即可

1
ssh-keygen -A

安装桌面系统

Ubuntu 自带的只有命令行界面,如果先要像 Windows 一样有图形界面的画,还需要额外的配置。

我们需要安装以下软件:

  • xfce:轻量的 Linux 桌面环境
  • xfce goodies(可选):在 xfce 桌面内的扩展包,为 xfce 桌面带来 terminal 支持等
  • xrdp:在 Linux 内支持微软远程桌面(Remote Desktop Protocol, RDP)的连接
  1. 安装 xfce:输入

    1
    
    apt-get install xfce4
    

    输入 Y 同意

  2. 安装 xfce goodies:输入

    1
    
    apt-get install xfce4-goodies
    

    输入 Y 同意

  3. 安装 xrdp:输入

    1
    
    apt-get install xrdp
    

    输入 Y 同意

  4. 配置 xrdp 端口:输入

    1
    
    sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
    
  5. 启动 xrdp 服务:输入

    1
    
    service xrdp start
    

连接桌面

  1. 打开微软远程桌面连接 mstsc.exe

  2. 输入地址

    1
    
    127.0.0.1:3390
    

    点击连接

  3. 忽略安全警告,点击 是

  4. 输入 Linux 用户名和密码,点击 Yes

  5. 选择 Use default config,然后就成功进入 xfce 桌面了