【Linux】wsl2 安装 ubuntu 并移动安装位置
1. 启用 wsl
首先是启用你的 wsl,参考本站 wsl 安装 centos8 中的第一步安装 wsl 的教程。
启用 wsl 功能后,需要更新一下。如果默认的 wsl --update
命令很慢,可以考虑使用 wsl --update --web-download
命令。下载完毕更新后会弹出一个管理员权限确定框,选择是即可。
1 | # 从微软商店下载wsl更新 |
另外,建议设置 wsl 默认版本为 wsl2,后续其他的操作会方便一些。
1 | # 设置wsl默认版本为2,不然ubuntu可能安装失败 |
wsl1 和 2 的区别在于,wsl2 有完整的虚拟机内核,这一点很重要。在 wsl1 中,部分 linux 下的系统调用接口会因为没有完整内核而无法正常执行,或者代码无法正常通过编译。wsl2 下就不会有此类问题。
2. 安装 ubuntu
在微软商店搜索 ubuntu,根据你的需要安装指定的版本,我选择的是标明了版本号的 Ubuntu 22.04.3 LTS
版本。个人也比较推荐这个版本。
下载完毕后,在微软商店里面点击打开,会弹出一个新的终端,进行后续安装流程。
随后会提示你输入一个用户名,以及该用户名的密码。为了方便辨识不同的虚拟机,我直接将用户名设置为 wsl 了。密码随意设置,这个是虚拟机,不需要设置特别复杂的密码。
注意此处输入密码和 linux 系统里面输入密码的时候,都是不会有任何提示的,这是正常情况,输入之后回车就可以了。
1 | Installing, this may take a few minutes... |
在 wsl 的 linux 终端中输入 exit 可以退出,回到 windows 的终端。
在 windows 的终端里面使用 wsl -l -v
命令可以看到当前安装的 ubuntu 虚拟机
1 | PS C:\Users\S2522> wsl -l -v |
注意这里的 version 是 1,是因为我最开始的时候没有将 wsl 默认设置为 wsl2,可以用如下命令进行版本的修改。如果 wsl -l -v
命令显示的 version 已经是 2 了,则不需要做额外操作。
1 | wsl --set-version Ubuntu-22.04 2 |
如果你的 ubuntu 安装了之后没有出现上面贴出的初始化用户名和密码的步骤,可以参考下图执行 wsl --unregister 虚拟机名字
命令,卸载并删除已有虚拟机之后,重新运行开始菜单里面的 ubuntu 22.04 程序。
3. 移动 ubuntu 安装位置
参考: WSL 修改默认安装目录到其他盘
此时先不要急着做下一步,因为默认情况下这个 wsl 主机是安装在 C 盘的,对于 Linux 系统而言,后续用久了容易涨到 30GB 甚至更大的存储空间消耗。除非你的 C 盘有非常非常非常多的剩余空间,不然还是建议移动到其他盘去重新安装。
首先用 shutdown 命令关闭虚拟机
1 | wsl --shutdown |
随后用 export 导出命令将该虚拟机打包导出到一个存储路径中
1 | wsl --export 虚拟机名字 导出文件路径 |
下面是一个示例命令,稍等片刻即可成功导出。
1 | PS C:\Users\S2522> wsl --export Ubuntu-22.04 d:\wsl-ubuntu22.04.tar |
使用 wsl --unregister 虚拟机名字
删除当前的虚拟机。注意删除虚拟机会将文件全部删除,一定要确保你的导出已经完成了再执行此命令。
1 | wsl --unregister Ubuntu-22.04 |
把刚刚导出的 tar 文件,导入 wsl 中。此时可以选择我们需要的安装路径,并且指定 wsl 版本为 2(在这之前需要执行 wsl --update
命令)。这里就可以指定一个非 C 盘的安装路径了。
1 | wsl --import 虚拟机名字 安装路径 tar包路径 --version 2 |
注意,如果你的安装路径里有空格(比如 Progarm Files
文件夹),则需要用英文引号将路径给括起来。
如下所示,导入成功,并且版本为 wsl2。导入后,原有导出的 tar 文件可以删除,不会影响虚拟机使用。
1 | PS C:\Users\S2522> wsl --unregister Ubuntu-22.04 |
查看一下这个安装路径,能在里面找到一个 vhdx 虚拟磁盘文件,这就代表我们移动安装目录成功了。不用担心自己的 C 盘被挤爆了。
使用 wsl
命令即可进入该虚拟机(如果虚拟机是关闭状态,wsl 命令也会自动启动虚拟机)。
因为当前的 wsl 虚拟机不是从微软商店直接安装的,所以默认进入的是 root 用户,不建议大家在 root 用户在操作虚拟机,建议改成刚刚我们配置的子用户。
1 | PS C:\Users\S2522> wsl |
输入 exit 回到 windows 的命令行,使用如下命令配置默认用户为刚刚我们初始化时设置的用户(当时我设置的用户名是 wsl)。注意 ubuntu2204
是一个固定的命令,并非 wsl 虚拟机的名字。
1 | ubuntu2204 config --default-user 用户名 |
这样配置了之后,wsl
命令默认进入的用户就是你刚刚从微软商店下载时初始化的子用户了。
1 | PS C:\Users\S2522> ubuntu2204 config --default-user wsl |
4.ubuntu 系统更新和安装必要软件包
上述操作执行完毕后,我们就有了一个完全可用的 wsl2 ubuntu 虚拟机了。
在 ubuntu 的命令行中,使用如下 apt 命令更新软件源,更新完毕后就可以自行下载你需要的软件包了。执行 sudo 命令会要求你输入密码,密码就是我们刚刚安装 wsl 时设置的密码。
1 | sudo apt -y update && sudo apt -y upgrade |
这里列出我自己需要使用的软件包的安装命令,这些软件基本都是必备的,可以安装一下。
1 | sudo apt -y install vim git net-tools cmake make automake unzip wget curl g++ gcc |
The end
后续就是 Ubuntu 的正常使用和 Linux 环境安装过程了,祝你使用愉快!
- 最新
- 最热
- 最早
- 作者
点击重新获取 | 打开控制台