压缩和迁移wsl2.0的ubuntu子系统虚拟磁盘

在使用一段时间wsl2.0的ubuntu子系统后,ubuntu的虚拟磁盘会变得特别大,而且默认还是C盘.因此需要处理.要么压缩,要么移动到别的盘

一、压缩磁盘

参考:https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168

wsl --shutdown
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

压缩前大小

执行操作

压缩后大小:

有大佬将命令写成了脚本,也不错

https://github.com/mikemaccana/compact-wsl2-disk

二、迁移磁盘

参考:https://segmentfault.com/a/1190000038912621

看样子就是将子系统打包然后再重新导入,我没有实际操作,因为我C盘目前够用了,不想折腾了

三、wsl系统的ssh,docker设置开机自启动

3.1、在子系统里面写一个小脚本

[root@ubuntu ~]$ cat /etc/init.wsl 
#! /bin/sh
service ssh start
service docker start

3.2、给用户配置sudo免密

[root@ubuntu ~]$ tail -1 /etc/sudoers
david   ALL=(ALL) NOPASSWD:ALL

3.3、在windows的“%AppData%\Microsoft\Windows\Start Menu\Programs\Startup” 目录内创建一个ubuntu.vbs的文件,内容如下:

Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu-18.04 -u root /etc/init.wsl start", vbhide