VERDVANA'S BLOG Verdvana

WSL2与图形化界面安装


封面


1 前言

        玩Linux(其实就主要玩过Ubuntu)有六七年了,起初用虚拟机安装,配置简单、便携性好等都是不可替代的优点。但是需要与物理机共用资源就使得性能提不上去。后来采用双系统的方案,这唯一的缺点是如果在使用过程中需要进行在Windows下使用某个软件之类的操作,就必须重启开Windows,有一些麻烦。

        2017年(好像是)Win10内置了Linux子系统(Windows Subsystem for Linux,WSL),当时安装上试了一下,因为没有图形化界面,纯指令操作对新手不太友好(其实现在也是个Linux新手),而且一些EDA软件确实需要GUI,所以就没咋用。后来看到可以安装图形界面,就折腾了一下。

        这里还涉及到WSL1和WSL2,听说WSL2才真的有Linux内核,但是采用了虚拟机的模式,网卡地址跟Windows不共享有点麻烦,官方给出的对比如下:

功能 WSL1 WSL2
Windows和Linux之间的集成
启动时间短
与传统虚拟机相比,占用资源量少
可与与当前版本的VMWare和VirtualBox一起运行
托管VM
完整的Linux内核
完全的系统调用兼容性
跨OS文件系统的性能

        具体我也不太懂,具体情况参阅官方文档:比较WSL1和WSL2

  • 操作系统:
    • Windows 11 Pro 21H2
    • WSL2 (Ubuntu 20.04 LTS)

2 启用功能

        Windows默认情况下时没有开启Linux子系统的,WSL2需要的Hyper-V功能。因此需要启用这两个功能。

        打开“控制面板”,进入“程序和功能”,选择“启用或关闭Windows功能”:

img3

        把“Hyper-V”和“适用于Linux的Windows子系统”打勾:

img4


3 安装WSL2

3.1 安装WSL

        默认情况下WSL是安装在C盘的“C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc”路径下,如果不想占用C盘空间,可以把这个文件夹link到其他盘,比如我link到D盘的“Ubuntu”文件夹下。打开一个cmd(不是PowerShell),输入如下指令:

mklink /j C:\Users\verdv\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc D:\Ubuntu

        再去D盘把这个文件夹权限改为“完全控制”。

        然后去Microsoft Store下载Linux,这里选择的时Ubuntu 20.04 LTS:

img1

3.1 更新至WSL2

        这里下载的Ubuntu 20.04 LTS是WSL1,想要升级到WSL2需要下载Linux内核更新包并安装。

img2

        启动Linux,首次登陆会提醒输入用户名和密码:

img5

        这时候开启一个PowerShell用命令查看WSL版本:

wsl -l -v

        可以看到Version已经是2了:

img6

        如果不是,使用如下命令升级为wsl2:

wls --set-version Ubuntu-20.04 2

        并且使用如下命令使默认版本为wsl2:

wls --set-default-version 2

4 安装图形化界面

4.1 安装GUI

        更新源:

sudo apt update && sudo apt -y upgrade

        安装远程桌面协议xrdp:

sudo apt install -y xrdp

        安装图形化界面:

sudo apt install -y xfce4

        安装过程中会出现默认显示管理选项:

img7

        这里选择“lightdm”,等待安装完成。

4.2 配置更改

        安装完成之后,首先备份xrdp设置:

sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak

        修改xrdp端口,默认端口为3389,这里修改至3390:

sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini

        修改分辨率:

sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini

        把修改好的设置写入xsession:

echo xfce4-session > ~/.xsession

        最后需要修改启动脚本,打开脚本文件:

sudo vim /etc/xrdp/startwm.sh

        把最后两句加上注释,并且在最后加上启动命令:

……

# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession

# xfce
startxfce4

        保存并退出,


5 启动图形界面

        输入如下指令启动xrdp:

sudo /etc/init.d/xrdp start

        启动成功会有如下显示:

img8

        打开Windows下的远程桌面,找不到的话可以在搜索框中搜索:

img9

        打开之后点击“显示选项”,然后在“计算机”后面填写本地host以及刚刚的端口号,用户名填写之前在Linux中设置的用户名,选中“允许我保存凭据”方便下次登录:

img10

        之后点击“确定”,会弹出如下对话框:

img11

        选择“是”。初次登陆会提示输入登陆密码,就是之前在Linux中设置的密码:

img12

        密码正确则会打开图形化界面:

img13

        大功告成,但是界面好像有点卡顿,之后研究研究解决一下。

        下次再启动图形界面时输入如下指令可以重启xdrp:

sudo service xrdp restart

        告辞。