WSL迁移及优化

警告
本文最后更新于 2022-07-01,文中内容可能已过时。

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu 14.04 “Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

https://docs.microsoft.com/zh-cn/windows/wsl/install-manual下载安装包,扩展名改为.zip,解压放在D盘,运行ubuntu.exe安装

使用LxRunOffline迁移

下载地址

1
LxRunOffline move -n Ubuntu -d F:\wsl\Ubuntu

WSL(Windows Subsystem for Linux),WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。

安装docker后,docker会自动创建2个发行版:

  • docker-desktop
  • docker-desktop-data

LxRunOffline.exe 确实可以迁移自己安装的发行版,却迁移不了docker自动创建的2个发行版!

关闭docker

关闭所有发行版

1
wsl --shutdown

将docker-desktop-data导出到F盘(注意,原有的docker images不会一起导出)

1
2
mkdir F:\wsl\docker-desktop-data\
wsl --export docker-desktop-data F:\wsl\docker-desktop-data\docker-desktop-data.tar

注销docker-desktop-data

1
wsl --unregister docker-desktop-data

重新导入docker-desktop-data到要存放的文件夹

1
wsl --import docker-desktop-data F:\wsl\docker-desktop-data\ F:\wsl\docker-desktop-data\docker-desktop-data.tar --version 2

删除tar文件

1
del F:\wsl\docker-desktop-data\docker-desktop-data.tar
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

sudo tee /etc/apt/sources.list << EOF
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
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
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
EOF
1
sudo apt-get update

Ubuntu预安装的是tiny版本,我们需要安装vim的full版本。

卸载预装的版本

1
sudo apt-get -y remove vim-common

安装full版vim

1
sudo apt-get -y install vim
1
sudo apt-get install zsh
1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

配置文件是在用户目录下的.zshrc文件,可以按照本文前面说的目录位置直接去找到它进行修改,也可以vi修改:

1
vi ~/.zshrc

查找配置Key字符串ZSH_THEME,将等号后面引号里面的改为“ys”。即:

1
ZSH_THEME="ys"

注意:将目录切换到~/.oh-my-zsh/custom/plugins中,然后按照下面步骤进行操作即可。

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

修改.zshrc文件,plugins 中添加zsh-syntax-highlighting

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

修改.zshrc文件,plugins 中添加zsh-autosuggestions

https://img.bwcxtech.com/img/20200928175531.png

WSL 子系统将正式支持从文件资源管理器访问 Linux 文件

1
\\wsl$\

Neofetch是一个在终端上显示带有发行徽标的Ubuntu Linux系统信息的工具,neofetch命令将显示有关相应系统的简要信息。 它显示的信息包括型号,操作系统,内核,CPU,GPU,内存,正常运行时间,程序包,shell,分辨率,DE,WM,WM主题,主题,图标和终端。

1
apt-get install -y neofetch

优化完成可以做个备份,实质就是导入导出

1
wsl --export Ubuntu F:\wsl-ubuntu.tar

注销当前系统

1
wsl --unregister Ubuntu

回滚

1
wsl --import Ubuntu F:\wsl\Ubuntu F:\wsl-ubuntu.tar --version 2

设置默认登陆用户为安装时用户名

1
ubuntu config --default-user USERNAME