-
-
Save ScriptAutomate/f94cd44dacd0f420fae65414e717212d to your computer and use it in GitHub Desktop.
<# | |
- BIOS of host machine also needs to be configured to allow hardware virtualization | |
- Windows 10 Pro or otherwise is needed; Windows 10 Home Edition CANNOT get WSL | |
- This gist WSLv2, but can use WSLv1 instead. I needed v1 as I run Windows 10 in a VM in Virtualbox. | |
- WSLv2 has been giving me problems in Virtualbox 6.1, but WSLv1 works properly. | |
- vbox has issues with the GUI settings when it comes to nested virtualization on certain systems, | |
so run the following if needing to give a VM this enabled setting: | |
VBoxManage modifyvm <vm-name> --nested-hw-virt on | |
#> | |
## IN AN ELEVATED SHELL | |
## Right-click PowerShell -> Run As Administrator | |
# Enable Needed Virtualization | |
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart | |
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart | |
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All | |
# Download Ubuntu 20.04 Focal Fosa | |
# Uncomment if wanting 20.04 instead of latest | |
# Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-20.04-focal-wsl.tar.gz -UseBasicParsing | |
# Download Ubuntu 22.04 Jammy Jellyfish | |
# Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-22.04-jammy-wsl.tar.gz -UseBasicParsing | |
# Download Ubuntu 24.04 Noble Numbat | |
Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/wsl/noble/current/ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-24.04-noble-wsl.tar.gz -UseBasicParsing | |
# Setup reserved directory path for WSL VM | |
# mkdir c:\UbuntuFocal # If doing Focal | |
# mkdir c:\UbuntuJammy # If doing Jammy | |
mkdir c:\UbuntuNoble # If doing Noble | |
# Configure WSL for incoming VM | |
# For more information about WSL: https://docs.microsoft.com/en-us/windows/wsl/about | |
wsl --set-default-version 2 # Change to '1' if not able to support 2 | |
# Import into WSL | |
# wsl.exe --import UbuntuFocal C:\UbuntuFocal $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-20.04-focal-wsl.tar.gz | |
# wsl.exe --import UbuntuJammy C:\UbuntuJammy $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-22.04-jammy-wsl.tar.gz | |
wsl.exe --import UbuntuJammy C:\UbuntuJammy $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-24.04-noble-wsl.tar.gz | |
wsl # Drops straight into default VM. Will be UbuntuFocal is WSL alternate VM didn't already exist | |
## BONUS: Docker Desktop | |
# Checkout the Install-ChocoStarterPackages gist for setting up choco (and other things): | |
# - https://gist.github.com/ScriptAutomate/02e0cf33786f869740ee963ed6a913c1 | |
# Once chocolatey / choco is installed, and WSL is already configured with Ubuntu, | |
# run the following command from PowerShell, and not from within WSL: | |
# choco install docker-desktop -y |
PS C:\Users\torresan\Downloads> Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-22.04-jammy-wsl.tar.gz -UseBasicParsing
Invoke-WebRequest :
404 Not Found
Not Found
The requested URL was not found on this server.
Apache/2.4.29 (Ubuntu) Server at cloud-images.ubuntu.com Port 443
At line:1 char:1
+ Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/jammy ...
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Guess they removed the image...
PS C:\Users\torresan\Downloads> Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-22.04-jammy-wsl.tar.gz -UseBasicParsing Invoke-WebRequest : 404 Not Found Not Found The requested URL was not found on this server. Apache/2.4.29 (Ubuntu) Server at cloud-images.ubuntu.com Port 443 At line:1 char:1 + Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/jammy ... + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc eption + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Guess they removed the image...
Whoa! It does look like it is removed. They look like they don't have any *wsl*
files listed for 22.04.
They do still have 20.04:
Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $ENV:HOMEDRIVE$ENV:HOMEPATH\Downloads\ubuntu-20.04-focal-wsl.tar.gz -UseBasicParsing
I'm not sure why Canonical has done that. They seem to have a dedicated landing page for WSL, but all the directions they provide (just like in places like the MSFT docs) are for how to manually do so via the GUI:
I'll ask around and see what I can figure out. May to be manually done in the meantime by following the above Ubuntu documentation of the Microsoft Docs on WSL
@andrestoga Jammy and newer WSL images have now been moved here:
- https://cloud-images.ubuntu.com/wsl/
- Information found here when I asked on Ask Ubuntu: https://askubuntu.com/questions/1439745/has-the-wsl-rootfs-tar-gz-been-removed-from-ubuntu-22-04-jammy-releases-websi
I've updated the gist to work with latest Jammy location!
Add instructions on how to make a user account. It boots as root by default.
Something else that may be useful for folks installing WSL on their Windows systems: