当前位置: 首页 > news >正文

在 Win10 上如何安装 WSL 2 ?

在 Windows 10 系统上安装 WSL 2,可按以下步骤操作:

步骤 1:启用 WSL 功能

  1. 以管理员身份打开 “PowerShell”。你可以通过在开始菜单搜索 “PowerShell”,然后右键点击它并选择 “以管理员身份运行” 来打开。
  2. 在 PowerShell 中输入以下命令并回车,以启用适用于 Linux 的 Windows 子系统功能:
  3. 该命令执行完毕后,不要重启计算机,接着进行下一步。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 步骤 2:启用虚拟机平台功能

  1. 在 PowerShell 中输入以下命令并回车,以启用虚拟机平台功能:
  2. 完成此命令后,重启计算机。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

步骤 3:下载并安装 Linux 内核更新包

  1. 打开浏览器,访问适用于 x64 计算机的 WSL2 Linux 内核更新包,下载内核更新包。
  2. 下载完成后,运行安装程序,按照提示完成安装。

步骤 4:将 WSL 2 设置为默认版本

  1. 重启计算机后,再次以管理员身份打开 PowerShell。
  2. 在 PowerShell 中输入以下命令并回车,将 WSL 2 设置为默认版本:
wsl --set-default-version 2 

步骤 5:安装 Linux 发行版

  1. 打开 “Microsoft Store”。
  2. 在搜索框中输入你想要安装的 Linux 发行版,例如 “Ubuntu”“Debian” 等。
  3. 选择你喜欢的发行版,点击 “获取” 按钮进行下载和安装。
  4. 安装完成后,启动该发行版,按照提示设置用户名和密码等信息。

完成以上步骤后,你就成功在 Windows 10 上安装了 WSL 2 和你选择的 Linux 发行版。


提问:WSL 有何安全漏洞?

WSL(Windows Subsystem for Linux)通常是安全的,但随着技术发展和使用场景变化,也会存在一些潜在安全漏洞,以下是一些常见类型:

提权漏洞

  • 成因:攻击者可能利用 WSL 系统中某些组件的权限管理漏洞,尝试提升自己在系统中的权限。例如,若 WSL 内核模块存在漏洞,攻击者可以通过构造恶意请求,绕过正常的权限检查机制,获取更高的系统权限。
  • 影响:一旦攻击者获得高权限,就能够对系统进行全面控制,如修改系统配置、删除重要文件、安装恶意软件等,严重威胁系统安全和数据完整性。

信息泄露漏洞

  • 成因:在 WSL 与 Windows 系统之间的数据交互过程中,如果数据隔离机制存在缺陷,可能会导致敏感信息泄露。例如,WSL 中的应用程序在与 Windows 应用程序进行数据共享时,没有对数据进行严格的访问控制和加密处理,使得攻击者可以截获并获取这些敏感信息。
  • 影响:攻击者获取敏感信息后,可能会利用这些信息进行进一步的攻击,如身份盗窃、密码破解等,给用户带来严重的损失。

代码执行漏洞

  • 成因:WSL 中的某些软件或服务可能存在代码执行漏洞,攻击者可以通过输入恶意代码,触发漏洞,从而在系统中执行任意代码。例如,若 WSL 中的 Web 服务器存在漏洞,攻击者可以通过构造恶意的 HTTP 请求,在服务器上执行恶意代码。
  • 影响:攻击者可以利用代码执行漏洞,在系统中安装后门程序、下载恶意软件、进行分布式拒绝服务(DDoS)攻击等,严重影响系统的正常运行和网络安全。

资源耗尽漏洞

  • 成因:攻击者可以通过发送大量的请求或执行恶意程序,耗尽 WSL 系统的资源,如 CPU、内存、磁盘空间等。例如,攻击者可以编写一个无限循环的程序,在 WSL 中运行,导致系统资源被大量占用。
  • 影响:当系统资源耗尽时,WSL 系统将无法正常运行,用户将无法访问系统中的应用程序和数据,严重影响工作效率和业务连续性。

