精华内容
下载资源
问答
  • 2020-08-07 20:55:29

    官方原文档

    微软官方教程地址:传送门

    安装适用于 Linux 的 Windows 子系统

    必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。
    以管理员身份打开 PowerShell 并运行:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

    安装所选的 Linux 分发版

    • 打开 Microsoft Store,并选择你偏好的 Linux 分发版。
      在这里插入图片描述
    • 在分发版的页面中,选择“获取”。
      在这里插入图片描述

    设置新分发版

    首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
    然后,需要为新的 Linux 分发版创建用户帐户和密码
    在这里插入图片描述

    排查安装问题

    下面是相关的错误和建议的修复措施。 有关其他常见错误及其解决方法,请参阅 WSL 故障排除页

    • 安装失败并出现错误 0x80070003

      • 适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是 C: 驱动器)中运行。 请确保分发版存储在系统驱动器上:
      • 打开“设置”->“存储”->“更多存储设置: 更改新内容的保存位置” 用于在 C: 驱动器中安装应用的系统设置屏幕截图
    • WslRegisterDistribution 失败并出现错误 0x8007019e

      • 未启用“适用于 Linux 的 Windows 子系统”可选组件:
      • 打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell cmdlet。
    • 安装失败,出现错误 0x80070003 或错误 0x80370102

      • 请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。
    • 尝试升级时出错:Invalid command line option: wsl --set-version Ubuntu 2

      • 请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 19041 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux。 可在此处找到完整的 WSL 安装说明。
    • 由于虚拟磁盘系统的某个限制,无法完成所请求的操作。虚拟硬盘文件必须是解压缩的且未加密的,并且不能是稀疏的。

      • 请检查 WSL GitHub 主题 #4103,其中跟踪了此问题以提供更新的信息。
    • 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称。

      • 请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行 wsl.exe。
    更多相关内容
  • windows10下linux子系统

    2021-01-07 18:32:17
    windows10可以安装linux子系统,但是就目前个人使用感受来说,作为新手入门和学习linux可以使用,但若是作为开发中的编译环境来使用那就不可了,经常会出一些出乎意料的错误,慎用 安装 在windows10下安装linux...
  • Windows子系统(GUI)

    千次阅读 2020-12-15 11:42:17
    Windows子系统 1 Windows子系统结构 Windows子系统结构,如图: Windows子系统有用户模式和内核模式组件。列出这些组件的职责: a. 内核模块win32k.sys。是Windows内核的扩展。包含两大功能组成部分: 窗口...

     Windows子系统

    1  Windows子系统结构

    Windows子系统结构,如图:

    Windows子系统有用户模式和内核模式组件。列出这些组件的职责:

    a. 内核模块win32k.sys。是Windows内核的扩展。包含两大功能组成部分:

    1. 窗口管理器(window manager): 负责控制窗口显示、管理屏幕输出、手机来自键盘鼠标和其他设备的输入,以及将用户信息传递给应用程序。
    2. GDI:图形输出设备的函数库。

    b.图形设备驱动程序。

    c.Windows环境子系统进程(csrss.exe),它包含以下支持:

    1. 控制台窗口
    2. 创建和删除进程和线程
    3. 支持16位虚拟DOS 机(VDM,Virtual DOS Machine)进程
    4. 其他一些函数,如GetTempFile,DefinedDosDevice、ExitWindowsEx等。

    d.子系统DLL,如user32.dll、advapi32.dll、gdi32.dll、kernel32.dll。

    Win32k.sys 注册了一个SDT(系统服务描述符表),将所提供的功能直接以系统服务的形式暴露给用户模式程序。

    2  Windows子系统初始化与GUI线程

    Windows的会话管理器(smss.exe) 是系统中第一个被创建的用户模式进程,是在Windows执行体和内核初始化完成以后被启动的。Smss 进程的任务之一是,启动Windows环境子系统进程csrss.exe 和Windows登录进程winlogon.exe 。smss 还通过系统服务

    NtSetSystemInformation ,指示内核加载win32.sys 模块。它想NtSetSystemInformation 的

    SystemInformationClass 参数传递的值位SystemExtendServiceTableInformation。NtSetSystemInformation 调用MmLoadSystemImage 加载指定的

    “\SystemRoot\System32\win32k.sys”文件。

    Win32k.sys 主要做了以下的初始化工作:

    1. 调用KeAddSystemServiceTable ,加入一个新的SDT(服务描述表)。
    2. 调用PsEstablishWin32Callouts ,向内核注册一组出掉函数,以便内核在适当时候调用这些出调函数。
    3. 调用MmPageEntireDriver,使得win32k.sys 的所有代码页面和数据页面可被换出内存(pageable)。
    4. 调用InitializeGre ,初始化windows 子系统的图形引擎。
    5. 调用Win32UserInitialize ,初始化Windows 子系统的窗口管理器。

    Win32k.sys 在入口例程中,调用KeAddSystemServiceTable ,将win32k.sys 的系统服务表加入到SDT数组KeServiceDescriptorTableShadow。

    Win32k.sys 提供的系统服务的名称分类(windows server 2003)

    名称

    功能说明

    NtUser<xxx>

    窗口管理服务,如NtUserFindWindowsEx

    NtGdi<xxx>

    GDI服务,如NtGdiDcObject

    NtGdiEng<xxx>

    图形引擎服务,如NtGdiEngBitBlt

    NtGdiDd<xxx>

    DirectDraw服务,如NtGdiDdGetDxHandle

    NtGdiDvp<xxx>

    与视频端口打交道的DirectDraw服务,如NtGdiDvpCreateVideoPort

    NtGdiD3d<xxx>

    Direct3D服务,如NtGdiD3dCreateSurfaceEx

    Win32k.sys 在初始化阶段通过PsEstablishWin32Callouts 向内核注册一组出调函数,数据结构WIN32_CALLOUTS_FPNS 定义如下:

    typedef struct _WIN32_CALLOUTS_FPNS {

        PKWIN32_PROCESS_CALLOUT ProcessCallout; //创建或删除进程时调用

        PKWIN32_THREAD_CALLOUT ThreadCallout;;//转成GUI线程或删除时被调用

        PKWIN32_GLOBALATOMTABLE_CALLOUT GlobalAtomTableCallout;;//内核的全局原子对象管理器调用该函数来获得当前线程的全局原子对象表的地址

        PKWIN32_POWEREVENT_CALLOUT PowerEventCallout;//子系统通过它来接收电源事件

        PKWIN32_POWERSTATE_CALLOUT PowerStateCallout;//子系统通过它来接收电源状态

        PKWIN32_JOB_CALLOUT JobCallout;//win32k.sys 通过它参与作业管理

        PVOID BatchFlushRoutine;//刷新GDI批任务处理

        PKWIN32_OBJECT_CALLOUT DesktopOpenProcedure;//打开桌面

        PKWIN32_OBJECT_CALLOUT DesktopOkToCloseProcedure;//是否可以关闭桌面

        PKWIN32_OBJECT_CALLOUT DesktopCloseProcedure;//解除桌面映射

        PKWIN32_OBJECT_CALLOUT DesktopDeleteProcedure;//释放桌面

        PKWIN32_OBJECT_CALLOUT WindowStationOkToCloseProcedure;//是否可以关闭窗口站

        PKWIN32_OBJECT_CALLOUT WindowStationCloseProcedure;//从全局列表中去除窗口站

        PKWIN32_OBJECT_CALLOUT WindowStationDeleteProcedure;//删除窗口站,释放资源

        PKWIN32_OBJECT_CALLOUT WindowStationParseProcedure;//解析一个窗口站路径

        PKWIN32_OBJECT_CALLOUT WindowStationOpenProcedure;//打开一个窗口站路径

    } WIN32_CALLOUTS_FPNS, *PKWIN32_CALLOUTS_FPNS;

    Win32k.sys 每个会话被加载一次,驱动程序对象为“\Driver\win32k”,其他模块通过ObReferenceObjectByname 获得此驱动程序对象。

    当一个非GUI线程调用的任何一个子系统系统服务(服务号为0x1000~-x1fff)时,线程的ServiceTable 指向KeServiceDescriptorTable,而KeServiceDescriptorTable[1]不包含任务系统服务,此调用导致PsConvertToGuiThread 被调用,从而转为GUI线程。

    PsConvertToGuiThread 将一个线程转换为GUI线程,主要工作包括:

    1. 将线程的内核栈转换为一个大内核栈。先调用MmCreateKernelStack 创建一个新的内核栈,然后调用KeSwitchKernelStack 替换内核栈。
    2. 调用win32k.sys 注册的出调函数PspW32ProcessCallout.
    3. 将线程的ServiceTable 切换到KeServiceDescriptorTableShadow,从而使该线程可以使用win32k.sys 提供的系统服务。
    4. 调用win32k.sys 的PspW32ThreadCallout。

    3  窗口管理

    当用户登录到Windows系统时,winlogon 进程会创建一个交互式窗口站(interactive window station) 和三个桌面。应用程序所创建的窗口,一定属于某一个桌面。Windows中窗口站和桌面的关系,如图:

     

    窗口站和桌面与进程和线程之间的关系:

    1. 窗口站可通过Windows子系统的系统服务NtUserCreateWindowStation 来创建,当一个进程调用该系统服务来创建一个窗口站时,此窗口站与该调度进程相关联,并且属于该进程所在的会话。
    2. 桌面可通过Windows子系统的系统服务NtUserCreateDesktop来创建,当一个进程调用该系统服务来创建一个桌面时,所创建的桌面属于该进程所属的窗口站,并且与调用线程相关联。
    3. 当一个进程第一次调用Windows子系统的系统服务(非窗口站和桌面的系统服务)时,它自动与一个窗口站和桌面建立连接。连接哪个窗口站,则依据以下规则:
    • a. 该进程已调用过SetProcessWindowStation ,指定了窗口站。
    • b. 从父进程继承一个窗口站。
    • c. 如果该进程没有调用过SetProcessWindowStation,也不能从父进程获得窗口站,那么Windows子系统试图按以下顺序来选择窗口站:
    1. 进程创建函数CreateProcess 的STARTUPINFO参数指定的窗口站名称。
    2. 若进程运行在交互式用户的登录会话中,则连接到交互式窗口站。
    3. 若运行在非交互式的登录会话中,则根据登录会话的标识信息,构造一个窗口站名称,并试图打开该窗口站。如果打开操作不成功,则创建此名称的窗口站已经一个默认桌面。
    4. 当进程连接到一个窗口站以后,Windows子系统给调用线程分配一个桌面。分配桌面规则如下:
    • a . 该线程已调用过SetThreadDesktop指定了桌面。
    • b.  从父进程继承一个桌面。
    • c.  如果该线程没有调用SetThreadDesktop,也不能从父进程获得桌面,那么,Windows子系统按以下顺序选择桌面:
    1. 进程创建函数CreateProcess 的STARTUPINFO参数指定的桌面名称。
    2. 否则,连接到该进程所连接的窗口站的默认桌面。

    窗口站被注册到对象管理器名字空间的\\Windows\WindowStations目录下或“\Sessions\<X>\Windows\WindowStations”目录下,X表示会话ID。如Windows Server 2003 sp1 ,”Windows\WindowStations”目录包含以下5 个窗口站:

    WinSta0

    Service-0x0-3e4$ //NETWORK SERVICE 账户进程所对应的窗口站

    Service-0x0-3e5$ //LOCAL SERVICE 账户

    Service-0x0-3e7$  //SYSTEM 账户下的

    SAWubSta       //由任务调度器(Task Scheduler,一个svchost)创建的

    WinSta0是登录用户的默认窗口站,Service-0x0-<xxx>$是非交互式窗口站。

    任何一个进程都属于一个会话。在Windows中,会话是按编号来区分的。在系统控制台登录的用户会话为Session 0,远程桌面或终端服务登录到系统中的会话可以是Session 1、Session 2等。每个会话包含一个或多个窗口站,每个窗口站包含一个或多个桌面。

    EnumWindowStations 列举当前会话的窗口站

    EnumDesktops 列举指定窗口站的桌面

    EnumDesktopWindows 列举指定桌面的所有顶级窗口

    窗口是Windows子系统中的对象,由win32k.sys 来管理的内核对象,以句柄(HWND)的方式暴露给应用程序代码。每个会话实力都维护一个句柄表,该句柄表由两部分组成:一是该对象在句柄表中的索引,二是确保句柄唯一性的部分。

    Windows子系统支持5种窗口:

    1. 可重叠窗口(overlapped window),是桌面上的顶级窗口,通常有标题、边框和客户区域。
    2. 弹出式窗口(pop-up window),是一种特殊的可重叠窗口,往往用做对话框、消息框或者临时跳出应用程序主窗口的窗口。
    3. 子窗口(child window),他们有父窗口,并且受限于父窗口的客户区域。
    4. 层次窗口(layered window),用于实现不规则形状的窗口,或者窗口的形状有动画效果,或者窗口有半透明效果。
    5. 消息窗口(message-only window),仅仅用于发送和接收消息,不可见,不参与桌面上窗口的层次交叠,也不会被列举到。

    Windows子系统为桌面中的所有窗口定义了一个z- 序(z-order),即深度顺序。在z-序中,最上面的窗口用户可以看到。

    Windows子系统内置了7种窗口类:按钮(Button)、组合框(ComboBox)、编辑框(Edit)、列表框(ListBox)、多文档界面中的子窗口(MDIClient)、滚动条(ScrollBar)和静态文本(Static)。Windows 内部使用的窗口类: 组合框内涵列表框(ComboLBox)、DDE管理库事件(DDEMLEvent)、消息窗口(Message)、菜单(#32768)、桌面窗口(#32769)、对话框(#32770)、任务切换窗口(#32771)和图标(#32772)

    CreateWindow或CreateWindowEx 创建一个窗口,对应的win32k.sys系统服务为NtUserCreateWindowEx.;

    EnumThreadWindows 列举一个线程创建的窗口;

    EnumChildWindows 列举某一指定窗口的所有子窗口;

    FindWindow 查找指定类名称或窗口名称的窗口;

    FindWindowEx 查找子窗口对象

    SetProp、GetProp 设置或获取一个命名属性;

    EnumProps 列举一个窗口的命名属性。

    Windows 为应用程序提供了消息驱动的编程模型,负责处理用户的线程的主题逻辑通常是一个消息循环,代码如下:

    for(;;)

    {

           if(bRet = GetMessage(&msg,NULL,0,0))//从消息队列中获得一个消息

           {

                  if(bRet =-1) goto ErrorExit; //严重错误处理

                  TranslateMessage(&msg) ; //处理按键消息,将虚拟键消息转译为字符消息

                  DispatchMessage(&); //将消息分发到负责处理该消息的窗口

           }else

           {

                  Break;  //线程接收到WM_QUIT 消息,退出循环

           }

    }

    消息结构定义如下:

    typedef struct tagMSG {

    HWND hwnd;  //接收该消息的窗口的句柄

    UINT message; //消息标识符,WM_USER(0x400)以下的消息为系统保留

    WPARAM wParam; //该消息的参数,其含义取决于message的值

    LPARAM lParam;  //该消息的参数,其含义取决于message的值

    DWORD time; //该消息被寄到队列中的时间

    POINT pt;    //记录了当该消息被寄到队列中时的光标位置(按屏幕坐标)

    } MSG,*PMSG;

    Windows子系统为GUI线程维护了一个消息队列。消息循环不断地获取消息并交给消息的目标窗口的窗口过程来处理。

    Windows子系统的消息流,如图:

    在每个会话中,Windows子系统进程(csrss.exe)都会创建一个RIT(Raw Input Thread),该线程负责从设备驱动程序获得原始的输入,然后将消息寄到正确的队列中。鼠标的输入是由桌面线程(Desktop thread)的线程来接收的,然后交给RIT线程分发到应用线程中。键盘事件或其他的HID(Human Input Device)事件则直接由RIT线程从设备驱动中获得。

    RIT或桌面线程获得输入事件的做法:

    1. 向设备发起一个异步操作,在读操作中指定一个APC例程,当设备驱动程序由数据可提供时,I/O管理器在完成时将此APC例程插入到原线程中。
    2. 此APC例程在获得了当前的输入事件后,再次发起一个异步读操作,然后返回。
    3. 当设备驱动程序由输入数据时,会再次出发APC例程。
    4. 以此类推,可通过APC例程不停地接收输入设备的数据。

    在一个GUI线程的消息循环中,当该线程要获取一个消息时,win32k.sys 中的系统服务NtUserGetMessage必须检查两个队列:首先检查系统队列,即输入消息队列;如果该队列中没有满足条件的消息,则在检查应用队列,即寄入消息队列。

    应用程序调用DispatchMessage处理一个消息时,有两种情况是必须要进入内核的:

    1. 这是一个系统定时器消息
    2. 消息的窗口类著名了这是一个内核窗口类型。

    Windows 子系统的消息钩子(hook)机制,SetWindowsHookEx 来安装钩子,UnhookWindowsHookEx 卸载钩子。每个线程可以有多个钩子,按照不同的类型形成一个或多个钩子链(hook chain)。如下表:

    钩子类型

    说明

    WM_CALLWNDPROC

    在系统发送一个消息到目标窗口过程之前调用的钩子函数

    WM_CALLWNDPROCRET

    在一个消息被目标窗口过程处理之后调用的钩子函数

    WH_CBT

    在接收CBT(Computer-Based Training)事件之前调用的钩子函数,这里CBT事件是指系统在处理窗口重要事件、同步消息队列等时引发的各种消息

    WH_DEBUG

    用于调试其他的钩子函数

    WH_FOREGROUNDIDLE

    当应用程序的前台线程变成空闲时调用的钩子函数

    WH_GETMESSAGE

    当应用程序调用GetMessage或PeekMessage从消息队列种获取消息时调用的钩子函数

    WH_JOURNALPLAYBACK

    应用程序使用此钩子函数回放一序列由WM_JOURNALRECORD钩子记录下来的鼠标和键盘消息

    WH_JOURNALRECORD

    当子系统从系统消息队列中移除消息时,调用此钩子函数,因而该钩子函数可以记录下消息序列

    WH_KEYBOARD

    当应用程序调用GetMessage或PeekMessage获取一个键盘消息时调用的钩子函数

    WH_KEYBOARD_LL

    当一个键盘输入事件被插入到线程的输入队列中时调用的钩子函数

    WM_MOUSE

    当应用程序调用GetMessage或PeekMessage获取一个鼠标消息时调用的钩子函数

    WM_MOUSE_LL

    当一个鼠标输入事件被插入到线程的输入队列中时调用的钩子函数

    WH_MSGFILTER

    当对话框、消息框、菜单或滚动条中的键盘或鼠标操作导致产生的消息被处理时调用的钩子函数

    WH_SHELL

    通过此钩子函数可以接收系统的Shell事件的通知

    WM_SYSMSGFILTER

    当对话框、消息框、菜单或滚动条中的键盘或鼠标操作导致产生的消息被处理时调用的钩子函数,是全局钩子

    所有的钩子都是在内核模式下被激发的,钩子函数是用户模式的。Windows子系统通过KeUserModeCallBack 来调用指定的钩子函数。KeUserModeCallback 和KiCallUserMode 函数机制,他们构造一个陷阱帧,利用系统服务返回机制,指定运行ntdll.dll 的KeUserCallbackDispatcher,由它调用指定的用户钩子函数。待钩子函数返回后,KeUserCallbackDispatcher 通过NtCallbackReturn 系统服务返回内核模式,回到KeUserModeCallback。

    Windows中从内核回调到用户模式在返回内核的执行过程,如图:

     

    展开全文
  • 解决Windows 11安卓子系统,US”发布的框架“Microsoft.VCLibs.140.00.UWPDesktop”(具有中性或 x64 处理器体系结构,最低版本为 14.0.30035"错误 解决Windows 11安卓子系统,发布的框架“Microsoft.UI.Xaml.2.6”...
  • Windows下安装Linux子系统 第一步: 打开设置=>更新与安全=>开发者选项, 找到”从任意源(包括松散文件)安装应用“,打开它 它有可能会提示”是否成为开发者“,按自己情况选择,这边我选择了”确定“ 第二步: ...

    最近特别想学Ubuntu,但貌似树莓派只支持Debian,我也没那么多TF卡("_")

    去网上找了找,发现可以在Windows下安装Linux子系统,于是我经过多次几乎要将树莓派报废的尝试,最终终于成功了(T_T)

    将过程写出来分享,供参考

    ------------正文------------

    1. 硬软件信息

    软件:Windows 11

    硬件:树莓派4B(不是树莓派应该也可以)

    2. 安装过程

    第一步:

            打开设置=>隐私与安全性=>开发者选项,

            找到”从任意源(包括松散文件)安装应用“,打开它

            

            它有可能会提示”是否启用开发人员模式“,按自己情况选择,这边我选择了”确定“

    第二步:

            打开设置=>应用=>可选功能=>更多Windows功能(如图所示)

            往下滑,勾选“适用于Linux的Windows子系统",然后等它安装几分钟

            然后重启(系统应该会提示你)

    第三步:

            打开Microsoft Store(光是打开就花了5分钟,树莓派CPU温度上升到70°C,所以请耐心等待),搜索Linux,选择想装的版本,这边选的是Ubuntu 20.04 LTS(如果要装Ubuntu的建议选红框圈出来的Ubuntu 20.04/18.04 LTS这两个版本,没有版本号的听说有坑)

            点击“获取”(我用箭头标出的那个,因为已经点过了所以没显示出来),Microsoft Store就会自动帮你下载安装,时间因童鞋们的电脑而异,反正等亿会~

            下载安装完退出Microsoft Store

    第四步:

            点击搜索图标,搜索“Ubuntu”,在弹出的窗口点击“运行”

            接着会弹出一个窗口,标题是Ubuntu 20.04 LTS(因版本而异,一般都有Ubuntu),等它安装亿会儿

            

            安装完成后它会提示你输入用户名和密码(不会显示出来,盲打就行)

            接着就是愉快的食用时间

            (请注意,Windows下的文件被挂载到了/mnt/c(盘符)上了

               所以要访问Windows文件要cd /mnt/盘符)

            (如果报0x800701bc错误,可以参考一下这篇文章(第5步复制的时候要将2改成1):旧版 WSL 的手动安装步骤 | Microsoft Docshttps://docs.microsoft.com/zh-cn/windows/wsl/install-manual        

    3. 换源、安装配置Python3及Pip3、安装配置Java(后两个可选)

    一、换源

            由于Ubuntu自带的源实在太慢,所以一定要换源

            第一步查看Ubuntu的开发代号:

    lsb_release -c

            Codename: 后面的单词拿个小本本记下来,后面要用

            随后用nano编辑器打开/etc/apt/sources.list

    sudo nano /etc/apt/sources.list

            (nano可以换成如vim这样你熟悉的编辑器)

              将原文全部用 # 注释掉,添加如下代码:

    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

                ARM64架构的看这里:

    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse

          (这里换的是清华源)

            这时候,拿出刚刚的小本本,把代码块里面的“focal”全部替换成刚刚记的单词

            然后保存,退出编辑器

            输入“sudo apt-get update"更新软件列表即可

    二、安装配置Python3及Pip3(可选)

            1. 下载python3和pip3

            用apt-get安装python3和pip3:

    sudo apt-get install python3-dev python3-pip

            安装完成后输入python3即可进入shell环境,输入python3 文件名.py即可运行python程序

            2.给pip3换源

            创建pip.conf文件: 

    mkdir -p /home/用户名/.pip
    touch /home/用户名/.pip/pip.conf

            (在键入命令时,“用户名”要替换成你真实的用户名,如果你现在登录的不是root用户,"/home/用户名"可以替换成“~”)

            用nano编辑器打开pip.conf文件:

    nano /home/用户名/.pip/pip.conf

            (同样的,在键入命令时,“用户名”要替换成你真实的用户名,nano也可以换成如vim这样你熟悉的编辑器)

            在编辑器里输入

    [global]
    timeout = 6000
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    trusted-host = https://pypi.tuna.tsinghua.edu.cn

            (这里换的也是清华源)

            保存,退出编辑器

            试试执行“pip3 install django”,你应该会发现下载速度快了很多

            (Django是一种基于Python的网站服务器,如果不需要可以“pip3 uninstall django”)

    三、安装配置Java(可选)

            点开Java官方下载链接 =》Java Downloads | Oracle

            在里面选择想要的JDK文件下载,由于我用的是树莓派4b,选择的版本是JDK-17,文件是jdk-17_linux-aarch64_bin.tar.gz

            然后打开Ubuntu终端,移动jdk压缩包到/usr/local目录下:

    mv 下载路径/下载文件名 /usr/local

            (里面的“下载路径”“下载文件名”要替换成真实的,默认是/mnt/c/Users/用户名/Downloads/文件名)

            接着解压压缩包:

    cd /usr/local
    tar zxvf 文件名

           查找JDK真实目录名:

    ls | grep jdk

            拿出刚才的小本本,将打印结果记下来~

            然后用nano编辑器打开/etc/profile:

    sudo nano /etc/profile

            在末尾加上如下代码:

    export JAVA_HOME=/usr/local/Java真实目录名
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

            拿出刚才的小本本,将“Java真实目录名”替换成刚刚记下来的打印结果,然后保存退出

            输入如下命令使更改生效:

    source /etc/profile

            这时候,输入java --version(JDK-17)或java -version(JDK-8),应该会显示类似这样的内容:

    java 17.0.1 2021-10-19 LTS
    Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

            说明成功了~

    4.  总结

            总体来说,这个系统还是挺好用的,至少满足了我学习Ubuntu的需求

            但是不能用图形化界面就有点烦,对小白不友好~

            如果我配置图形化界面成功了,会及时分享出来

    展开全文
  • 本BLOG上原创文章未经本人许可,不得用于商业用途...第四步:进入“控制面板” => 点击“启动或关闭Windows功能” => 勾选“适用于Linux的Windows子系统” 第五步:上步骤设置完成后,重启电脑即可。 第六步:下载Ubunt
  • Windows子系统之Ubuntu 20.04 LTS

    千次阅读 2020-04-26 17:43:32
    了解Linux和Windows操作系统之间的历史的人,普遍认为开源的Linux、闭源的Windows应该是势不两立,其实并非如此,微软一直是支持开源社区的,也非常接纳Linux操作系统,Windows 10就加入了全新的Linux子系统(WSL)。...

    一 概述

    了解Linux和Windows操作系统之间的历史的人,普遍认为开源的Linux、闭源的Windows应该是势不两立,其实并非如此,微软一直是支持开源社区的,也非常接纳Linux操作系统,Windows 10就加入了全新的Linux子系统(WSL)。昨日,Ubuntu 20.04 LTS正式版发布,这是又一个LTS长期支持版,官方提供为期5年的更新升级、安全修复等服务。与此同时,Ubuntu 20.04 LTS已经出现在Microsoft Store应用商店内提供免费下载使用,这也是16.04LTS、18.04 LTS版本之后,微软第三次以这样的官方渠道分发Ubuntu。当然了,微软提供的Ubuntu 20.04 LTS不是独立的系统安装镜像,而是用于在Windows 10之上作为子系统存在。

    二 安装过程中出现的问题

           1. Windows 10 S版本不支持安装Ubuntu作为子系统。

               原因:Win10 S属于一个特殊的Windows 10版本,简单来说就是“精简版”,它有着开机快、价格便宜、兼容性更好,硬件要求更低等特点,主要针对教育市场、学生用户而开发。Win10 S是一个比家庭版更精简的Win10系统,比如无法安装第三方软件,只能安装 Microsoft应用商店中的软件 ,安全性虽然很高,但局限性明显,因此并不适合普通用户使用。

           2. WslRegisterDistribution failed with error: 0x8007019e

               

               解决方案: 控制面板-->程序与功能-->启动或关闭Windows功能勾选适用于Linux的Windows子系统系统会进行一些加载,加载后系统提示重启。

               

              重启的过程中系统会进行一些设置更新,完成后就可以运行Linux子系统。

              第一步进行用户名和密码设置,设置的过程中用户名用小写字符,否则出现错误。

              adduser - “Failed to create user” due to regular expression error - Ask Ubuntu

              原因:Linux在创建用户的时候用户名只能是小写,出现错误的原因就是创建用户时使用了大写。

               

              成功创建用户之后就可以使用该用户身份使用操作Linux子系统。

               

    Windows 10用户只需开启WSL服务,而无需更多调整,就可以直接下载、安装、使用Ubuntu 20.04 LTS的终端、命令行工具,包括bash、ssh、git、apt等等、x86、ARM架构平台均支持。

    注意:微软提供作为子系统的Ubuntu LTS,只有3年的支持周期,所以上个版本18.04 LTS依然可以继续使用一年,而且可以和最新的20.04 LTS同时下载、使用,互不干扰,而更早的16.04 LTS去年就已经过期了。

    展开全文
  • windows应用商店安装ubuntu子系统错误 具体详情参考:超详细攻略 (一)报错 :WslRegisterDistribution failed with error: 0x8007019e== 1.报错详情: Installing, this may take a few minutes… ...
  • 解决WIN11安卓子系统,US”发布的框架“Microsoft.VCLibs.140.00.UWPDesktop”(具有中性或 x64 处理器体系结构,最低版本为 14.0.30035"错误 解决WIN11安卓子系统,发布的框架“Microsoft.UI.Xaml.2.6”错误 使用...
  • Windows10子系统Ubuntu入坑

    千次阅读 2020-04-23 11:59:31
    Windows10子系统Ubuntu入坑简介下载安装安装环境依赖安装Ubuntu配置更换源查看Ubuntu版本1.打开Ubuntu2.输入命令并回车运行,可以复制粘贴3.如图,18.04 LTS就是版本号,请记住它。更换为清华源1.先备份原有的源,给...
  • windows-sys15:windows11 Android 子系统安装和apk应用安装

    千次阅读 热门讨论 2021-10-23 19:04:10
    1 安装条件 必须是windows11系统,系统版本号为 22000.282 如果你的电脑满足windows11的硬件...2 安装Android 子系统 2.1 Microsoft Store下载安装 下载地址:https://www.microsoft.com/store/productId/9P3395VX91NR
  • Windows10下安装Linux子系统

    万次阅读 热门讨论 2019-07-09 22:45:29
    Windows10下安装Linux子系统 版本说明 版本 作者 日期 备注 0.1 ZY 2019.7.9 初稿 目录 文章目录Windows10下安装Linux子系统版本说明目录一、初衷二、资料收集三、官方安装说明1、准备2、安装所选的 ...
  • windows11子系统Ubuntu安装docker

    千次阅读 2021-12-18 14:45:54
    子系统Ubuntu中安装docker步骤: 一、ubuntu中执行命令: 执行前请切换到root用户进行操作,否则在命令前加上"sudo " 例如:sudo apt-get update 卸载可能存在的旧版本: apt-get remove docker docker-engine ...
  • 适用于 Linux 的 Windows 10/11 子系统(WSL2)安装指南
  • 子系统:wsl2-ubuntu(20.04)LTS wsl2要求连接PC需要通过ip连接 我这里是需要通过Xshell连接ubuntu。使用ssh协议 1.ubuntu需要开启sshd服务 2.不清楚为什么我边默认安装完成后服务是不开启的 3.xshell和mobaX-Term...
  • 软件丰富适合日常使用的 Windows 与开源适合开发的 Linux 结合使开发更加简便,不用再考虑双系统虚拟机这种效率不高的方式了。
  • WIN10的所有`非精简版的系统`,都已经`内置Linux内核`,可以直接打开一个PC应用一样使用`Ubuntu子系统`。这是非常Cool的体验,并且经历了一段时间的完善和摸索,现在应用起来都非常成熟。 本教程包含 - **启用linux...
  • Windows 10安装Linux子系统、可视化Linux、子系统中openfoam
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    万次阅读 多人点赞 2019-05-14 19:44:52
    Windows10下访问Ubuntu子系统(WSL)的桌面环境 文章目录Windows10下访问Ubuntu子系统(WSL)的桌面环境Why Linux ?Why WSL ?开始WSLUbuntu换源更新与升级安装桌面环境xubuntu安装远程桌面服务xrdp配置xrdp端口...
  • Windows10 安装kali linux子系统

    万次阅读 多人点赞 2018-10-09 23:54:47
    2.打开windows子系统功能 3.安装子系统,在windows商店搜索wsl 安装 安装完成后设置用户名为kali,设置密码 至此命令行kali安装完成 4.安装图形化界面 安装vim sudo apt-get install vim 更换kali源 sudo vim /...
  • windows10一键安装ubuntu子系统,以及安装完成后基础操作
  • Windows下Linux子系统的安装与使用 wsl

    千次阅读 2020-07-30 23:31:06
    犹记初入新公司第一天安装windows的linux子系统和docker时,因为网络不稳定、windows系统和docker版本等原因安装过程并不顺利。所以一直想要把这个过程记录下来。 最近工作并不忙,空下心来好好梳理了一番。 因为...
  • windows10 卸载ubuntu子系统失败

    千次阅读 2019-03-03 12:00:51
    网上一般对windows子系统卸载的回答都是: lxrun /uninstall /full 但是会产生报错,报错信息如下: C:\WINDOWS\system32&amp;gt;lxrun /uninstall /full 警告: lxrun.exe 仅用于配置适用于 Linux 的 Windows...
  • windows上运行Linux子系统

    千次阅读 2020-10-04 16:02:32
    config文件,设置 PasswordAuthentication yes 打开/etc/ssh/sshd_config文件,设置 Port 22 ListenAddress 10.10.28.225 //win进入ubantu子系统模式 以管理员身份运行终端,输入bash或者ubuntu回车
  • 安装适用于 Linux 的 Windows 子系统 (WSL) 时有两个选项: 简化安装(预览版):wsl --install 要使用wsl --install简化安装命令,你需要加入Windows 预览体验计划并安装 Windows 10 的预览版(OS 版本 20262 ...
  • 但是在Windows10的系统上,我们可以使用Linux子系统,这一更加轻量,便捷的方式使用Linux系统。 要使用Linux子系统,我们首先需要开启这个windows功能,如下图所示。 经过一段时间的配置之后,系统会要求进行重启,...
  • 安装Windows Terminal可以直接在应用商店里搜就行,如下:如果搜索的时候转圈圈,多搜几下就ok了,众所周知国外的东西没有几个是不转圈圈的。(这里注意一点搜索下载的时候不要开代理,...在windows系统上开启子系统
  • 关于windows下如何安装linux子系统教程很多,可以自行百度,我采用的是Microsoft Store下载安装的方式,但是在启动Ubuntu的时候...每个子系统通常都有一个子系统服务进程和一个内核态驱动,对于Windows子系统,分...
  • windows10 ubuntu子系统安装软件ipython3软件遇到错误 E: Unable to locate package ipython3 先说原因,是因为Ubuntu默认配置的源并不是国内的服务器,下载更新软件都比较慢,导致无法安装。为了解决这个问题,将...
  • 安装Windows子系统(WSL2)-Ubuntu

    千次阅读 2021-11-10 22:35:47
    参考资料 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual ...安装步骤 启用适用于 Linux 的 Windows 子系统 以管理员身份启用powershell dism.exe /online /enabl

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 244,246
精华内容 97,698
关键字:

windows子系统设置错误