🌟 WSL 轻松配置

type
status
date
tags
slug
summary
category
icon
password
date (1)
 

😀
本文将指导你如何将 Windows 子系统 Linux(WSL)的存储位置迁移到其他盘符,帮助释放 C 盘空间!包括迁移前的准备工作和详细步骤,让你轻松实现,提升系统性能!🚀✨

🚀 WSL 存储位置迁移指南 🚀


💼 迁移前的准备工作

在开始之前,请确保做好以下准备哦~ 😊
  1. 备份重要数据:在进行任何迁移操作前,请务必备份 WSL 中的重要数据,以防数据丢失。
  1. 关闭 WSL 实例:确保所有 WSL 实例都已关闭,以避免在迁移过程中发生冲突。
  1. 检查版本:把 WSL2 更新到 2.0.0 或以上版本更新
    1. wsl --update --pre-release 把 WSL2 更新到 2.0.0 或以上版本
    2. 设置以下内容然后保存:
      1. notion image
    3. 启用稀疏 VHD 允许 WSL2 的硬盘空间自动回收,比如 wsl --manage debain --set-sparse true
    4. 然后你会发现,WSL2 和 Windows 主机的网络互通而且 IP 地址相同了,还支持 IPv6 了,并且从外部(比如局域网)可以同时访问 WSL2 和 Windows 的网络。
    5. 另外,使用 VSCode - WSL 插件的,建议去 VSCode 设置里把自动端口转发关掉(Remote: Auto Forward Ports),避免冲突,因为 WSL2 更新之后新的网络已经是和你的 Windows 使用相同网络了,不再需要端口转发了。
    6. 最后,如果你在 WSL 里使用 docker,那需要将 autoMemoryReclaim 配置为 dropcache 或者 disabled,然后在 /etc/docker/daemon.json 里添加一句 "iptables": false ,否则你可能无法正常使用 docker。

⚙️ 迁移步骤

  • 第一步:查看 WSL 实例
    • 打开命令提示符(cmd)或 PowerShell,输入以下命令查看已安装的 WSL 实例及其状态:
  • 第二步:导出 WSL 实例
    • 将 WSL 实例导出为一个 tar 包。这里以 debain 为例,将 debain 实例导出到 D 盘的 WSL 文件夹中:
      请根据实际情况替换 debainD:\\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 了。如果不想以后难找,可以通过给一个网络映射添加网络位置,这样就可以直接进入啦~
      notion image
       
      如果不想以后难找,可以通过给一个网络映射添加网络位置,这样就可以直接进入啦
       
  • 第二步:替换镜像源
    • 完成之后就在网络位置可以看见快捷进入的文件夹了。打开文件夹,进入 etc/apt 文件夹,可以看见 sources.list 这个文件,里面就是默认的 apt 源是国外的源哦。
      notion image
    • 可以直接使用nano /etc/apt/sources.list修改哦:
      • 国内源:
       
      • 第三步:更新镜像源列表
        • 一次输入以下命令就可以更新啦:

      🔄 启用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 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。

                      解决方案

                      1. 使用 \\wsl.localhost\ \\wsl$\ 访问,看看能否进入。
                        1. notion image
                      1. 注册表调整
                          • 在注册表中找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder,确保 ProviderOrder 的值中 P9NP 在前,删除 cbfs6
                            • notion image
                          • 应用 .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 配置
                      1. WSL 启动脚本:
                          • 在wsl系统中执行nano /etc/wsl.conf并添加以下内容:
                        1. 重启 WSL:
                            • 在 PowerShell 中运行以下命令以重启 WSL:
                          1. 重新启动 WSL 终端:
                              • 重新打开 WSL 终端,检查 systemd 是否已启动。
                           

                          ❗️DNS配置无效

                          修改 WSL 配置
                          1. WSL 启动脚本:
                              • 执行nano /etc/wsl.conf并添加以下内容:
                            1. 域名解析配置:
                                • 执行nano /etc/resolv.conf并添加以下内容:
                                  • 执行nano /etc/hosts并添加以下内容:
                                1. 创建新用户builder:
                                    • 使用 adduser 命令创建新用户 builder
                                      • 系统会提示你输入新用户的密码,并填写一些其他信息(如全名、房间号等)。你可以根据需要填写这些信息,或者直接按 Enter 跳过
                                    • 赋予builder用户sudo 权限并设置免密码
                                      • 在文件末尾添加以下行:

                                💡
                                有关安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~💖✨
                                 
                                开通谷歌GCP白嫖免费虚拟机OhMyGPT API Guide
                                Loading...