Ubuntu是一个以桌面应用为主的Linux操作系统,很久以前我就听说过它的大名。但当我询问如何在Windows系统里面安装一个时,我才得知要使用VM Ware等虚拟机软件,我也就没有去折腾了。不过买新电脑之后发现Win10自带一个Windows Subsystem for Linux的虚拟机功能,就来尝试一下。期间我也遇到了占用空间过大,apt速度慢等问题,这里也顺带说一下解决方案。
但其实到最后我发现装了这个Ubuntu,除了对Shell Script的原生支持以外,对我也没有多少用处(
1. 安装WSL与Ubuntu
要安装WSL,我们首先需要用管理员权限在powershell中打开两个功能,分别是WSL本身和虚拟化:
| 1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart | 
这个时候我们用wsl这个命令来检查一下是否可用。如果一切正常,使用wsl --install命令就可以安装最新版本的Ubuntu。如果你不想安装Ubuntu而是别的系统的话,可以使用如下语法:
| 1 | wsl --install -d <Version> | 
等安装完毕,之后的话就是设置用户名和密码,这里就不细说了。
2. 转移Ubuntu文件位置
之后你就可以用apt来安装你需要的包了,不过安装几个较大的包比如nodejs和python之后,你会发现C盘突然被Ubuntu占用了很多,像我一下子就60%~70%。这个时候我就打算把Ubuntu移到D盘去,幸运的是,这只需要几个步骤。
首先,wsl -l获取自己的Ubuntu版本号,像我是Ubuntu-20.04。然后我们停止系统的运行,导出整个系统,并反注册。wsl会生成一个打包的tar文件,我们再导入即可:
| 1 | wsl --export Ubuntu-20.04 d://ProgramFiles//Ubuntu//ubuntu-20.04.tar | 
然后我们用wsl命令来看一下是否注册成功。但这个时候有个问题:你的用户名变成了root。这个时候我们在Ubuntu里面执行:
| 1 | myUsername=<username> | 
就可以把名字改回来。之前生成的系统tar文件也就可以删除了。最后我们用管理员权限打开powershell重启Ubuntu系统,来应用所有更改:
| 1 | net stop LxssManager | 
(wsl的运行依靠LxssManager,具体也不用太管)
3. 修改Ubuntu镜像源
首先进入apt的文件夹:
| 1 | cd /etc/apt/ | 
然后对原先的配置文件做一个镜像,
| 1 | sudo cp -a sources.list sources.backup.list | 
到清华镜像官方获取到ubuntu的链接,比如20.04是这样:
| 1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 | 
然后用vim或nano编辑sources.list,清空后全部粘贴,保存退出。重启wsl,并使用
| 1 | sudo apt update | 
来确认是否切换到清华的镜像源了。
4. 安装xfce4图形界面
既然有了命令行的Ubuntu,我们能不能拥有它的GUI呢?我们可以借助xfce4搭配远程桌面来搭建一个图形界面。
这里不建议使用xfce4,容易黑屏、报错,建议直接参考第5步,安装gnome桌面。
4.1 安装依赖
安装xrdp、xfce4和xfce4-goodies。中间一路回车即可(会有一个粉色的界面)。
| 1 | sudo apt install xrdp xfce4 xfce4-goodies | 
4.2 修改xrdp配置
先对原配置做一个备份:
| 1 | sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak | 
然后,执行
| 1 | sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini | 
就会自动修改。然后执行
| 1 | echo xfce4-session > ~/.xsession | 
把光标移到文件的最后两行,用#号注释掉,然后新增两行,最后效果如下:
| 1 | # test -x /etc/X11/Xsession && exec /etc/X11/Xsession | 
保存并退出(Ctrl+X,按y并回车,退出)。
4.3 启动远程桌面
首先复制如下代码:
| 1 | sudo /etc/init.d/xrdp start | 
然后vim或nano打开bash.bashrc添加一个别名:
| 1 | alias remote="sudo /etc/init.d/xrdp start" | 
重启wsl。然后输入remote,就会启动服务器。用Win10自带的远程桌面连接localhost:3390,会跳出来一个蓝色框,输入自己Ubuntu的用户名和密码,就可以进入Ubuntu的远程桌面了。
5. gnome图形界面
这个gnome图形界面是要求WSL2的,如果你是Win10则默认是WSL1。先确认一下:
| 1 | wsl -l -v | 
如果是WSL1的话则需要安装升级包:微软官网,下载下来安装即可。然后管理员执行:
| 1 | wsl --set-version Ubuntu-20.04 2 | 
它就会自动升级为WSL2。然后进入wsl,执行
| 1 | sudo apt update | 
来安装依赖systemd。安装好之后重启:
| 1 | wsl --shutdown | 
输入
| 1 | systemctl | 
如果它不回复你
System has not been booted with systemd as init system (PID 1). Can’t operate.
那就说明你做对了,随后我们来安装gnome桌面(确保你已经把Ubuntu切换到了D盘或其他,因为会占用3个G左右):
| 1 | sudo apt update | 
然后安装xrdp:
| 1 | sudo apt install -y xrdp | 
配置防火墙:
| 1 | sudo ufw allow 3389 | 
这个时候远程连接localhost:3389即可。会要求你输入账号密码,进入图形界面后还是要你输入密码。如果一切正常的话,你的gnome图形界面就安装成功了!
注:如果你在升级WSL2后发现sudo apt update卡死了,别怕重装一次Ubuntu,重新执行1~3步即可。
至此,你已经拥有了WSL中的Ubuntu,并且更改了镜像源,成功地开启了远程桌面。听说Linux系统中有意思的命令还挺多的,那下一篇文章就来讲讲这个。
致谢
这里写一下我参考到的文章:
THE END感谢您的阅读~

 
        