WSL 环境配置
本博客记录我配置[[WSL]]环境的过程及一些踩坑点。Windows系统为Windows11 21H2 home edition,安装Ubuntu 22.04.1 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)。
更换ubuntu存储位置
因为目前用的电脑是512G,分开了C盘和D盘。WSL的默认安装位置为C盘,所以希望将之后Linux安装的各种环境配置包转移到D盘。
我主要参考了这篇WSL2文件迁移到D盘
查看当前wsl
首先查看当前安装的wsl版本(--list
也可以写为-l
)
1
wsl --list
1
2Windows Subsystem for Linux Distributions:
Ubuntu (Default)
导出
1 | wsl --export Ubuntu d://ubuntu.tar |
注销原wsl
1 | wsl --unregister Ubuntu |
注销后,原C盘的空间被释放
导入
先在D盘新建文件夹存放wls文件,然后将上面导出的ubuntu.tar文件,通过wsl的import命令导入,指定导入的wsl文件夹和上面导出的tar文件。导入也需要等待。
1 | wsl --import Ubuntu d:\wsl\Ubuntu D:\ubuntu.tar |
导入成功后,启动
1 | wsl |
发现是root用户登陆的,在powershell中执行命令,修改默认登陆账户
1 | Ubuntu config --default-user ubuntu |
更换源镜像
由于众所周知的原因,在Linux中用官方镜像下载特别慢,这里是适用于Ubuntu 22.04 Jammy的官方镜像,在这里作为存档。
1 | deb http://archive.ubuntu.com/ubuntu/ jammy main restricted |
我们将其替换为清华源,使用nano编辑/etc/apt/sources.list:
1 | sudo nano /etc/apt/sources.list |
利用方向键和shift选定所有内容,按ctrl+k删除后,在windows中复制以下内容:
1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
报错Ign
解决办法
这时,我试图运行安装更新程序 1
sudo apt update
1
2
3
4Ign:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Ign:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease
Ign:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports InRelease
Ign:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security InRelease
之后在这篇博客的评论下面找到了解决办法
使用nano修改resolv.conf
1
sudo nano /etc/resolv.conf
1
2
3nameserver 8.8.8.8
nameserver 127.0.0.1
options edns0
就顺利解决了问题
/etc/resolv.conf
/etc/resolv.conf
是一个在Unix和Linux操作系统中的配置文件,用于配置系统如何进行域名解析。简单来说,当您尝试访问一个域名(例如
www.google.com
)时,您的系统会查看
/etc/resolv.conf
文件来确定如何将这个域名转换为一个IP地址。
这个文件通常包含以下信息:
nameserver: 指定用于解析域名的DNS服务器的IP地址。一个
resolv.conf
文件可以有多个nameserver
条目,系统会按照它们在文件中出现的顺序来使用它们。例如:
1
2nameserver 8.8.8.8
nameserver 8.8.4.4上述配置指定了Google的公共DNS服务器。
domain: 定义本地域名。这是一个单一的域,用于短名称到FQDN(完全限定域名)的转换。
search: 定义在解析短名称时应搜索的域名列表。如果没有给出FQDN,系统会尝试在这些域后面添加短名称来进行解析。
例如:
1
search example.com example.org
options: 为域名解析器设置各种选项。
在现代Linux系统中,/etc/resolv.conf
文件可能是由NetworkManager
、systemd-resolved
或其他网络配置工具自动生成的。因此,直接编辑这个文件可能不是一个好主意,因为它的内容可能会被覆盖。如果您需要更改DNS设置,最好使用系统的网络配置工具或相应的配置文件。
nameserver
nameserver 8.8.8.8
和 nameserver 127.0.0.1
在 /etc/resolv.conf
文件中指定了用于DNS解析的服务器。这两个地址有不同的含义和用途:
nameserver 8.8.8.8:
这是Google的公共DNS服务器地址。当您使用这个地址作为DNS服务器时,您的系统会将所有DNS查询发送到Google的公共DNS服务进行解析。Google的公共DNS是一个免费的、全球性的DNS解析服务,旨在提供更快、更可靠的网页浏览体验。
nameserver 127.0.0.1:
127.0.0.1
是一个特殊的IP地址,称为本地回环地址或简称为localhost。当您使用这个地址作为DNS服务器时,您的系统会将DNS查询发送到在本地计算机上运行的DNS服务器。这通常用于以下情况:- 在本地计算机上运行了一个DNS缓存服务器,如
dnsmasq
或unbound
。 - 使用本地DNS服务器进行特殊的域名解析,例如在开发环境中。
- 使用某些VPN或隐私工具,这些工具在本地提供DNS解析服务。
- 在本地计算机上运行了一个DNS缓存服务器,如