Using WSL on an offline Windows machine
How to install WSL on a Windows machine not connected to the Internet
In this post, we will install Ubuntu 20.04 WSL package on an offline Windows 10 machine. Although this post is prepared with Ubuntu 20.04, the steps should be valid for other WSL packages too.
Getting files
If your Windows machine is connected to the Internet and you can easily install WSL packages via Microsoft Store like by clicking Download from the Microsoft Store here. To install it on an offline machine, first we get .appx
package for a corresponding guest OS from Microsoft. All available Packages are listed here. Transfer the downloaded package to the target offline machine. For example, when I am writing this post, to install Ubuntu 20.04 I get Ubuntu_2004.2020.424.0_x64.appx
.
Enabling WSL on Windows
Open a PowerShell terminal and type wsl
. If you get an error about not recognized command, first you should enable WSL. The official instructions are given here. Alternatively you can do it with GUI. Find Programs and Features
on Control Panel
, then click Turn Windows features on or off
as shown below.
After rebooting Windows, wsl
command should be available to use and should be working on PowerShell. Since we don't have any installed WSL guest OS on the PC, it will say ... no installed distributions.
Installing WSL package
In theory, the following command given in the official page should do the work.
Add-AppxPackage .\Ubuntu_2004.2020.424.0_x64.appx
Error: "The service has not been started"
After installing the package, you can find the installed software by typing Ubuntu
in Windows Start menu search. However in my case, I couldn't start the Ubuntu WSL and got the The service has not been started.
error as shown below. This is probably related to version of Windows 10.
Solution
You can remove Ubuntu
found in Windows Start menu by right clicking and selecting Uninstall
since we won't use it.
One solution recommended by Microsoft is extracting .appx
file with an file archiver program, like 7-Zip by right clicking on file and selecting Extract
option, and then running ubuntu2004.exe
.
Cannot find the specified path
error. So before installation make sure that this is the correct location. After installation, rootfs
folder is created next to ubuntu2004.exe
and file system of the Linux will live here. So make sure that you have enough space for your future needs. The WSL is somehow fragile [1]. Although it is possible to move files as moving ordinary files in Windows after installation, be ready for side effects.With first run the installation process begins and you are prompted to select an username and associated password. After completing installation, you can use your Linux distro. Notice that file system for the Linux is created under rootfs
folder. After installation, Ubuntu 20.04 creates ~40K items in its folder.
Pitfall: Moving Ubuntu 20.04 After Installation
I got Cannot find the specified path
error when I moved to another folder after installation. Other people report the same problem too [1]. In my case, since I was using fresh Ubuntu installation, I reinstalled it but I don't know the proper solution if you don't want to loose your distro. Some people also reported that a Windows update also breaks the WSL [1], so... yeah, classical Windows...
Solution
Even if you decide to reinstall the Ubuntu at the new location, when you run ubuntu2004.exe
you get The system cannot find the path specified
error. Even if you run wsl
on PowerShell you get the same error. The reason is the previous machine is still registered. If you run wslconfig /l
, you will see the previous machine. So first unregister the previous distro, example:
wslconfig /u Ubuntu-20.04
After that, wsl
command should run, then you can install the Ubuntu to a new location.
Error: "WslRegisterDistribution failed with error: 0x80070005"
When I tried to install the distro runnig ubuntu2004.exe
on D:
drive, I got this error but if I run it on C:
drive everything works. This is probably due to security settings of my Windows machine.
Solution
Since I don't want to bother with these settings, I chose to Run as administrator on D:
drive. After installation, user is able to run the distro and no privilege is required. Similar problems and proper solutions also exist [2, 3, 4].
Conclusion
Although using a Linux distro on Windows in a native way is a very good experience, WSL doesn't look so solid and may become broken after an Windows update. So if you are planning to use be ready for possible future problems.