如何在 Windows 10 下为 Linux 自动设置和配置 Windows 子系统?
How can I automatically setup and configure the Windows Subsystem for Linux under Windows 10?
当我在 Windows 10 上设置 WSL 时,它要我手动配置它:
https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
这不适用于自动化。有没有一种方法可以安装和配置它,使其不需要手动设置?
虽然 MSDN 文档指的是一个交互式过程,但您可以执行一些 cmdlet 和命令,无需手动干预即可进入工作状态。
以下信息假定您 运行 来自现代 PowerShell 实例,并将以管理员身份在该环境中执行。
Enable Developer Mode. This provides you the option and availability to install the Windows Subsystem for Linux (feature).
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock"/t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
完成此操作后,您可以在 "Update & security" 设置的 "For developers" 部分看到开发者模式现已打开。
Install the Windows Subsystem for Linux (Beta) feature, and suppress the reboot prompt.
Enable-WindowsOptionalFeature `
-Online `
-NoRestart `
-FeatureName Microsoft-Windows-Subsystem-Linux
可选择观察 Windows 功能中 Windows Linux 子系统(测试版)现在可用。
不幸的是,似乎无法在不重新启动的情况下使用该环境。我们调用的二进制文件甚至还没有出现在 system32
中。
Reboot the machine
Restart-Computer -Force
请注意 -Force
不会等待程序结束并正常终止。我把它放在这里是为了防止不守规矩的进程挂起重启过程的情况。
Extract and prep the WSL environment
& lxrun /install /y
&
通过 cmd.exe
执行命令,因为 lxrun
不是 PowerShell cmdlet,而是可执行文件。 lxrun /install
提取您的新 Linux 文件系统,并且 /y
不需要创建用户或密码,这让您无需密码 root
.
压缩:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock"/t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
Enable-WindowsOptionalFeature `
-Online `
-NoRestart `
-FeatureName Microsoft-Windows-Subsystem-Linux
Restart-Computer -Force
# once your machine is back up... execute:
& lxrun /install /y
额外资源material:
- https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development
- https://github.com/Microsoft/BashOnWindows/issues/1445
- https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/restart-computer
- https://gallery.technet.microsoft.com/scriptcenter/Enable-developer-mode-27008e86
当我在 Windows 10 上设置 WSL 时,它要我手动配置它:
https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
这不适用于自动化。有没有一种方法可以安装和配置它,使其不需要手动设置?
虽然 MSDN 文档指的是一个交互式过程,但您可以执行一些 cmdlet 和命令,无需手动干预即可进入工作状态。
以下信息假定您 运行 来自现代 PowerShell 实例,并将以管理员身份在该环境中执行。
Enable Developer Mode. This provides you the option and availability to install the Windows Subsystem for Linux (feature).
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock"/t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
完成此操作后,您可以在 "Update & security" 设置的 "For developers" 部分看到开发者模式现已打开。
Install the Windows Subsystem for Linux (Beta) feature, and suppress the reboot prompt.
Enable-WindowsOptionalFeature `
-Online `
-NoRestart `
-FeatureName Microsoft-Windows-Subsystem-Linux
可选择观察 Windows 功能中 Windows Linux 子系统(测试版)现在可用。
不幸的是,似乎无法在不重新启动的情况下使用该环境。我们调用的二进制文件甚至还没有出现在 system32
中。
Reboot the machine
Restart-Computer -Force
请注意 -Force
不会等待程序结束并正常终止。我把它放在这里是为了防止不守规矩的进程挂起重启过程的情况。
Extract and prep the WSL environment
& lxrun /install /y
&
通过 cmd.exe
执行命令,因为 lxrun
不是 PowerShell cmdlet,而是可执行文件。 lxrun /install
提取您的新 Linux 文件系统,并且 /y
不需要创建用户或密码,这让您无需密码 root
.
压缩:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock"/t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
Enable-WindowsOptionalFeature `
-Online `
-NoRestart `
-FeatureName Microsoft-Windows-Subsystem-Linux
Restart-Computer -Force
# once your machine is back up... execute:
& lxrun /install /y
额外资源material:
- https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development
- https://github.com/Microsoft/BashOnWindows/issues/1445
- https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/restart-computer
- https://gallery.technet.microsoft.com/scriptcenter/Enable-developer-mode-27008e86