微软会持续关注 WSL 的安全问题,并及时发布安全补丁来修复这些漏洞。为了确保系统安全,建议你及时更新 Windows 系统和 WSL 相关组件,避免使用来源不明的软件和服务。


提问:安装WSL后,再安装 Linux 有什么注意事项?

在安装 WSL(Windows Subsystem for Linux)后再安装 Linux 发行版时,有以下这些注意事项:

系统层面

  1. 系统版本要求:要保证 Windows 10 是 2004 及更高版本(内部版本 19041 及以上),或者 Windows 11 系统,才可以支持 WSL 2。你可以在 “设置”>“系统”>“关于” 里查看系统版本。
  2. 硬件支持:确保你的电脑支持虚拟化技术,并且在 BIOS 中已开启该功能。不同品牌电脑进入 BIOS 的方式不同,一般是在开机时按 F2、F10、Del 等键。
  3. 磁盘空间:Linux 发行版需要一定的磁盘空间来完成安装和后续使用。不同发行版所需空间不同,通常至少要预留 5GB 以上的磁盘空间。

安装过程

  1. 选择合适的发行版:Microsoft Store 里有多种 Linux 发行版可供选择,像 Ubuntu、Debian、Kali Linux 等。你要依据自身需求来挑选,例如,Ubuntu 适合新手,而 Kali Linux 则常用于安全测试。
  2. 设置默认 WSL 版本:WSL 有两个版本,WSL 1 和 WSL 2。WSL 2 性能更优,但部分场景下 WSL 1 兼容性更好。你可以使用 wsl --set-default-version <versionNumber> 命令设置默认版本,这里 <versionNumber> 可以是 1 或者 2。
  3. 网络配置:安装过程中,Linux 发行版可能需要联网下载必要的文件。要保证你的网络连接稳定,同时防火墙或代理设置不会阻碍安装。

用户配置

  1. 用户名和密码设置:首次启动 Linux 发行版时,需要设置用户名和密码。这个用户将是 Linux 系统里的默认用户,要牢记用户名和密码,因为后续很多操作都需要使用。
  2. 更新系统:安装完成后,建议及时更新 Linux 系统,以获取最新的安全补丁和软件更新。可以使用对应发行版的包管理器来进行更新,例如在 Ubuntu 中使用 sudo apt update && sudo apt upgrade 命令。

与 Windows 交互

  1. 文件系统访问:WSL 和 Windows 可以互相访问对方的文件系统。在 WSL 里,Windows 文件系统挂载在 /mnt 目录下;在 Windows 中,可以通过 \\wsl$ 访问 WSL 文件系统。不过要留意文件权限和性能问题。
  2. 环境变量设置:若需要在 WSL 和 Windows 之间共享环境变量,可以在 WSL 的配置文件(如 ~/.bashrc 或 ~/.zshrc)中进行设置。

提问:WSL 能安装需要最小的磁盘空间的 Linux 版本是什么?

如果你希望在 WSL 上安装占用磁盘空间较小的 Linux 发行版,下面这些版本值得考虑:

Alpine Linux

  • 空间占用:Alpine Linux 以轻量级著称,安装包通常仅有几兆字节,完整安装后,占用磁盘空间可能在几十兆到一百多兆字节,具体取决于安装的软件和配置情况。
  • 特点:采用了 musl libc 和 BusyBox,这使得它的资源占用非常低。它提供了一个简洁的基础系统,适合用于容器、资源受限的环境或者需要快速部署的场景。同时,Alpine 有自己的包管理工具 apk,方便用户安装和管理软件包。
  • 安装方法:Alpine Linux 不在 Microsoft Store 中直接提供,但你可以从第三方渠道下载适用于 WSL 的 Alpine 发行版,例如可以从 Alpine WSL 获取安装包,下载后按照说明进行安装。

