wsl2配置启用systemd一键脚本

说明

这段时间尝试使用了windows的linux子系统功能,自行配置了systemd,发现步骤较为繁琐,恰巧有个大佬写了个自动配置的一键脚本,在这里介绍一下。

环境

wsl2 kali-linux

使用提示

该脚本仅限于wsl2,请勿在其他环境中使用。
经个人测试,可以正常使用。
详细注意事项请参见大佬的项目地址。

使用方法

  1. 下载仓库的zip文件并解压到windows任意路径(这里以C:/script/)为例
  2. 进入kali-wsl环境
  3. 在home目录下运行
1
2
3
cp -r /mnt/c/script ~
cd ~/script
bash install.sh
  1. 等脚本完成后退出并重新进入wsl即可
  2. 如果开机脚本出现问题,你可以在用户home目录下新建文件.disable来关闭开机脚本,具体可以在windows资源管理器下新建文本文档并重命名或在wsl用户home目录下运行
1
touch ~/.disable

已知问题

  1. 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
    2
    cd /etc/profile.d/.init.d
    sudo mv enable-systemd.sh.bak enable-systemd.sh
  2. genie可能会出现无限等待情况,请将/etc/genie.ini中的systemd-timeout设置为较短时间即可解决,此问题只会出现在wsl2开机的时候。

  3. Ubuntu wsl2在替换zsh后会出现bug,即不会运行/etc/profile,可以将如下代码添加到.zshrc文件尾来修复

    1
    source /etc/profile
  4. DISPLAY变量与xrdp(kex-win的ESM模式)不兼容,使用如下命令修复

    1
    sudo rm /etc/profile.d/.init.d/display.sh

项目地址

script-for-kali-wsl2