说明
这段时间尝试使用了windows的linux子系统功能,自行配置了systemd,发现步骤较为繁琐,恰巧有个大佬写了个自动配置的一键脚本,在这里介绍一下。
环境
wsl2 kali-linux
使用提示
该脚本仅限于wsl2,请勿在其他环境中使用。
经个人测试,可以正常使用。
详细注意事项请参见大佬的项目地址。
使用方法
- 下载仓库的zip文件并解压到windows任意路径(这里以C:/script/)为例
- 进入kali-wsl环境
- 在home目录下运行
1 | cp -r /mnt/c/script ~ |
- 等脚本完成后退出并重新进入wsl即可
- 如果开机脚本出现问题,你可以在用户home目录下新建文件.disable来关闭开机脚本,具体可以在windows资源管理器下新建文本文档并重命名或在wsl用户home目录下运行
1 | touch ~/.disable |
已知问题
genie会在启动systemd时替换PATH为一个较为安全的PATH,这会导致systemd环境下无法查找到windows的程序,这里提供的解决方法为在脚本运行完后修改/etc/genie.ini文件,将clone_path设置为true,然后使用/etc/profile.d/.init.d/enable-systemd.sh.bak替换/etc/profile.d/.init.d/enable-systemd.sh。即在修改完/etc/genie.ini文件的clone_path后运行如下代码
1
2cd /etc/profile.d/.init.d
sudo mv enable-systemd.sh.bak enable-systemd.shgenie可能会出现无限等待情况,请将/etc/genie.ini中的systemd-timeout设置为较短时间即可解决,此问题只会出现在wsl2开机的时候。
Ubuntu wsl2在替换zsh后会出现bug,即不会运行/etc/profile,可以将如下代码添加到.zshrc文件尾来修复
1
source /etc/profile
DISPLAY变量与xrdp(kex-win的ESM模式)不兼容,使用如下命令修复
1
sudo rm /etc/profile.d/.init.d/display.sh