Launch linux from windows

Windows Subsystem for Linux Installation Guide for Windows 10

There are two options available for installing Windows Subsystem for Linux (WSL):

Simplified install (preview release): wsl —install

The wsl —install simplified install command requires that you join the Windows Insiders Program and install a preview build of Windows 10 (OS build 20262 or higher), but eliminates the need to follow the manual install steps. All you need to do is open a command window with administrator privileges and run wsl —install , after a restart you will be ready to use WSL.

Manual install: Follow the six steps listed below.

The manual install steps for WSL are listed below and can be used to install Linux on any version of Windows 10.

If you run into an issue during the install process, check the Troubleshooting installation section at the bottom of this page.

Simplified Installation for Windows Insiders

The installation process for Windows Subsystem for Linux has been significantly improved in the latest Windows Insiders preview builds of Windows 10, replacing the manual steps below with a single command.

In order to use the wsl —install simplified install command, you must:

  • Join the Windows Insiders Program
  • Install a preview build of Windows 10 (OS build 20262 or higher).
  • Open a command line windows with Administrator privileges

Once those requirements are met, to install WSL:

  • Enter this command in the command line you’ve opened in Admin mode: wsl.exe —install
  • Restart your machine

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for files to de-compress and be stored on your PC. All future launches should take less than a second.

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

The —install command performs the following actions:

  • Enables the optional WSL and Virtual Machine Platform components
  • Downloads and installs the latest Linux kernel
  • Sets WSL 2 as the default
  • Downloads and installs a Linux distribution (reboot may be required)

By default, the installed Linux distribution will be Ubuntu. This can be changed using wsl —install -d . (Replacing with the name of your desired distribution.) Additional Linux distributions may be added to your machine after the initial install using the wsl —install -d command.

To see a list of available Linux distributions, enter wsl —list —online .

Manual Installation Steps

If you are not on a Windows Insiders build, the features required for WSL will need to be enabled manually following the steps below.

Step 1 — Enable the Windows Subsystem for Linux

You must first enable the «Windows Subsystem for Linux» optional feature before installing any Linux distributions on Windows.

Open PowerShell as Administrator and run:

We recommend now moving on to step #2, updating to WSL 2, but if you wish to only install WSL 1, you can now restart your machine and move on to Step 6 — Install your Linux distribution of choice. To update to WSL 2, wait to restart your machine and move on to the next step.

Step 2 — Check requirements for running WSL 2

To update to WSL 2, you must be running Windows 10.

  • For x64 systems: Version 1903 or higher, with Build 18362 or higher.
  • For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
  • Builds lower than 18362 do not support WSL 2. Use the Windows Update Assistant to update your version of Windows.

To check your version and build number, select Windows logo key + R, type winver, select OK. Update to the latest Windows version in the Settings menu.

If you are running Windows 10 version 1903 or 1909, open «Settings» from your Windows menu, navigate to «Update & Security» and select «Check for Updates». Your Build number must be 18362.1049+ or 18363.1049+, with the minor build # over .1049. Read more: WSL 2 Support is coming to Windows 10 Versions 1903 and 1909. See the troubleshooting instructions.

Step 3 — Enable Virtual Machine feature

Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Your machine will require virtualization capabilities to use this feature.

Open PowerShell as Administrator and run:

Restart your machine to complete the WSL install and update to WSL 2.

Step 4 — Download the Linux kernel update package

Download the latest package:

If you’re using an ARM64 machine, please download the ARM64 package instead. If you’re not sure what kind of machine you have, open Command Prompt or PowerShell and enter: systeminfo | find «System Type» . Caveat: On non-English Windows versions, you might have to modify the search text, for example, in German it would be systeminfo | find «Systemtyp» .

Run the update package downloaded in the previous step. (Double-click to run — you will be prompted for elevated permissions, select ‘yes’ to approve this installation.)

Once the installation is complete, move on to the next step — setting WSL 2 as your default version when installing new Linux distributions. (Skip this step if you want your new Linux installs to be set to WSL 1).

