在 Win10 上如何安装 WSL 2 ?
在 Windows 10 系统上安装 WSL 2,可按以下步骤操作:
步骤 1:启用 WSL 功能
- 以管理员身份打开 “PowerShell”。你可以通过在开始菜单搜索 “PowerShell”,然后右键点击它并选择 “以管理员身份运行” 来打开。
- 在 PowerShell 中输入以下命令并回车,以启用适用于 Linux 的 Windows 子系统功能:
- 该命令执行完毕后,不要重启计算机,接着进行下一步。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
步骤 2:启用虚拟机平台功能
- 在 PowerShell 中输入以下命令并回车,以启用虚拟机平台功能:
- 完成此命令后,重启计算机。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤 3:下载并安装 Linux 内核更新包
- 打开浏览器,访问适用于 x64 计算机的 WSL2 Linux 内核更新包,下载内核更新包。
- 下载完成后,运行安装程序,按照提示完成安装。
步骤 4:将 WSL 2 设置为默认版本
- 重启计算机后,再次以管理员身份打开 PowerShell。
- 在 PowerShell 中输入以下命令并回车,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
步骤 5:安装 Linux 发行版
- 打开 “Microsoft Store”。
- 在搜索框中输入你想要安装的 Linux 发行版,例如 “Ubuntu”“Debian” 等。
- 选择你喜欢的发行版,点击 “获取” 按钮进行下载和安装。
- 安装完成后,启动该发行版,按照提示设置用户名和密码等信息。
完成以上步骤后,你就成功在 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 发行版时,有以下这些注意事项:
系统层面
- 系统版本要求:要保证 Windows 10 是 2004 及更高版本(内部版本 19041 及以上),或者 Windows 11 系统,才可以支持 WSL 2。你可以在 “设置”>“系统”>“关于” 里查看系统版本。
- 硬件支持:确保你的电脑支持虚拟化技术,并且在 BIOS 中已开启该功能。不同品牌电脑进入 BIOS 的方式不同,一般是在开机时按 F2、F10、Del 等键。
- 磁盘空间:Linux 发行版需要一定的磁盘空间来完成安装和后续使用。不同发行版所需空间不同,通常至少要预留 5GB 以上的磁盘空间。
安装过程
- 选择合适的发行版:Microsoft Store 里有多种 Linux 发行版可供选择,像 Ubuntu、Debian、Kali Linux 等。你要依据自身需求来挑选,例如,Ubuntu 适合新手,而 Kali Linux 则常用于安全测试。
- 设置默认 WSL 版本:WSL 有两个版本,WSL 1 和 WSL 2。WSL 2 性能更优,但部分场景下 WSL 1 兼容性更好。你可以使用
wsl --set-default-version <versionNumber>
命令设置默认版本,这里<versionNumber>
可以是 1 或者 2。 - 网络配置:安装过程中,Linux 发行版可能需要联网下载必要的文件。要保证你的网络连接稳定,同时防火墙或代理设置不会阻碍安装。
用户配置
- 用户名和密码设置:首次启动 Linux 发行版时,需要设置用户名和密码。这个用户将是 Linux 系统里的默认用户,要牢记用户名和密码,因为后续很多操作都需要使用。
- 更新系统:安装完成后,建议及时更新 Linux 系统,以获取最新的安全补丁和软件更新。可以使用对应发行版的包管理器来进行更新,例如在 Ubuntu 中使用
sudo apt update && sudo apt upgrade
命令。
与 Windows 交互
- 文件系统访问:WSL 和 Windows 可以互相访问对方的文件系统。在 WSL 里,Windows 文件系统挂载在
/mnt
目录下;在 Windows 中,可以通过\\wsl$
访问 WSL 文件系统。不过要留意文件权限和性能问题。 - 环境变量设置:若需要在 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 如何更改到国内镜像网址?