有没有一种方法可以在不使用商店的情况下在Win10(v1709)上安装Linux的Windows子系统?


50

我的大学通过组策略禁用了Microsoft Store应用程序。我的计算机拥有管理员权限,我想知道是否可以直接安装Linux的Windows子系统(WSL)?还是通过Chocolatey或其他命令行方法?

请注意,从版本1709(秋季创建者的升级)开始,仅启用开发人员模式已不再足够。

Answers:


63

信息:我在具有Win10 Pro(v1709和1803)且具有常规组策略(即按原样安装全新安装)的VM上尝试了此操作。

那就是:关闭商店gpedit.msc并没有什么不同...


根据Microsoft的“ Windows Server安装指南”

请注意,此答案仅显示了Debian的步骤。但是,对于Ubuntu,SLES,openSUSE和Kali来说,所有内容都是相同的-唯一的区别在于EXE的名称(以及您使用的URL)。

  1. 激活Windows Subsystem for Linux

    • 通过Windows FeaturesGUI:例如Win+ I->OptionalFeatures.exe
    • 使用PowerShell(以管理员身份)Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  2. 下载Linux软件包。

    • 选择您的发行版。只需使用以下URL之一:
      • Debian: https://aka.ms/wsl-debian-gnulinux
      • Ubuntu 18.04: https://aka.ms/wsl-ubuntu-1804
      • Ubuntu 16.04: https://aka.ms/wsl-ubuntu-1604
      • openSUSE: https://aka.ms/wsl-opensuse-42
      • SLES: https://aka.ms/wsl-sles-12
      • 卡利: https://aka.ms/wsl-kali-linux
    • 通过PowerShell运行Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile ~/Debian.zip -UseBasicParsing
      • 如果不需要进度栏,请$ProgressPreference = 'SilentlyContinue';在命令前面添加。
      • 请注意,~/Debian.zip可以将其更改为所需的任何路径和名称。
    • 您也可以“按手册”下载-将URL馈送到浏览器(或下载管理器)中,也可以通过这种方式获取。
  3. 解压缩下载的档案并将其放入目标路径。
    • 请注意,您可以使用任何路径-be it ~\IHateUbuntu\SLES_WSL,be it C:\Ubuntu等pp。但是,它必须位于系统的驱动器上(通常是C:\),谢谢@Matt Wenham
    • 通过PowerShell: Expand-Archive <ARCHIVE> <ITS_NEW_PATH>
    • 通过文件资源管理器的GUI
    • 或通过任何拉链工具,例如7-Zip。
  4. 运行Debian.exe,该文件位于解压缩的文件夹中。
    • 对于其他发行版,您只需要寻找正确的EXE。
    • 现在,它将“安装”您的发行版。
  5. 设置您的用户名和密码。
    • 如果0x80070005显示错误,则需要以管理员身份运行EXE。谢谢@March Ho
  6. 这是建议,以更新在第一次启动的所有软件。
    • 在Debian和Ubuntu中,这是通过运行来完成的sudo apt update && sudo apt upgrade
  7. (可选) 将您的EXE放入“开始”菜单。
    • 只需将硬链接Debian.exe插入即可C:\ProgramData\Microsoft\Windows\Start Menu\Programs
  8. (可选) 重复您想要的多个分发。

您现在可以出发了。运行Debian.exe,每当你想WSL跑。


3
如果出现错误0x80070005,则需要以管理员身份运行exe文件。
3月Ho

您是否知道是否可以一次为所有用户安装这些软件?
Andrew Savinykh '18

2
最佳说明。谢谢。仅供参考:如果您像我一样,并且第一次在一个愚蠢的地方解开发行版的wslconfig /listwslconfig /unregister
拉链

1
我相信,分布应被提取到您的系统驱动,这里提到:docs.microsoft.com/en-us/windows/wsl/...
马特·温汉姆

1
注意:由于0x80070005许多原因会弹出错误。如果要寻找解决方法,请看这里:github.com/microsoft/WSL/issues/3020
Bewc

15

这是一个简短的过程,适用于Windows 10 Fall Creators更新及更高版本。

  1. 从“启用Linux的Windows子系统”功能,OptionalFeatures.exe然后重新启动PC。来自Windows Server安装指南
  2. 下载以下任一文件(使用任何浏览器或任何下载管理器):

  3. 使用7ZIP打开Appx软件包。仅提取可执行文件(例如Ubuntu.exe)并在任何驱动器或任何文件夹中安装install.tar.gz。双击该可执行文件,它将被安装。

