Set up shared WSL
This commit is contained in:
parent
b034dfd53d
commit
c0748548e1
|
@ -13,6 +13,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";
|
||||
|
@ -36,6 +37,8 @@ $null = New-Module {
|
|||
Starts the installation loop.
|
||||
#>
|
||||
function Start-InstallationLoop {
|
||||
$wslLocation = "$env:ProgramData\PortValhalla\Ubuntu";
|
||||
|
||||
while (-not (Get-IsFinished)) {
|
||||
switch (Get-Stage) {
|
||||
($null) {
|
||||
|
@ -94,7 +97,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;
|
||||
}
|
||||
|
||||
|
@ -124,6 +135,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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue