Hvordan kan jeg automatisk oprette og konfigurere Windows Subsystem til Linux under Windows 10?

Indlæg af Hanne Mølgaard Plasc

Problem



Når jeg opretter WSL på Windows 10, vil jeg have det manuelt at konfigurere det:


https://msdn.microsoft.com/en-us/commandline/wsl/install\_guide[14]


Det virker ikke godt for automatisering. Er der en måde, hvorpå jeg kan installere og konfigurere den sådan, at den ikke kræver manuel opsætning?

Bedste reference


Selv om MSDN-dokumentationen refererer til en interaktiv proces, er der en håndfuld cmdlets og kommandoer, du kan udføre for at få dig til en brugbar tilstand uden manuel indgriben.


Følgende oplysninger forudsætter, at du kører fra en moderne instans af PowerShell, og vil blive udført i dette miljø som administrator.






  Aktivér udviklertilstand. Dette giver dig mulighed for og tilgængelighed til at installere Windows Subsystem for Linux (feature). [15]



reg add "HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock"/t REG\_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"


Når dette er gennemført, kan du observere det i afsnittet 'For udviklere' af 'Opdatering og sikkerhed' -indstillinger, som udviklertilstand nu er slået TIL.


developer mode på [16]



  Installer Windows Subsystem for Linux (Beta) -funktionen, og undertryk genstartprompten.



Enable-WindowsOptionalFeature `
    -Online `
    -NoRestart `
    -FeatureName Microsoft-Windows-Subsystem-Linux


Muligvis bemærke, at i Windows-funktionerne, at Windows Subsystem for Linux (Beta) nu er tilgængelig.


wsl funktion er nu tilgængelig [17]


Desværre virker det ikke muligt at bruge miljøet uden genstart. De binære filer, vi kalder ind, er ikke engang til stede i system32 endnu.



  Genstart maskinen



Restart-Computer -Force


Vær opmærksom på at -Force ikke venter på, at programmerne afsluttes og dræbes yndefuldt. Jeg har placeret dette her for at forhindre scenarier, hvor uretfærdige processer kan hænge genstartsproceduren.



  Uddrag og forbered WSL-miljøet



& lxrun /install /y


WSL-udvindingsmiljø [18]


& udfører en kommando via cmd.exe, da lxrun ikke er en PowerShell cmdlet, men snarere en eksekverbar. lxrun /install udtrækker dit nye Linux-filsystem, og /y undertrykker behovet for at oprette en bruger eller en adgangskode, som efterlader dig med adgangskode-mindre root.


bruger WSL-miljø [19]





Condensed:


reg add "HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock"/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





Yderligere ressource materiale:



  • [20] https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development

  • [21] https://github.com/Microsoft/BashOnWindows/issues/1445

  • [22] https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/restart-computer

  • [23] https://gallery.technet.microsoft.com/scriptcenter/Enable-developer-mode-27008e86