注意:现在,您可以使用分发站点或docker映像中提供的压缩RootFS tarball(仅.tar.gz)安装任何GNU / Linux分发


3

您可以(1)从Windows应用商店下载安装程序,或者(2)下载分发文件并使用lxRunOfflineWSL Distrolauncher之类的工具进行安装。

  • 您可以使用第二个选项安装Ubuntu 18或许多其他发行版。

从Windows应用商店下载安装程序

您可以使用Powershell从Windows应用商店下载安装程序。例如,您可以使用以下命令下载Ubuntu 16版本

PS> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing

在以上命令中,输出文件为Ubuntu.appx。必须以这种方式命名。您可以运行该应用程序以安装Ubuntu。

PS> Ubuntu.appx

使用LxRunOffline

首先,您必须下载一些分发文件。lxRunOffline Wiki中有许多分发文件。

例如,要从Microsoft Windows应用商店安装相同的Ubuntu 16,可以在以下位置下载文件:

https://lxrunoffline.apphb.com/download/UbuntuFromMS/16

然后,您可以使用lxRunOffline安装linux发行版

# lxrunoffline install -n <name> -d <folder> -f <distribution file>

C:\wsl> lxrunoffline install -n copy -d c:\wsl\copy -f 16.04.2-server-cloudimg-amd64-root.tar.gz

要运行发行版,可以使用相同的lxRunOffline

C:\wsl> lxrunoffline run -n copy -w

使用DistroLauncher

您可以使用一些DistroLauncher。有许多基于Microsoft示例的版本可以为WSL创建自定义linux发行版。例如,您可以使用Yuk7版本

您必须下载一个分发文件,然后下载launcher.exe。若要使用上述相同的分发文件,必须将分发文件重命名为rootfs.tar.gz,并将启动器重命名为所需的分发名称。稍后,您必须以管理员身份运行启动器(我在以普通用户身份运行时遇到错误)

PS> ren launcher.exe mydistro.exe
PS> ren .\16.04.2-server-cloudimg-amd64-root.tar.gz rootfs.tar.gz
PS> .\mydistro

首次运行启动器时,它将安装并运行发行版。下次,它将运行linux发行版。


安装后,您可以使用wslconfiglxrunoffline命令来管理发行版。

注意:除了上述分发文件外,您还可以基于其他linux分发创建新文件。您可以尝试WSLInstall项目中包含的说明。安装后,您可能需要其他步骤才能正确启动新的linux。


-1

以上解决方案均不适合我。考虑到我对Windows一无所知,并且自1999年以来就没有真正使用过,我的问题非常微妙。

上面的答案写得很好,但是有趣的是Windows在20年内没有发展,因此一个脚本可以解决这些问题。有点令人沮丧...

如果您获得预装Windows 10专业版的笔记本电脑,则无需安装标准用户帐户。以管理员身份安装Windows子系统Linux(WSL)是可以的,但从应用程序商店安装Debian,Ubuntu或opensuse将导致所有操作系统在新用户名创建步骤失败的错误0x80070005。使用许多更改用户程序包目录文件权限的answer.microsoft.com解决方案也是完全不合适的修复程序。

解:

通过以管理员身份运行的Power Shell安装WSL后,除了拥有管理员帐户之外,创建普通用户帐户还可以立即从Windows应用商店中安装Debian。


据我了解,Windows内核要求在经过身份验证的用户下进行某些os调用。这样做是出于安全考虑,一直是Windows的核心范例。WSL抽象不能只在SYSTEM用户下运行。
加百利博览会

我所有的计算机只有一个帐户-管理员帐户(尽管当然是使用该计算机的任何人来命名的)。但是,从未遇到过该问题。另外:superuser.com/questions/1271682/…没用 run the exe file as administrator吗?
flolilo

在Windows 10专业版下,没有对我不起作用。我必须创建单独的用户,以管理员身份安装WSL,然后以普通用户身份安装linux distro。linux发行版无法工作的子目录中的权限也无法从我所看到的位置进行修复,甚至可以递归更改所有子目录中的权限。
Eamonn Kenny
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.