WSL2 安装 Arch Linux 子系统

2023-11-16

WSL 介绍与安装

Windows Subsystem for Linux (以下简称为 WSL)允许开发人员直接在Windows上运行GNU/Linux环境,包括大多数命令行工具、实用程序和应用程序,无需修改,无需传统虚拟机或双引导设置的开销。

本部分主要以 WSL2 作为操作对象,不涉及 WSL1 相关内容,若对于其他内容感兴趣,请参考微软官方文档WSL1WSL2 的更新请升级对应的 WSL 内核

上述官方文档提供了安装的具体方法,本部分下面会以 Arch Linux 为例讲述如何构建其它官方不支持的 Linux 子系统。

安装 Arch Linux 子系统

安装前准备

Arch官网下载地址选择离你最近的镜像站(例如清华大学 Arch 镜像),下载名字形如 archlinux-bootstrap-<version>-x86_64.tar.gz 的 bootstrap 镜像

镜像安装

  1. 首先需要下载最新版的 LxRunOffline,或者通过下述两种方式快速安装
scoop bucket add extras
scoop install lxrunoffline
choco install lxrunoffline
  1. 然后在命令行下输入下述命令进行镜像安装
# 安装名称:你想称呼你的系统叫什么名字,对应wsl启动时名称叫法
# 安装路径:你希望镜像被安装到哪里(一个你能记住的指定位置)
# 安装文件:之前下载的archlinux-bootstrap-<version>-x86_64.tar.gz文件
LxRunOffline i -n <安装名称> -d <安装路径> -f <安装文件> -r root.x86_64
# 例如我给我的镜像起名为Arch,希望安装在 D 盘根目录,则可以运行如下命令:
# LxRunOffline i -n Arch -d D:/ -f archlinux-bootstrap-<version>-x86_64.tar.gz -r root.x86_64

其它疑问以及详细的使用手册可以参照 LxRunOffline 说明文档

如果想要自己手动安装可以参照 arch_linux_wsl2

系统配置

  1. 在命令行中输入如下命令来启动对应的 Arch 子系统镜像:
# 安装名称:与安装过程中的安装名称对应
wsl -d <安装名称>
# 例如之前的过程中我将其起名为Arch,则应该执行如下命令:
# wsl -d Arch
  1. 初始化keyring
# 初始化keyring
pacman-key --init
# keyring填充
pacman-key --populate
  1. 此时直接更新系统可能无法解析网络的问题,需要运行如下命令更新系统的镜像。
# 此处默认镜像列表为中国CN地区
# 如果是别的国家请访问:https://archlinux.org/mirrorlist/
# 可以自动生成对应的 mirrorlist
curl "https://archlinux.org/mirrorlist/?country=CN&protocol=https&ip_version=4&use_mirror_status=on" | cut -c 2- > /etc/pacman.d/mirrorlist
  1. 更新系统,安装基础环境
# 更新系统
pacman -Syu
# 安装一些常用组建
pacman -S base-devel

以上步骤完成即可以 Root 用户身份进入子系统中。

设置子系统默认登陆用户

各种 Linux 子系统通常默认使用 root 用户登录。
当我们在子系统中创建了一个普通用户后,可以按照如下步骤来配置子系统默认的登录用户:

首先我们需要知道自己的子系统名称,我们可以用如下命令查看当前系统中的所有子系统及其名称:

wslconfig /list

找到我们需要设置默认用户的子系统,在命令行中执行如下命令即可完成默认登陆用户的变更:

