# 重新安装 WSL2

> [重新安装 WSL2](https://www.ftls.xyz/posts/2023-12-25-wsl2-reinstall/)
> Penned by [恐咖兵糖](https://www.ftls.xyz/) on 2023-12-25


最近 WSL2 的文件达到了 60GB+ ，删来删去，压缩之后还是不见小，干脆重装。

<!--more-->

## 重新安装

备份需要的文件，然后彻底删除几个 Linux 系统

```powershell
wsl --list 
wsl --unregister Ubuntu
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
```

然后打开，Ubuntu，Docker 应用。Windows 系统会自动重新安装这三个子系统。然后把虚拟磁盘迁移到 C 盘之外，如 D 盘。

```powershell
wsl --shutdown
wsl --export Ubuntu D:\WSL\Ubuntu.tar
wsl --export docker-desktop D:\WSL\docker\docker-desktop.tar
wsl --export docker-desktop-data D:\WSL\docker\docker-desktop-data.tar

wsl --import Ubuntu D:\WSL\ D:\WSL\Ubuntu.tar 
wsl --import docker-desktop D:\WSL\docker\ D:\WSL\docker\docker-desktop.tar 
wsl --import docker-desktop-data D:\WSL\docker-data\ D:\WSL\docker\docker-desktop-data.tar
```

## 换源

### Ubuntu 

```bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
```

写入

```
 # 清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
```

```bash
sudo apt-get update # 更新软件列表
sudo apt-get upgrade # 更新软件包
```

### Arch

- https://mirrors.tuna.tsinghua.edu.cn/help/archlinux/
- https://geek-blogs.com/blog/arch-linux-keyring/

## 安装一些工具

hugo , just 都是 wget 下二进制包，到 `~/bin/` 下。然后把这个文件夹加入 bash , fish 环境变量解决的。

> 注意： fish 是命令行交互友好型 shell ，但是不完全兼容 BASH 命令。据说是故意不兼容 posix 提高了门槛， BASH 的一些语法现在看来确实有奇怪的地方，不搞兼容也算是抛去历史包袱。缺点就是不能直接抄一些网上的命令。

```bash
chsh -s /usr/bin/fish
```


### FISH 环境变量

```bash
vim ~/.config/fish/config.fish

末尾添加

set -x PATH $PATH /root/bin
```

### BASH 环境变量

```bash
vim ~/.bashrc
末尾添加

export PATH=$PATH:/usr/bin:/bin:/root/bin
```

配置 git 以及 git gpg

```bash
git config --global commit.gpgsign true
```

然后还有 VSCode 的一些工具，打开 VSCode 连接到 WSL 也会自动安装。

## 代理

```bash
#!/bin/bash
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export ALL_PROXY="http://$host_ip:10809"
```

## 尾声

暂时完成这些工作之后，基本的差不多了。剩余具体项目再说，如 Rust，npm，node 都没有安装，现在三个虚拟磁盘文件总大小是 5Gb。还算不错。