Debian Slim

  • 空间占用:Debian 是一个非常稳定且广泛使用的 Linux 发行版,其 Slim 版本是为了减少磁盘占用而优化的。安装完成后,初始占用空间大概在几百兆字节左右。
  • 特点:Debian 以其稳定性和丰富的软件库闻名。Slim 版本去除了一些不必要的软件和功能,保留了核心系统组件,适合对磁盘空间有一定要求但又希望使用 Debian 生态的用户。它使用 apt 作为包管理工具,方便用户安装各种软件。
  • 安装方法:可以在 Microsoft Store 中搜索 “Debian”,选择合适的版本进行安装。

Arch Linux(精简安装)

  • 空间占用:Arch Linux 本身具有高度可定制性,如果进行精简安装,只安装必要的系统组件,初始安装后占用磁盘空间可能在几百兆字节。不过,这取决于你安装的软件和配置情况。
  • 特点:Arch Linux 遵循滚动更新的模式,用户可以始终使用到最新的软件版本。它提供了强大的 pacman 包管理工具,并且有丰富的用户社区支持。由于其可定制性强,用户可以根据自己的需求灵活配置系统。
  • 安装方法:Arch Linux 不在 Microsoft Store 中直接提供,你可以通过第三方工具如 ArchWSL 来安装。安装过程相对复杂,需要一定的 Linux 基础。

提问:在 Win 10 上安装了 Debian , 请问:Debian 具体安装目录在哪里?

在 Windows 10 上通过 WSL 安装 Debian 后,其文件系统位于 Windows 的特定目录下,具体路径为:C:\Users\<用户名>\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs

其中,<用户名>是你登录 Windows 系统的用户名。在这个 rootfs 目录下,就是 Debian 系统的根目录 /,其下包含了 bin、boot、etc、home、lib 等所有的 Debian 系统目录和文件。
 


#  Debian 升级已安装的软件包
$ sudo apt upgrade
# 使用 apt 包管理器来安装 gcc 和 g++
$ sudo apt install build-essential

Reading package lists... Done
Building dependency tree... Done
The following additional packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu bzip2 cpp cpp-12 dirmngr dpkg-dev fakeroot fontconfig-configfonts-dejavu-core g++ g++-12 gcc gcc-12 gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-servergpgconf gpgsm libabsl20220623 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3libasan8 libassuan0 libatomic1 libavif15 libbinutils libbrotli1 libc-dev-bin libc-devtools libc6-dev libcc1-0libcrypt-dev libctf-nobfd0 libctf0 libdav1d6 libde265-0 libdeflate0 libdpkg-perl libfakeroot libfile-fcntllock-perllibfontconfig1 libfreetype6 libgav1-1 libgcc-12-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libgprofng0 libheif1libisl23 libitm1 libjbig0 libjpeg62-turbo libksba8 libldap-2.5-0 libldap-common liblerc4 liblsan0 libmpc3 libmpfr6libnpth0 libnsl-dev libnsl2 libnuma1 libperl5.36 libpng16-16 libquadmath0 librav1e0 libsasl2-2 libsasl2-moduleslibsasl2-modules-db libsqlite3-0 libstdc++-12-dev libsvtav1enc1 libtiff6 libtirpc-dev libtsan2 libubsan1 libwebp7libx11-6 libx11-data libx265-199 libxau6 libxcb1 libxdmcp6 libxpm4 libyuv0 linux-libc-dev make manpages manpages-devpatch perl perl-modules-5.36 pinentry-curses rpcsvc-proto xz-utils
Suggested packages:binutils-doc bzip2-doc cpp-doc gcc-12-locales cpp-12-doc dbus-user-session pinentry-gnome3 tor debian-keyringg++-multilib g++-12-multilib gcc-12-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-docgcc-12-multilib parcimonie xloadimage scdaemon glibc-doc git bzr libgd-tools gdbm-l10n libsasl2-modules-gssapi-mit| libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql libstdc++-12-docmake-doc man-browser ed diffutils-doc perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perllibtap-harness-archive-perl pinentry-doc
The following NEW packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 cpp cpp-12 dirmngr dpkg-dev fakerootfontconfig-config fonts-dejavu-core g++ g++-12 gcc gcc-12 gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-clientgpg-wks-server gpgconf gpgsm libabsl20220623 libalgorithm-diff-perl libalgorithm-diff-xs-perllibalgorithm-merge-perl libaom3 libasan8 libassuan0 libatomic1 libavif15 libbinutils libbrotli1 libc-dev-binlibc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdav1d6 libde265-0 libdeflate0 libdpkg-perllibfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6 libgav1-1 libgcc-12-dev libgd3 libgdbm-compat4libgdbm6 libgomp1 libgprofng0 libheif1 libisl23 libitm1 libjbig0 libjpeg62-turbo libksba8 libldap-2.5-0libldap-common liblerc4 liblsan0 libmpc3 libmpfr6 libnpth0 libnsl-dev libnsl2 libnuma1 libperl5.36 libpng16-16libquadmath0 librav1e0 libsasl2-2 libsasl2-modules libsasl2-modules-db libsqlite3-0 libstdc++-12-dev libsvtav1enc1libtiff6 libtirpc-dev libtsan2 libubsan1 libwebp7 libx11-6 libx11-data libx265-199 libxau6 libxcb1 libxdmcp6 libxpm4libyuv0 linux-libc-dev make manpages manpages-dev patch perl perl-modules-5.36 pinentry-curses rpcsvc-proto xz-utils
0 upgraded, 107 newly installed, 0 to remove and 0 not upgraded.
Need to get 99.2 MB of archives.
After this operation, 391 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