# DistributionName:对应上面一步中我们查看到的系统对应的名称
<DistributionName> config --default-user <username>
# 以 ubuntu 为例,如果要设置 easternday 为默认登陆用户,则输入如下指令:
# ubuntu config --default-user easternday
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL2 安装 Arch Linux 子系统 的相关文章

  • 在VB.net中动态添加用户控件

    我在 Vb net Windows 应用程序 中制作了自定义 UserControl 如何将其动态添加到表单中 UserControl 本质上只是另一个类 它继承自 Control 因此您可以使用控件执行各种操作 但除此之外它只是一个类 因
  • 使用“for”循环迭代目录中的所有文件

    如何使用 a 迭代目录中的每个文件for loop 我如何判断某个条目是目录还是文件 这会递归地列出当前目录及其子目录中的所有文件 并且仅列出文件 for r i in do echo i 此外 如果您在批处理文件中运行该命令 则需要将 符
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • TCHAR 仍然相关吗?

    我是 Windows 编程新手 在读完 Petzold 的书后 我想知道 使用TCHAR类型和 T 函数来声明字符串或者我应该使用wchar t and L 新代码中的字符串 我将仅针对现代 Windows 截至撰写本文时版本 10 和 1
  • GetEventLogs() 返回没有设置事件日志?

    采取以下 C 代码 EventLog eventLogs eventLogs EventLog GetEventLogs computername foreach EventLog evt in eventLogs statusMessag
  • 将 SWI Prolog 代码编译为 Windows 可执行文件 - 解析器 Grails3 项目

    我正在尝试构建解析器 Grails3 项目https github com RichardMoot Grail https github com RichardMoot Grail谁的教程是http www labri fr perso m
  • 如何以编程方式清除 Kerberos 票证缓存

    有谁知道如何使用托管 非托管代码清除本地计算机上的 Kerberos 票证缓存 提前致谢 我相信你需要打电话给LsaCa llAuthentication包 http msdn microsoft com en us library aa3
  • 在 Windows 上构建 Docker 映像:入口点脚本“没有这样的文件或目录”

    我在这上面浪费了两天时间 直到我终于解决了我的问题 所以我想我会分享 我将概述我在这里遇到的问题 然后概述答案中的解决方案 My Dockerfile看起来像这样 FROM php 7 2 fpm COPY custom docker ph
  • PARITY_NONE 是 C++ Windows 中的关键字吗?

    我正在使用 boost 编写一个串行库 并且我有一个枚举 enum parity t PARITY NONE PARITY ODD PARITY EVEN 我收到如下错误 错误 1 错误 C2059 语法错误 我无法弄清楚问题是什么 然后我
  • 有没有使用 Java 访问 Windows COM 方法的方法?

    我有一个应用程序 它利用 JNA 来调用 C 硬件抽象库中的函数 支持的硬件设备之一需要初始化 Windows COM 子系统 通过 CoInitialize 或 CoInitializeEx 有谁知道有什么 Java 库可以做到这一点吗
  • 如何在 Windows 上安装 PHP 的 PDO 驱动程序?

    我在 Windows 服务器上安装了 Apache PHP 5 6 和 MySQL 5 7 在 php ini 中 我启用了以下内容 extension php mysql dll extension php mysqli dll exte
  • 32位进程在64位操作系统上可以访问多少内存?

    在 Windows 上 正常情况下 32 位进程只能访问 2GB RAM 或通过 boot ini 文件中的特殊开关访问 3GB 在 64 位操作系统上运行 32 位进程时 有多少可用内存 是否有任何特殊的开关或设置可以改变这种情况 默认
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 添加到 .NET 任务栏中的右键单击应用程序菜单

    大多数应用程序只有 恢复 移动 调整大小 最小化 最大化和关闭 但是MS SQL提供了额外的选项 帮助 自定义视图 按照这些思路 是否可以添加到任务栏中应用程序的右键单击菜单 注 我是not指通知区域中时钟旁边的图标 这是一个更简单的ans
  • 如何获取属于某个进程的打开句柄的计数?

    您可以使用该程序流程浏览器 http technet microsoft com en us sysinternals bb896653查看正在运行的应用程序有多少个句柄 有没有办法用Delphi代码来获取这个数字 我有兴趣跟踪应用程序本身
  • 微软怎么能说WinAPI中一个字的大小是16位呢?

    我刚刚开始学习WinAPI 在MSDN中 对WORD数据类型提供了以下解释 WORD16 位无符号整数 范围是十进制 0 到 65535 该类型在 WinDef h 中声明如下 typedef 无符号短 WORD 很简单 而且它与我一直在使
  • 在 python 2 或 python 3 中编写 csv 文件的便携式方法

    在我的 Windows 机器上 我通常在 python 2 中这样做来编写 csv 文件 import csv f open out csv wb cr csv writer f delimiter cr writerow a b c f
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • 为什么 Sleep() 会使后续代码减慢 40 毫秒?

    我最初是在 coderanch com 上询问这个问题的 所以如果您尝试在那里帮助我 谢谢 并且不必重复这个努力 不过 coderanch com 主要是一个 Java 社区 而且 经过一些研究 这似乎确实是一个 Windows 问题 因此
  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op

