我正在尝试配置一台新笔记本电脑(Windows 10 企业版 20H2)。我已经使用wsl --install
Microsoft 推荐的命令安装了 WSL。
我已设法导入我之前的 WSL2 Ubuntu 20.04 配置的备份,并将其设置为默认发行版。
PS C:\Windows\System32> wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
然而,当我尝试从开始菜单中的启动器启动 Ubuntu(需要我的旧配置)时,它会安装一个新版本的 Ubuntu 并启动它
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
我尝试使用
PS C:\Windows\System32> wsl --unregister Ubuntu
但问题仍然存在。那么我该如何让启动器(或 Windows 中的正确术语)启动默认版本呢?
答案1
WSL 仅为您通过以下方式安装的发行版创建开始菜单“启动器”(快捷方式):
wsl --install -d <distro>
wsl --install
(带有 WSL 的默认 Ubuntu 发行版)- 或者从 Microsoft Store 安装的
这些开始菜单项指向所谓的“应用程序执行别名”,您可以在设置中的“管理应用程序执行别名”中看到这些。
目前,有两个相互竞争的实例:
Ubuntu
:通过wsl --install
流程安装并显示“开始”菜单上的内容。Ubuntu-20.04
:您的wsl --import
ed 实例。此实例没有“开始”菜单项。通常,您可以通过以下任一方式启动它:- 命令
wsl
- Windows 终端配置文件(实际上将启动
wsl -d Ubuntu-20.04
- 命令
你有多种选择来做你想做的事情:
选项 1(推荐):从 Microsoft Store 安装 Windows Terminal。这是一个(相对较新的)终端,其特点如下:
- 功能更加丰富,旨在取代 Windows 控制台主机(默认情况下由 WSL、PowerShell、CMD 和其他终端应用程序使用)
- 由微软开发
- 开源(github 仓库
- 目前开发非常活跃,定期发布新功能
- 能够成为 Windows 11 中的默认终端
- 能够自动检测并创建您已安装的所有 WSL 实例的配置文件。
无需从“开始”菜单启动“Ubuntu”,只需启动 Windows 终端即可。由于它会自动为 Ubuntu_20.04 创建配置文件,因此您甚至可以将此配置文件设置为默认配置文件。然后启动 Windows 终端将自动启动您的 Ubuntu_20.04 实例。
选项 2(如果您不想使用 Windows 终端,则次佳选项):为 Ubuntu-20.04 创建一个开始菜单项:
- 如果您想要删除“Ubuntu”发行版的“开始”菜单项,请在“开始”菜单中右键单击它,然后选择“卸载”。这将删除
ubuntu.exe
(应用程序执行别名)和“开始”菜单项。 - 要创建指向默认分布的新开始菜单项:
- 在 Explorer 中导航至
%appdata%\Microsoft\Windows\Start Menu
- 右键单击并选择新的->捷径
- 对于“位置”,只需输入
wsl.exe
(甚至wsl
可以) - 将其命名为“Ubuntu”
- 在 Explorer 中导航至
- 如果您想要删除“Ubuntu”发行版的“开始”菜单项,请在“开始”菜单中右键单击它,然后选择“卸载”。这将删除
选项 3:
wsl --import
您喜欢的发行版并为其命名Ubuntu
。wsl --unregister Ubuntu
(通过 `wsl --install 安装的)wsl --import Ubuntu <directory> <your_20.04.tar> --version 2
- 当您从“开始”菜单启动 Ubuntu 时,它应该立即启动您的发行版,因为它正在寻找名为
Ubuntu
而不是 的发行版Ubuntu-20.04
。
选项 4:对于 WSL2 安装,您可以将
ext4.vhdx
文件从导入的实例复制到现有 Ubuntu 实例上。对于此用例,不一定建议这样做,因为以前的方法更安全并且效果同样好。- 从开始菜单启动“Ubuntu”,并使用虚拟用户进行配置。
wsl --shutdown
以确保没有实例正在运行。- 复制
ext4.vhdx
:- 从
wsl --import
:您编辑的位置 - 到:Ubuntu 的默认安装。您应该可以在类似 的地方找到它
%userprofile%\AppData\Local\Packages\CanonicalGroupLimited...\LocalState
。
- 从
- 从开始菜单启动“Ubuntu”,它应该有你的 Ubuntu-20.04 安装。
- 通过以下方式将默认发行版更改为此
wsl --set-default Ubuntu
- 一旦您对一切正常运行感到满意,
wsl --unregister Ubuntu-20.04
请记住,这是一个破坏性的操作,因此请确保一切正常,并Ubuntu
首先确认您正在使用发行版。更好的是,wsl --export
再检查一次,并在执行此操作之前备份。