Step 5 — Set WSL 2 as your default version

Open PowerShell and run this command to set WSL 2 as the default version when installing a new Linux distribution:

Step 6 — Install your Linux distribution of choice

Open the Microsoft Store and select your favorite Linux distribution.

The following links will open the Microsoft store page for each distribution:

From the distribution’s page, select «Get».

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.

Читайте также:  Wuauclt exe windows update

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

Install Windows Terminal (optional)

Windows Terminal enables multiple tabs (quickly switch between multiple Linux command lines, Windows Command Prompt, PowerShell, Azure CLI, etc), create custom key bindings (shortcut keys for opening or closing tabs, copy+paste, etc.), use the search feature, and custom themes (color schemes, font styles and sizes, background image/blur/transparency). Learn more.

Set your distribution version to WSL 1 or WSL 2

You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 18362 or higher): wsl -l -v

To set a distribution to be backed by either version of WSL please run:

Make sure to replace with the actual name of your distribution and with the number ‘1’ or ‘2’. You can change back to WSL 1 at anytime by running the same command as above but replacing the ‘2’ with a ‘1’.

The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution. If you are running an older (legacy) installation of WSL 1 from Windows 10 Anniversary Update or Creators Update, you may encounter an update error. Follow these instructions to uninstall and remove any legacy distributions.

If wsl —set-default-version results as an invalid command, enter wsl —help . If the —set-default-version is not listed, it means that your OS doesn’t support it and you need to update to version 1903, Build 18362 or higher. If you are on Build 19041 for ARM64, this command may fail when using PowerShell in which case you can use a Command Prompt instead to issue the wsl.exe command.

If you see this message after running the command: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel . You still need to install the MSI Linux kernel update package.

Additionally, if you want to make WSL 2 your default architecture you can do so with this command:

This will set the version of any new distribution installed to WSL 2.

Troubleshooting installation

Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.

Installation failed with error 0x80070003

  • The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:
  • Open Settings -> **System —>Storage ->More Storage Settings: Change where new content is saved

WslRegisterDistribution failed with error 0x8007019e

  • The Windows Subsystem for Linux optional component is not enabled:
  • Open Control Panel ->Programs and Features ->Turn Windows Feature on or off -> Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.

Installation failed with error 0x80070003 or error 0x80370102

  • Please make sure that virtualization is enabled inside of your computer’s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.
  • WSL2 requires that your CPU supports the Second Level Address Translation (SLAT) feature, which was introduced in Intel Nehalem processors (Intel Core 1st Generation) and AMD Opteron. Older CPUs (such as the Intel Core 2 Duo) will not be able to run WSL2, even if the Virtual Machine Platform is successfully installed.

Error when trying to upgrade: Invalid command line option: wsl —set-version Ubuntu 2

  • Enure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux .

The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.

  • Deselect “Compress contents” (as well as “Encrypt contents” if that’s checked) by opening the profile folder for your Linux distribution. It should be located in a folder on your Windows file system, something like: USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.
  • In this Linux distro profile, there should be a LocalState folder. Right-click this folder to display a menu of options. Select Properties > Advanced and then ensure that the “Compress contents to save disk space” and “Encrypt contents to secure data” checkboxes are unselected (not checked). If you are asked whether to apply this to just to the current folder or to all subfolders and files, select “just this folder” because you are only clearing the compress flag. After this, the wsl —set-version command should work.

In my case, the LocalState folder for my Ubuntu 18.04 distribution was located at C:\Users \AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

Check WSL Docs GitHub thread #4103 where this issue is being tracked for updated information.

The term ‘wsl’ is not recognized as the name of a cmdlet, function, script file, or operable program.

  • Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an ARM64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.