随机推荐

  • SpringCloud Gateway + Nacos 多模块下整合swagger2

    前言 我们经常在springboot单体项目中 集成swagger来整合接口文档 但是在微服务springcloud项目下 业务模块众多 如果再像之前一样单独访问每个模块的 swagger ui html 则非常麻烦 怎么解决呢 既然我们已
  • 本周新出计算机视觉开源代码汇总(语义分割、目标检测、超分辨率、网络结构设计、训练策略等)

    CV君汇总了过去一周计算机视觉领域新出的开源代码 涉及到图像增广 医学图像分割 图像恢复 目标检测 语义分割 超分辨率 显著目标检测 轻量级网络结构设计 网络规范化 标注工具等 其中有多篇来自CVPR 2019与ICML 2019的论文代码
  • COBOL

    一 COBOL简介 COBOL Common Business Oriented Language 面向过程的高级程序设计语言 二 COBOL语法格式 COBOL程序的每行代码通常分为80列 有非标准的80列可以超过80列 写多少列都可以
  • 【1】python爬虫入门,利用bs4以及requests获取静态网页

    注 本文仅适用于爬虫初级入门者 并不涉及太多技术本质 感谢您阅读此文 最近放假在家 闲时无聊 开始入门了python爬虫 可以完成一些基本的数据爬取 对于一些反爬取例如JS渲染 接口加密等页面仍然处于学习之中 本文就是简单总结最近已熟练掌握
  • PHP实现 美化 打赏点 金额 换算

    方法 function PointConversion je jenum strlen je echo substr je 0 1 万 if jenum 5 jv1 substr je 0 1 jv2 je 1 str jv2 0 jv1
  • mysql workbench使用存储过程

    MySQL 使用存储过程 先来了解一下什么是mysql的存储过程 Mysql存储过程是一个可编程的函数 它在数据库中创建并保存 它可以有SQL语句和一些特殊的控制结构组成 当希望在不同的应用程序或平台上执行相同的函数 或者封装特定功能时 存
  • 4.1.5-检查网页内容是否存在信息泄露

    检查网页内容是否存在信息泄露 ID WSTG INFO 05 总结 程序员在他们的源代码中包含详细的注释和元数据是很常见的 甚至建议这样做 但是 HTML 代码中包含的注释和元数据可能会泄露潜在攻击者不应获得的内部信息 应进行注释和元数据审
  • 颠覆行业

    2023年8月21日 一场盛大的签约仪式在拓世科技集团AI数字人全国营运中心隆重举行 拓世科技集团与湖南谋事科技有限责任公司 下称湖南谋事传奇 正式达成战略合作 共同开启数字人短视频项目合作与招商运营的新篇章 此次签约仪式 吸引了众多业界瞩
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • StyleGAN系列学习笔记

    StyleGAN可以无监督地分离高级属性 例如 姿态 身份 和生成图像中的随机变化 例如 雀斑 头发 控制图像不同层次的视觉特征 StyleGAN v1 Figure 1 传统生成器 vs Style based生成器 给定输入latent
  • Linux深度学习训练笔记

    首先要拥有Linux服务器一台 云服务器或者本地服务器均可 Linux系统上需要安装好cuda与cudnn 查看cuda或者显卡信息 nvidia smi 安装好Anaconda 下一步 配置conda环境 conda create n 环
  • 通过加载ip_nat_pptp模块使iptables支持PPTP穿透

    http blog 163 com kuang yl blog static 16287406201302264231535 通过加载ip nat pptp模块使iptables支持PPTP穿透 之前为了做L7filter的测试 在公司里找
  • 初识c语言

    1 数据类型 char 1字节 short 2字节 int 4字节 long 4字节 long long 8字节 float 4字节 double 8字节 2 编译器默认一个小数为double类型 3 局部变量 在 内定义的变量 全局变量
  • 远程连接MySQL报错ERROR 2003解决办法

    转自 http www 111cn net database mysql 48040 htm 问题代码代码 ERROR 2003 HY000 Can t connect to MySQL server on 192 168 0 19 111
  • C++继承详解

    文章目录 前言 一 继承的概念和定义 1 继承的概念 2 继承的定义 二 继承方式和访问限定符 三 基类和派生类对象赋值转换 四 继承中的作用域 五 派生类的默认成员函数规则 六 菱形继承 七 继承小总结 前言 在现实生活中我们会遇到不同身
  • 单向散列函数(Hash)

    http www cnblogs com happyhippy archive 2006 12 23 601368 html 单向散列函数 Hash 0 Hash函数的性质 常用Hash函数 MD5 128bit SHA 1 160bit
  • Windows系统输入法的相关文件

    以下是Windows ime目录下自带的输入法的相关文件列表 全拼 Winpy ime Winpy mb Winpy hlp Winpy cnt 双拼 Winsp ime Winsp mb Winsp hlp Winsp cnt 微拼 Pi
  • 云计算中的海量数据存储在哪_云计算中的块级数据存储如何工作

    云计算中的海量数据存储在哪 Cloud computing and IT demands are directly proportional to each other To deliver consistency with securit
  • MySQL-分库分表详解(二)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • WSL2 安装 Arch Linux 子系统

    WSL 介绍与安装 Windows Subsystem for Linux 以下简称为 WSL 允许开发人员直接在Windows上运行GNU Linux环境 包括大多数命令行工具 实用程序和应用程序 无需修改 无需传统虚拟机或双引导设置的开