wsl2安装archlinux并配置KDE图形化界面-基于Tig
wsl2安装archlinux并配置KDE图形化界面-基于TigerVNC
参考网上的教程,我在wslg+manjaro上实现了KDE部分软件以及xfce4桌面的可视化,但始终不能实现KDE桌面的可视化。
搜索一番后发现kali发行版声称在wsl2上提供了完整的kali桌面体验,完全兼容wslg,共享剪贴板,分别采用TigerVNC、VcXsrv、xrdp,实现了窗口模式、无缝模式和增强模式。
结合目前的需求和网上的教程,终于用TigerVNC实现了wslg+manjaro上KDE桌面的可视化。
由于Distrod、github、LxRunOffline均暂未提供manjaro的快捷安装方式,我使用的是wsl官网演示的虚拟机+docker导出再导入的套娃方法。对于wsl而言,manjaro和archlinux没有太大差异。因此这里以archlinux为例,快速搭建arch软件源+kde可视化桌面,同时验证该方法在arch系发行版的通用性。
此外,Windows商店在2023.01.23上架了Arch WSL,根据评论和测试,不支持中文本地化,暂不做考虑。
参考
- Win-KeX | Kali Linux Documentation
- 使用 WSL 在 Windows 上安装 Linux
- 在 适用于 Linux 的 Windows 子系统 上运行 Linux GUI 应用
- 旧版 WSL 的手动安装步骤
- Distrod - WSL2 Distros with Systemd!
- Arch Linux更换中科大源
- Setting up Arch Linux with KDE Plasma in Windows Subsystem for Linux 2
先决条件
- wsl:win 10 2004+(内部版本19041+)或win 11,提供在windows上使用linux程序、操作linux文件系统的能力,比传统的虚拟机或双启动设置占用内存和硬盘少。低版本需要手动安装,此处不介绍。
- wslg:win 10 内部版本19044+或win 11,自动创建linux程序的图形化界面快捷方式,并可以使用alt-tab切换linux和windows窗口。
- (可选)虚拟GPU,启用硬件加速OpenGL渲染。包括Intel、AMD、NVIDIA显卡的驱动程序。对硬件加速没有特别要求的可以跳过,不影响图形显示。
安装WSL
- 在window徽标右键单击
- 以管理员模式打开powershell或cmd或终端
- 在终端输入如下命令并回车以启用wsl功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 重启
- 再次以管理员模式打开终端,输入以下命令并回车以启用虚拟机平台功能:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 再次重启
- 下载wsl2 linux内核更新包并运行
- 再次以管理员模式打开终端,输入以下命令并回车以设置wsl默认版本为wsl2:
wsl --set-default-version 2
安装archlinux发行版并创建用户
- 下载Distrod以安装多个linux发行版并让wsl2支持systemd。
- 解压缩Distrod_wsl_launcher压缩包,双击运行其中的
distrod_wsl_launcher.exe
。 - 在终端中输入
2
,以从linuxcontainers.org获取拥有的wsl2发行版列表。 - 在终端中输入
archlinux
,获取linuxcontainers.org拥有的archlinux版本 - 在终端中输入
1
,下载当前版本。将archlinux安装于%LocalAppData%\Distrod
,该发行版默认名为Distrod。 - 输入linux用户名以创建用户,无需和windows用户名一致。
- 创建用户密码,输入时不会显示,回车即可。
- 再次输入密码,回车。
- Distrod完成安装,会自动以创建的用户和bash登录archlinux。
- 在窗口输入
sudo /opt/distrod/bin/distrod enable
确保systemd被启用。 - 在窗口输入
sudo nano /etc/wsl.conf
,使用nano文本编辑器创建/etc/wsl.conf文件,输入以下内容并按下 <kbd>ctrl+c ctrl+x</kbd>设置默认登录用户。
[user]
default=你创建的用户名
- 关闭该窗口。
终端操作wsl的基本用法
- [建议]从微软商店下载 Windows Terminal,或者从网上下载conemu、tabby等对wsl提供支持的终端并打开。
- 单击终端标题栏的加号右侧按钮,单击Distrod即可登录到archlinux,若没有Distrod需要单击设置,在配置中进行刷新/复制。
- 可选的方式是在powershell或cmd中输入
wsl -d Distrod
登录到archlinux。 - 按下 <kbd>ctrl+d</kbd> 退出archlinux。如果在powershell终端登录到wsl,将退出到powershell,如果在单独窗口登录,将关闭该窗口。
- 在powershell中输入
wsl -d Distrod
登录到Distrod;输入wsl -t Distrod
终止Distrod;输入wsl --shutdown
立刻终止所有发行版和wsl虚拟机。
[可选]重新分配archlinux安装位置和名称
用Distrod安装的发行版默认名为Distrod
,且虚拟磁盘位于C盘的隐藏目录%LocalAppData%。如果希望发行版的名字更加明确或更换虚拟磁盘位置(以发行版名称改为arch、安装到E盘为例),按本节进行操作。如果没有这些需求,跳过本节,但需要注意后续章节中所有wsl/wslg xxx arch xxx
命令和快捷方式均需将arch替换为Distrod。
- 在终端打开powershell,输入:
wsl --shutdown
wsl -l -v #查看当前安装的发行版
mkdir E:arch_wsl #创建存放的目录,自己选择合适的存储路径,注意导入时无法放在根目录,有条件的可放在固态硬盘,读取、导入、导出均会更快
wsl --export Distrod E:arch_wsl/arch_bk.vhdx --vhd #导出为虚拟磁盘文件
#或者 wsl --export Distrod E:arch_wsl/arch.tar导出为压缩包,经测试输出vhdx文件更快,因为就是复制粘贴,而tar还需要进行压缩
wsl --import arch E:arch_wsl E:arch_wsl/arch_bk.vhdx --vhd #导入archlinux,安装位置为E:arch_wsl
#或者 wsl --import arch E:arch_wsl E:arch_wsl/arch_bk.tar
wsl -d arch #登录到arch,确保能够登录到archlinux,且登录用户为创建的用户
ctrl+d登出archlinux
wsl --unregister Distrod #删除Distrod发行版
wsl -l -v #查看当前安装的发行版
为archlinux配置KDE桌面并可视化
为archlinux换源
- 打开终端,登入arch
- 输入
sudo nano /etc/pacman.d/mirrorlist
添加中科大镜像源,在第一行添加以下内容后按下 <kbd>ctrl+s ctrl+x</kbd>退出:
Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
- 输入
sudo nano /etc/pacman.conf
添加archlinuxcn镜像源。找到#ParallelDownloads = 5
,将#号删除,根据网络情况更改并行下载数,在最后一行添加以下内容后按下 <kbd>ctrl+s ctrl+x</kbd>退出:
[archlinuxcn]
Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch
- 在终端输入:
sudo pacman -Syyu #更新系统
sudo pacman -S archlinuxcn-keyring #导入GPG密钥
sudo pacman -S fish yay #安装fish外壳和yay包管理器
下载、配置kde桌面和常用软件
- 在终端输入:
yay -S plasma konsole dolphin yakuake spectacle kate breeze-icons wqy-zenhei
此时就安装了kde系的图形化系统设置、终端、文件管理器、文本编辑器图标及中文字体。在开始菜单应该就可以找到konsole(arch)、kate(arch)等快捷方式,可以单击后打开图形化程序,yakuake、spectacle等需要捕获全局热键和桌面支持的程序还无法运作。如果没有自动生成快捷方式,在powershell中终止arch并重启以生效。
安装tigervnc并配置,使KDE桌面可视化
- 在终端输入:
yay -S tigervnc # 安装tigervnc虚拟网络控制台
vncpasswd #设置vnc的密码并确认,需要至少6位密码
sudo nano /etc/tigervnc/vncserver.users #打开vncserver的用户配置
- 在nano编辑器中,将光标移动至最后一行,输入
:1=你创建的用户名
,按下 <kbd>ctrl+s ctrl+x</kbd>。其中1可以更换为其他数,以避免重叠。 - 在终端输入:
sudo systemctl start vncserver@:1 #运行vnc服务器
vncviewer -passwd ~/.vnc/passwd 127.0.0.1:1 #运行vnc查看器,其中127.0.0.1为主机ip,可以替换为localhost或者省略
- 现在就可以进入远程KDE桌面进行图形化操作了,yakuake、spectacle等需要桌面的程序就可以正常运行了。按下F8可以打开vncviewer菜单,选择设置可以进行常用设置。
- 若要关闭该视窗,按下F8,点击disconnect可以断开连接;或者直接按×关闭vncviewer窗口。不要选择关机,否则需要重新启动vnc服务器甚至重启arch发行版。
- 在终端输入vncviewer或者在windows开始菜单搜索vncviewer可以显示图形化连接窗口,在该界面的设置会自动保存,如访问的服务器、全屏、全彩、上下文菜单快捷键、是否共享剪贴板等。
- linux上运行vncviewer的全屏模式会被windows的任务栏挡住(好处是alt-tab、win-tab可以在windows和linux窗口间切换),解决方法如下:
- F8,重新点击fullscreen
- 将windows任务栏设置为智能隐藏(并不智能)
- 在windows安装tigervnc,从windows的tigervnc访问可以确保全屏正常显示
- 如果想要在登录arch发行版时就启动vnc服务器,在终端输入
sudo systemctl enable vncserver@:1
将其设置为开启自启(会延长启动时间)。 - 如果想要为打开kde桌面创建windows快捷方式,在windows开始菜单搜索arch的任意程序快捷方式,右键打开文件所在位置,复制并创建副本,重命名为合适的名字,右键打开属性,将“目标”中
cd "~" --
后面的内容替换为vncviewer -passwd ~/.vnc/passwd :1
。更改图标为合适的图标。右键添加到开始菜单或者复制到想要存放的位置。 - 如果想要用windows上的vncviewer创建快捷方式,在windwos开始菜单搜索tigervnc(无发行版后缀),右键打开所在位置,发送到桌面后,在桌面点击快捷方式,右键打开属性,在
Windows TigerVNC安装目录\TigerVNC\vncviewer.exe
后增加-passwd \\wsl.localhost\arch\home\你创建的用户名\.vnc\passwd :1
即可。
[可选]配置中文界面
- 在arch的终端中输入:
fish #进入fish外壳
sudo nano /etc/locale.gen #打开本地化配置文件
- 找到
#en_US.UTF-8 UTF-8
和#zh_CN.UTF-8 UTF-8
,将#号删除,按下 <kbd>ctrl+s ctrl+x</kbd>退出。 - 在终端输入:
sudo locale-gen #生成本地化内容,还需要对环境变量进行设置
- 使用任意文本编辑器打开家目录下的
.bashrc
,在末尾添加:
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
export $(dbus-launch)
- 如果使用fish,在家目录/.config/fish目录下打开
config.fish
,在末尾添加:
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
export $(dbus-launch)
- 现在所有提供本地化支持的程序都将显示中文了。如果没有立刻生效,再次输入bash/fish更新环境变量。如果某些程序仍显示异常,重启arch发行版。