🌟 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 debian --set-sparse true wsl --manage debian --set-sparse true --allow-unsafe
    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 包。这里以 debian为例,将 debian实例导出到 D 盘的 WSL 文件夹中:
      请根据实际情况替换 debianD:\\WSL\\debian.tar 中的值哦~
  • 第三步:注销 WSL 实例
    • 导出完成后,需要注销原 WSL 实例,以便后续导入到新的位置:
  • 第四步:导入 WSL 实例
    • 将之前导出的 tar 包导入到新的位置。假设我们希望在 D 盘的 WSL2_debian 文件夹中导入 debian 实例:
      请注意,这里的 --version 2 指定了 WSL 的版本(如果是 WSL1,则不需要此参数或修改为 --version 1)。同时,请确保 D:\\WSL2_debian 目录已存在。
  • 第五步:恢复默认用户
    • 如果迁移后需要恢复默认的登录用户,可以使用以下命令(以 debian 为例):
      请将 <用户名> 替换为您的实际用户名哦~ 💖

🔄 替换 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$\debian无法访问

                      💡
                      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 权限并设置免密码
                                      • 在文件末尾添加以下行:

                                1. 查询当前会话的所有代理相关环境变量:
                                  1. env | grep -i proxy
                                    • i 选项表示忽略大小写。
                                1. 查询特定的代理变量:
                                  1. echo $http_proxyecho $https_proxyecho $ftp_proxyecho $no_proxy# 也可以检查大写形式echo $HTTP_PROXYecho $HTTPS_PROXY
                                这些环境变量可能设置在以下文件中:
                                • ~/.bashrc 或 ~/.profile (用户级别):这些文件位于你的用户主目录中,通常用于设置特定用户的环境变量。bash cat ~/.bashrc | grep -i proxy cat ~/.profile | grep -i proxy
                                • /etc/environment (系统级别):这个文件用于设置系统范围的环境变量,所有用户和进程都会继承。bash sudo cat /etc/environment | grep -i proxy
                                • /etc/profile 或 /etc/profile.d/*.sh (系统级别):这些文件是所有用户登录时执行的脚本。bash sudo cat /etc/profile | grep -i proxy sudo grep -i proxy /etc/profile.d/*.sh

                                2. 检查 APT (包管理器) 的代理设置

                                Debian 的 apt 包管理器有自己独立的代理配置,通常在 /etc/apt/apt.conf.d/ 目录下的文件中。
                                如何查询:
                                sudo grep -r "Proxy" /etc/apt/apt.conf.d/
                                你可能会看到类似这样的输出:
                                /etc/apt/apt.conf.d/00aptitude:Acquire::http::Proxy "http://your_proxy_server:port/";/etc/apt/apt.conf.d/00aptitude:Acquire::https::Proxy "https://your_proxy_server:port/";
                                或者在 /etc/apt/apt.conf 文件中(较少见)。
                                 
                                 
                                要在 Debian 系统中为 APT 包管理器设置代理,你需要在 /etc/apt/apt.conf.d/ 目录下创建一个新的配置文件。这是推荐的方法,因为它比直接修改 /etc/apt/apt.conf 更模块化,也更容易管理。
                                以下是具体步骤:
                                1. 打开或创建 APT 代理配置文件:
                                  1. 你可以使用 nano 或你喜欢的文本编辑器来创建或编辑这个文件。我们通常会给它一个数字前缀,例如 01proxy,以确保它在其他配置之前被读取。
                                    sudo nano /etc/apt/apt.conf.d/01proxy
                                1. 添加代理配置信息:
                                  1. 在打开的文件中,添加以下两行:
                                    Acquire::http::Proxy "http://10.194.98.186:17891";
                                    Acquire::https::Proxy "http://10.194.98.186:17891";
                                    • Acquire::http::Proxy: 这行设置了 APT 在进行 HTTP 连接时使用的代理。
                                    • Acquire::https::Proxy: 这行设置了 APT 在进行 HTTPS 连接时使用的代理。即使你的代理服务器本身是 HTTP 协议,它通常也能够代理 HTTPS 流量。
                                 

                                安装 oh-my-zsh 

                                1. 安装 zsh

                                oh-my-zsh 是基于 zsh 的,所以需要先安装 zsh

                                2. 设置 zsh 为默认 shell(可选)

                                然后退出终端重新登录,检查是否生效:

                                3. 安装 oh-my-zsh

                                方法 1:使用 curl(推荐)

                                方法 2:使用 wget


                                4. 配置 oh-my-zsh

                                安装插件

                                (1) 语法高亮插件

                                (2) 自动补全插件

                                (3) 启用插件

                                 
                                然后重新加载配置:

                                (4) 关闭主题

                                某些主题或其他插件可能会干扰自动补全。尝试注释掉:

                                错误

                                /root/.zshrc:source:75: no such file or directory: /oh-my-zsh.sh

                                解决方法

                                1. 检查 $ZSH 变量

                                在终端运行以下命令,查看 $ZSH 是否指向正确路径:
                                • 正常情况:输出应该是 /root/.oh-my-zsh
                                • 如果为空或错误:需要手动设置 $ZSH

                                2. 手动修复 .zshrc

                                编辑 .zshrc 文件,确保 $ZSH 被正确定义:

                                5. 卸载 oh-my-zsh

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