打包
wsl --export Ubuntu-20.04 E:\Ubuntu\ubuntu.tar.gz
注销之前
wsl --unregister Ubuntu-20.04
导入
wsl --import Ubuntu-20.04 E:\Ubuntu\ E:\Ubuntu\ubuntu.tar.gz --version 2
设置默认登陆用户为安装时用户名
ubuntu2004.exe config --default-user dwb
更新清华镜像
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装ubuntu-desktop
sudo apt install ubuntu-desktop
安装systemctl
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
安装完毕后,输入sudo vi ~/.bashrc
,在文件末尾添加:
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export XDG_SESSION_TYPE=x11
安装xfce4桌面
sudo apt-get install xfce4 xfce4-terminal #安装xfce4桌面
echo -e "\n##DISPLAY Configuration" >> ~/.bashrc #配置声明
echo "export DISPLAY=127.0.0.1:0.0" >> ~/.bashrc #添加配置
source ~/.bashrc #配置生效
/usr/bin/startxfce4: X server already running on display :0.0
xrdb: Connection refused
xrdb: Can't open display ':0.0'
Unable to init server: Could not connect: Connection refused
xfce4-session: Cannot open display: .
# 首先需要查看Windows系统和WSL2通信使用的虚拟网卡地址
$ sudo vim /etc/resolv.conf
# nameserver后面的地址就是Windows系统虚拟网卡的地址,记一下,同时需要取消下面两行内容的注释,禁用自动重新生成配置文件,否则重启后这个地址会变
[network]
generateResolvConf = false
$ vim ~/.bashrc
# 在文件最后追加下面内容,地址使用上面查看到的
export DISPLAY=192.168.112.1:0// 网址替换为Windows下以太网适配器的ip
VcXsrv下载网址
VcXsrv Windows X Server download | SourceForge.net
解决删除文件后 WSL2 磁盘空间不释放的问题
原因
wsl2下删除文件windows下的硬盘空间是不会变化的,WSL2
本质上是虚拟机,所以 Windows
会自动创建 vhdx
后缀的虚拟磁盘文件作为存储。这个 vhdx
后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。
备份(可选)
在 PowerShell
中执行:
# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 备份指定的 Linux distribution 到指定的位置
wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
如果后续步骤出现错误,可以从备份的文件中恢复。本人后续步骤并没有出现错误,所以并没有实践恢复的操作。
有需要的读者可以参考:wsl2-backup-and-restore-images-using-import-and-export
压缩虚拟磁盘文件
在 PowerShell
中执行:
# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart
在新打开的 DiskPart
命令窗口中执行:
# 选择虚拟磁盘文件
select vdisk file="C:\Users\richa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
# 压缩文件
compact vdisk
# 压缩完毕后卸载磁盘
detach vdisk
上述操作执行完毕,WSL2
删除文件后空出来的磁盘空间就被释放了。