学习笔记
技术分享
网络工具
娱乐生活
私有部署
加密资讯
开发工具
🌟 WSL 轻松配置
type
status
date
tags
slug
summary
category
icon
password
date (1)
本文将指导你如何将 Windows 子系统 Linux(WSL)的存储位置迁移到其他盘符,帮助释放 C 盘空间!包括迁移前的准备工作和详细步骤,让你轻松实现,提升系统性能!🚀✨
🚀 WSL 存储位置迁移指南 🚀
💼 迁移前的准备工作
在开始之前,请确保做好以下准备哦~ 😊
- 备份重要数据:在进行任何迁移操作前,请务必备份 WSL 中的重要数据,以防数据丢失。
- 关闭 WSL 实例:确保所有 WSL 实例都已关闭,以避免在迁移过程中发生冲突。
- 检查版本:把 WSL2 更新到 2.0.0 或以上版本更新
wsl --update --pre-release
把 WSL2 更新到 2.0.0 或以上版本- 设置以下内容然后保存:
- 启用稀疏 VHD 允许 WSL2 的硬盘空间自动回收,比如
wsl --manage debain --set-sparse true
- 然后你会发现,WSL2 和 Windows 主机的网络互通而且 IP 地址相同了,还支持 IPv6 了,并且从外部(比如局域网)可以同时访问 WSL2 和 Windows 的网络。
- 另外,使用
VSCode
- WSL
插件的,建议去 VSCode 设置里把自动端口转发关掉(Remote: Auto Forward Ports
),避免冲突,因为 WSL2 更新之后新的网络已经是和你的 Windows 使用相同网络了,不再需要端口转发了。 - 最后,如果你在 WSL 里使用 docker,那需要将
autoMemoryReclaim
配置为dropcache
或者disabled
,然后在/etc/docker/daemon.json
里添加一句"iptables": false
,否则你可能无法正常使用 docker。

⚙️ 迁移步骤
- 第一步:查看 WSL 实例
打开命令提示符(cmd)或 PowerShell,输入以下命令查看已安装的 WSL 实例及其状态:
- 第二步:导出 WSL 实例
将 WSL 实例导出为一个 tar 包。这里以 debain 为例,将 debain 实例导出到 D 盘的 WSL 文件夹中:
请根据实际情况替换
debain
和 D:\\WSL\\debain.tar
中的值哦~- 第三步:注销 WSL 实例
导出完成后,需要注销原 WSL 实例,以便后续导入到新的位置:
- 第四步:导入 WSL 实例
将之前导出的 tar 包导入到新的位置。假设我们希望在 D 盘的 WSL2_debain 文件夹中导入 debain 实例:
请注意,这里的
--version 2
指定了 WSL 的版本(如果是 WSL1,则不需要此参数或修改为 --version 1
)。同时,请确保 D:\\WSL2_debain
目录已存在。- 第五步:恢复默认用户
如果迁移后需要恢复默认的登录用户,可以使用以下命令(以 debain 为例):
请将
<用户名>
替换为您的实际用户名哦~ 💖🔄 替换 WSL 镜像源
- 第一步:找到 WSL 镜像源
首先,我们找到自己的 WSL 镜像源所在的地方,按
win + r
输入 \\wsl$
按 Enter 可以看到自己的 WSL 了。如果不想以后难找,可以通过给一个网络映射添加网络位置,这样就可以直接进入啦~
如果不想以后难找,可以通过给一个网络映射添加网络位置,这样就可以直接进入啦
- 第二步:替换镜像源
- 可以直接使用
nano /etc/apt/sources.list
修改哦: - 国内源:
完成之后就在网络位置可以看见快捷进入的文件夹了。打开文件夹,进入
etc/apt
文件夹,可以看见 sources.list
这个文件,里面就是默认的 apt 源是国外的源哦。
- 第三步:更新镜像源列表
一次输入以下命令就可以更新啦:
🔄 启用SSH
- 第一步:安装openssh-server
- 第二步:创建登录用户
测试
sudo
权限,如果显示root
字样就表明成功了!- 第三步:启动ssh
如果显示sshd service is running字样就表明成功了!
将ssh服务设置为开机自启
注意:多篇文章提到端口冲突问题可能会导致无法使用ssh进行连接,我没遇到这个问题,还是用的默认的22端口。如果按照上文操作还是有问题的话,可以试试改一下端口,配置文件在/etc/ssh/sshd_config这个文件中。找到"Port 22"这句话,把22改成比如2222再重启ssh试一下看能不能行
📋 常用 WSL 命令总览
以下是一些常用的 WSL 命令,大家可以参考使用哦~
- 安装 WSL:
- 列出可用的 Linux 发行版:
- 列出已安装的 Linux 发行版:
- 将 WSL 版本设置为 1 或 2:
- 更新 WSL:
- 检查 WSL 状态:
- 关闭 WSL:
💔 bug 解决
❗️\\wsl$\debain无法访问
ERROR:\\wsl.localhost 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。
解决方案
- 使用
\\wsl.localhost\
或\\wsl$\
访问,看看能否进入。

- 注册表调整:
- 在注册表中找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
和\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder
,确保ProviderOrder
的值中P9NP
在前,删除cbfs6
。 - 应用 .reg 文件

🔧 提示:你可以创建一个注册表文件(.reg
)来自动完成上述操作。
❗️systemctl无法使用
ERROR:System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
解决方案
修改 WSL 配置
- WSL 启动脚本:
- 在wsl系统中执行nano /etc/wsl.conf并添加以下内容:
- 重启 WSL:
- 在 PowerShell 中运行以下命令以重启 WSL:
- 重新启动 WSL 终端:
- 重新打开 WSL 终端,检查
systemd
是否已启动。
❗️DNS配置无效
修改 WSL 配置
- WSL 启动脚本:
- 执行nano /etc/wsl.conf并添加以下内容:
- 域名解析配置:
- 执行nano /etc/resolv.conf并添加以下内容:
- 执行nano /etc/hosts并添加以下内容:
- 创建新用户
builder
: - 使用
adduser
命令创建新用户builder
: - 赋予
builder
用户sudo
权限并设置免密码:
系统会提示你输入新用户的密码,并填写一些其他信息(如全名、房间号等)。你可以根据需要填写这些信息,或者直接按
Enter
跳过在文件末尾添加以下行:
有关安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~💖✨
Loading...
Last update: 2024-09-26
✨