在Windows11安装任意Linux发行版

在Windows11安装任意Linux发行版

苏苏
2023-01-19 / 0 评论 / 26 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年04月05日,已超过850天没有更新,若内容或图片失效,请留言反馈。

苏苏想在Windows安装alpine的Linux子系统,然而Microsoft Store的alpine wsl不能自定义虚拟磁盘的位置(虽然可以通过软链接方式“骗过”系统),搜索一番后,发现可以通过wsl2来安装任意Linux发行版。

升级wsl至wsl2

Windows11自带的wsl是1.0版本,首先需要将wsl升级至wsl2。具体升级步骤可以参考 微软官网-旧版 WSL 的手动安装步骤 。这里也抄录一份,如微软有更新请参考前文链接。

步骤 1 - 启用适用于 Linux 的 Windows 子系统

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:

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

建议现在转到步骤 #2,更新到 WSL 2,但如果只想安装 WSL 1,现在可以重新启动计算机。若要更新到 WSL 2,请等待重新启动计算机,然后继续执行下一步。

步骤 2 - 检查运行 WSL 2 的要求

若要更新到 WSL 2,需要运行 Windows 10 或 Windows 11。

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2。
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“ 检查更新 ”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。

步骤 3 - 启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要 虚拟化功能 才能使用此功能。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动计算机 ,以完成 WSL 安装并更新到 WSL 2。

步骤 4 - 下载 Linux 内核更新包

一般来讲,大家的pc都是x86/x64的架构,如果不确定,可以执行以下命令检查系统架构。

systeminfo

然后寻找"System Type"或“系统类型”

x86/x64 计算机,请下载 适用于 x64 计算机的 WSL2 Linux 内核更新包

如果使用的是 ARM64 计算机,请下载 ARM64 包

下载完成后运行更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)

步骤 5 - 将 WSL 2 设置为默认版本

wsl --set-default-version 2

至此,wsl已经升级至wsl2。

安装Linux

首先,到 alpine官网 下载镜像。这里,我选择的是“MINI ROOT FILESYSTEM”,最小化的系统优点是体积很小,缺点是很多包需要手动安装。后续的操作可以 参考这里

下载好 tar 文件后,可使用以下命令导入它: wsl --import <Distro> <InstallLocation> <FileName>

其中,Distro指的是安装好后该发行版在你电脑里显示的名字,InstallLocation是产生的虚拟磁盘存放位置,支持绝对地址和相对地址。FileName是安装包所在位置。

如我要安装alpine,可以执行以下命令:

mkdir alpine
wsl --import Alpine alpine alpine-minirootfs-3.17.1-x86_64.tar.gz

使用命令 wsl -l -v 检查已安装的发行版。

已安装发行版

启动Linux

在命令提示符或 PowerShell执行 wsl -d Alpine 即可启动。

可以使用 passwd root 修改root用户的密码。

修改主机名

echo 'myvm' > /etc/hostname
hostname -F /etc/hostname
exit
0

评论 (0)

取消