最后安装失败,原因:网速太慢,只有十几kB,还有一些网址无法连通(美国的)。


# 只能分步骤安装:
$ sudo apt install make
Preparing to unpack .../make_4.3-4.1_amd64.deb ...
Unpacking make (4.3-4.1) ...
Setting up make (4.3-4.1) ... 安装成功

$ sudo apt install gcc 
 还是安装失败
 

参阅下一篇:WSL 安装 Debian 后,apt get 如何更改到国内镜像网址?

相关文章:

  • Serverless
  • 网狐飞云娱乐三端源码深度实测:组件结构拆解与部署Bug复盘指南(附代码分析)
  • 告别散乱的 @ExceptionHandler:实现统一、可维护的 Spring Boot 错误处理
  • 字符串匹配 之 拓展 KMP算法(Z算法)
  • 如何选择合适的光源?
  • 【阿里云大模型高级工程师ACP学习笔记】2.9 大模型应用生产实践 (下篇)
  • Python异步编程进阶:深入探索asyncio高级特性
  • 在Ubuntu系统中安装桌面环境
  • 基于机器学习算法预测二手车市场数据清洗与分析平台(源码+定制+讲解) 基于Python的数据挖掘与可视化 二手车数据处理与分析系统开发 (机器学习算法预测)
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】6.1 客户分群分析(RFM模型构建)
  • Electron 架构详解:主进程与渲染进程的协作机制
  • 第一章-Rust入门
  • 系统思考:困惑源于内心假设
  • 硬件工程师面试常见问题(14)
  • 信息安全基石:加解密技术的原理、应用与未来
  • Redis的内存淘汰机制
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.1 描述性统计分析(均值/方差/分位数计算)
  • PHP的现代复兴:从脚本语言到企业级服务端引擎的演进之路-优雅草卓伊凡
  • Docker 容器 - Dockerfile
  • [逆向工程]什么是Cheat Engine
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 华东政法与复旦上医签署合作框架协议,医学与法学如何交叉融合?
  • 外交部:国际社会广泛理解和支持中方不同意台参加世卫大会的决定
  • 1至4月全国铁路发送旅客14.6亿人次,创同期历史新高
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会
  • 证券时报:中美互降关税落地,订单集中补发港口将迎高峰期