Error: This update only applies to machines with the Windows Subsystem for Linux.

  • To install the Linux kernel update MSI package, WSL is required and should be enabled first. If it fails, it you will see the message: This update only applies to machines with the Windows Subsystem for Linux .
  • There are three possible reason you see this message:

    You are still in old version of Windows which doesn’t support WSL 2. See step #2 for version requirements and links to update.

    WSL is not enabled. You will need to return to step #1 and ensure that the optional WSL feature is enabled on your machine.

    After you enabled WSL, a reboot is required for it to take effect, reboot your machine and try again.

    Error: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel .

    • If the Linux kernel package is missing in the %SystemRoot%\system32\lxss\tools folder, you will encounter this error. Resolve it by installing the Linux kernel update MSI package in step #4 of these installation instructions. You may need to uninstall the MSI from ‘Add or Remove Programs’, and install it again.

    —>

    WSL commands and launch configurations

    Ways to run WSL

    There are several ways to run a Linux distribution with WSL once it’s installed.

    1. Open your Linux distribution by visiting the Windows Start menu and typing the name of your installed distributions. For example: «Ubuntu».
    2. From Windows Command Prompt or PowerShell, enter the name of your installed distribution. For example: ubuntu
    3. From Windows Command Prompt or PowerShell, to open your default Linux distribution inside your current command line, enter: wsl.exe .
    4. From Windows Command Prompt or PowerShell, to open your default Linux distribution inside your current command line, enter: wsl [command] .

    Which method you should use depends on what you’re doing. If you’ve opened a WSL command line within a Windows Prompt or PowerShell window and want to exit, enter the command: exit .

    Launch WSL by distribution

    Running a distribution using it’s distro-specific application launches that distribution in it’s own console window.

    It is the same as clicking «Launch» in the Microsoft store.

    You can also run the distribution from the command line by running [distribution].exe .

    The disadvantage of running a distribution from the command line in this way is that it will automatically change your working directory from the current directory to the distribution’s home directory.

    Example: (using PowerShell)

    wsl and wsl [command]

    The best way to run WSL from the command line is using wsl.exe .

    Example: (using PowerShell)

    Not only does wsl keep the current working directory in place, it lets you run a single command along side Windows commands.

    Example: (using PowerShell)

    Example: (using PowerShell)

    Managing multiple Linux Distributions

    In Windows 10 Version 1903 and later, you can use wsl.exe to manage your distributions in the Windows Subsystem for Linux (WSL), including listing available distributions, setting a default distribution, and uninstalling distributions.

    Each Linux distribution independently manages its own configurations. To see distribution-specific commands, run [distro.exe] /? . For example ubuntu /? .

    List distributions

    wsl -l , wsl —list
    Lists available Linux distributions available to WSL. If a distribution is listed, it’s installed and ready to use.

    wsl —list —all Lists all distributions, including ones that aren’t currently usable. They may be in the process of installing, uninstalling, or are in a broken state.

    wsl —list —running Lists all distributions that are currently running.

    Set a default distribution

    The default WSL distribution is the one that runs when you run wsl on a command line.

    wsl -s , wsl —setdefault

    Sets the default distribution to .

    Example: (using PowerShell)
    wsl -s Ubuntu would set my default distribution to Ubuntu. Now when I run wsl npm init it will run in Ubuntu. If I run wsl it will open an Ubuntu session.

    Unregister and reinstall a distribution

    While Linux distributions can be installed through the Microsoft store, they can’t be uninstalled through the store. WSL Config allows distributions to be unregistered/uninstalled.

    Unregistering also allows distributions to be reinstalled.

    Caution: Once unregistered, all data, settings, and software associated with that distribution will be permanently lost. Reinstalling from the store will install a clean copy of the distribution.

    wsl —unregister
    Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

    For example: wsl —unregister Ubuntu would remove Ubuntu from the distributions available in WSL. When I run wsl —list it will not be listed.

    To reinstall, find the distribution in the Microsoft store and select «Launch».

    Run as a specific user

    wsl -u , wsl —user

    Run WSL as the specified user. Please note that user must exist inside of the WSL distribution.

    Change the default user for a distribution

    Change the default user that for your distribution log-in. The user has to already exist inside the distribution in order to become the default user.

    For example: ubuntu config —default-user johndoe would change the default user for the Ubuntu distribution to the «johndoe» user.

    If you are having trouble figuring out the name of your distribution, see List distributions for the command to list the official name of the installed distributions.

    Run a specific distribution

    wsl -d , wsl —distribution

    Run a specified distribution of WSL, can be used to send commands to a specific distribution without having to change your default.

    Managing multiple Linux Distributions in earlier Windows versions

    In Windows 10 prior to version 1903, the WSL Config ( wslconfig.exe ) command-line tool should be used to manage Linux distributions running on the Windows Subsystem for Linux (WSL). It lets you list available distributions, set a default distribution, and uninstall distributions.

    While WSL Config is helpful for settings that span or coordinate distributions, each Linux distribution independently manages its own configurations. To see distribution-specific commands, run [distro.exe] /? . For example ubuntu /? .

    To see all available options for wslconfig, run: wslconfig /?

    To list distributions, use:

    wslconfig /list
    Lists available Linux distributions available to WSL. If a distribution is listed, it’s installed and ready to use.

    wslconfig /list /all
    Lists all distributions, including ones that aren’t currently usable. They may be in the process of installing, uninstalling, or are in a broken state.

    To set a default distribution that runs when you run wsl on a command line:

    wslconfig /setdefault Sets the default distribution to .

    Example: (using PowerShell)
    wslconfig /setdefault Ubuntu would set my default distribution to Ubuntu. Now when I run wsl npm init it will run in Ubuntu. If I run wsl it will open an Ubuntu session.

    To unregister and reinstall a distribution:

    wslconfig /unregister
    Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

    For example: wslconfig /unregister Ubuntu would remove Ubuntu from the distributions available in WSL. When I run wslconfig /list it will not be listed.

    To reinstall, find the distribution in the Microsoft store and select «Launch».

    Configure per distro launch settings with wslconf

    Available in Windows Build 17093 and later

    Automatically configure functionality in WSL that will be applied every time you launch the subsystem using wsl.conf . This includes automount options and network configuration.

    wsl.conf is located in each Linux distribution in /etc/wsl.conf . If the file is not there, you can create it yourself. WSL will detect the existence of the file and will read its contents. If the file is missing or malformed (that is, improper markup formatting), WSL will continue to launch as normal.

    Here is a sample wsl.conf file you could add into your distributions:

    When launching multiple Linux shells for the same distribution, you must wait until the Linux subsystem stops running, this can take approximately 8 seconds after closing the last instance of the distribution shell. If you launch a distribution (ie. Ubuntu), modify the wsl.conf file, close the distribution, and then re-launch it. You might assume that your changes to the wsl.conf file have immediately gone into effect. This is not currently the case as the subsystem could still be running. You must wait

    8 seconds for the subsystem to stop before relaunching in order to give enough time for your changes to be picked up. You can check to see whether your Linux distribution (shell) is still running after closing it by using PowerShell with the command: wsl —list —running . If no distributions are running, you will receive the response: «There are no running distributions.» You can now restart the distribution to see your wsl.conf updates applied.

    Configuration Options

    In keeping with .ini conventions, keys are declared under a section.

    WSL supports four sections: automount , network , interop , and user .

    automount

    key value default notes
    enabled boolean true true causes fixed drives (i.e C:/ or D:/ ) to be automatically mounted with DrvFs under /mnt . false means drives won’t be mounted automatically, but you could still mount them manually or via fstab .
    mountFsTab boolean true true sets /etc/fstab to be processed on WSL start. /etc/fstab is a file where you can declare other filesystems, like an SMB share. Thus, you can mount these filesystems automatically in WSL on start up.
    root String /mnt/ Sets the directory where fixed drives will be automatically mounted. For example, if you have a directory in WSL at /windir/ and you specify that as the root, you would expect to see your fixed drives mounted at /windir/c
    options comma-separated list of values empty string This value is appended to the default DrvFs mount options string. Only DrvFs-specific options can be specified. Options that the mount binary would normally parse into a flag are not supported. If you want to explicitly specify those options, you must include every drive for which you want to do so in /etc/fstab.

    By default, WSL sets the uid and gid to the value of the default user (in Ubuntu distro, the default user is created with uid=1000,gid=1000). If the user specifies a gid or uid option explicitly via this key, the associated value will be overwritten. Otherwise, the default value will always be appended.

    Note: These options are applied as the mount options for all automatically mounted drives. To change the options for a specific drive only, use /etc/fstab instead.

    Mount options

    Setting different mount options for Windows drives (DrvFs) can control how file permissions are calculated for Windows files. The following options are available:

    Key Description Default
    uid The User ID used for the owner of all files The default User ID of your WSL distro (On first installation this defaults to 1000)
    gid The Group ID used for the owner of all files The default group ID of your WSL distro (On first installation this defaults to 1000)
    umask An octal mask of permissions to exclude for all files and directories 000
    fmask An octal mask of permissions to exclude for all files 000
    dmask An octal mask of permissions to exclude for all directories 000
    metadata Whether metadata is added to Windows files to support Linux system permissions disabled
    case Determines directories treated as case sensitive and whether new directories created with WSL will have the flag set. See Per-directory case sensitivity and WSL for a detailed explanation of the options. dir

    Note: The permission masks are put through a logical OR operation before being applied to files or directories.

    network

    Section label: [network]

    key value default notes
    generateHosts boolean true true sets WSL to generate /etc/hosts . The hosts file contains a static map of hostnames corresponding IP address.
    generateResolvConf boolean true true set WSL to generate /etc/resolv.conf . The resolv.conf contains a DNS list that are capable of resolving a given hostname to its IP address.

    interop

    Section label: [interop]

    These options are available in Insider Build 17713 and later.

    key value default notes
    enabled boolean true Setting this key will determine whether WSL will support launching Windows processes.
    appendWindowsPath boolean true Setting this key will determine whether WSL will add Windows path elements to the $PATH environment variable.

    Section label: [user]

    These options are available in Build 18980 and later.

    key value default notes
    default string The initial username created on first run Setting this key specifies which user to run as when first starting a WSL session.

    Configure global options with .wslconfig

    Available in Windows Build 19041 and later

    You can configure global WSL options by placing a .wslconfig file into the root directory of your users folder: C:\Users\ \.wslconfig . Many of these files are related to WSL 2, please keep in mind you may need to run wsl —shutdown to shut down the WSL 2 VM and then restart your WSL instance for these changes to take affect.

    Here is a sample .wslconfig file:

    This file can contain the following options:

    WSL 2 Settings

    Section label: [wsl2]

    These settings affect the VM that powers any WSL 2 distribution.

    key value default notes
    kernel string The Microsoft built kernel provided inbox An absolute Windows path to a custom Linux kernel.
    memory size 50% of total memory on Windows or 8GB, whichever is less; on builds before 20175: 80% of your total memory on Windows How much memory to assign to the WSL 2 VM.
    processors number The same number of processors on Windows How many processors to assign to the WSL 2 VM.
    localhostForwarding boolean true Boolean specifying if ports bound to wildcard or localhost in the WSL 2 VM should be connectable from the host via localhost:port.
    kernelCommandLine string Blank Additional kernel command line arguments.
    swap size 25% of memory size on Windows rounded up to the nearest GB How much swap space to add to the WSL 2 VM, 0 for no swap file.
    swapFile string %USERPROFILE%\AppData\Local\Temp\swap.vhdx An absolute Windows path to the swap virtual hard disk.
    • Note: This value is true for Windows Build 19041 and may be different in Windows builds in the Insiders program

    Entries with the path value must be Windows paths with escaped backslashes, e.g: C:\\Temp\\myCustomKernel

    Entries with the size value must be a size followed by a unit, for example 8GB or 512MB .

    Читайте также:  Lenovo z570 драйвера для windows 10 64 bit
Оцените статью