From d0889ae6dc12f4ee60c99b9969c2f200e90002ff Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 9 Aug 2024 16:02:33 +0200 Subject: [PATCH] Set up shared WSL --- scripts/Windows/OS/Install.ps1 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/OS/Install.ps1 b/scripts/Windows/OS/Install.ps1 index 8ccf3bab..858a9016 100644 --- a/scripts/Windows/OS/Install.ps1 +++ b/scripts/Windows/OS/Install.ps1 @@ -12,6 +12,7 @@ $null = New-Module { . "$PSScriptRoot/../Scripts/Hooks.ps1"; . "$PSScriptRoot/../Scripts/PowerManagement.ps1"; . "$PSScriptRoot/../Scripts/Registry.ps1"; + . "$PSScriptRoot/../Scripts/Security.ps1"; . "$PSScriptRoot/../Scripts/Update.ps1"; . "$PSScriptRoot/../Scripts/Users.ps1"; . "$PSScriptRoot/../../Common/Scripts/Config.ps1"; @@ -35,6 +36,8 @@ $null = New-Module { Starts the installation loop. #> function Start-InstallationLoop { + $wslLocation = "$env:ProgramData\PortValhalla\Ubuntu"; + while (-not (Get-IsFinished)) { switch (Get-Stage) { ($null) { @@ -93,7 +96,15 @@ $null = New-Module { } if (-not (& { $null = wsl -l; $?; })) { - ubuntu install --root; + $wslRoot = Split-Path -Parent $wslLocation; + + if (-not (Test-Path -PathType $wslRoot)) { + $null = New-Item -ItemType Directory $wslRoot; + } + + Copy-Item -Recurse -Force (Get-AppxPackage "*Ubuntu*").InstallLocation $wslLocation; + Set-UserPermissions $wslLocation; + & "$wslLocation\ubuntu.exe" install --root; continue; } @@ -123,6 +134,11 @@ $null = New-Module { break; } default { + if (-not (& { $null = wsl -l; $? })) { + wsl --import-in-place "PortValhalla" "$wslLocation/ext4.vhdx"; + wsl --set-default "PortValhalla"; + } + if (Test-Admin) { $null = Import-Module PSWindowsUpdate;