睡前读物第4期: WSL与WT的备份使用
目录
前言
Windows Subsystem for Linux (WSL) 是一个在 Windows 上运行 Linux 发行版的方便工具, 本文旨在介绍如何备份和迁移 WSL 发行版, 防止数据丢失和快速恢复,同时也会展示 如何在 Windows Terminal 中配置定制化的 WSL 终端的示例。
导出 WSL 为 tar 格式
把 WSL 发行版导出为 tar 格式, 不仅可以作为原 WSL 发行版的一个备份, 也是后面迁移 WSL 的第一个步骤
wsl --shutdown
wsl -t {distro}
# 关闭对应的 WSL 发行版
wsl --export {distro} {filepath} [--format tar]
# {distro} 表示所安装的WSL发行版名称 如 Ubuntu-24.04
# {filepath} 表示想导出到的文件路径 如 D:\Ubuntu-24.04.tar
# {filepath} 用 - 表示导出到 stdout
导入或迁移 WSL
以下的指令可以方便地完成 WSL 同设备或是跨设备之间的导入
wsl --import {distro} {location} {filepath} --version 2
# {distro} 表示所导入WSL发行版名称 如 Ubuntu-24.04
# {location} 表示导入的WSL的安装路径 如 D:\WSL 则 D:\WSL 下会有ext4.vhdx以及WSL相关配置文件
# {filepath} 表示想导入的tar文件路径 如 D:\Ubuntu-24.04.tar
导入完成后,通过以下指令可以查看是否导入成功
wsl -l -v
WSL 默认是安装在 C 盘中的, 而随着不断的使用, WSL 会占据更多的硬盘空间, 此时将 WSL 迁移到其他硬盘就有必要了。
迁移的步骤也就是 导出/备份 - 删除 - 导入, 以下是删除的方式
wsl --unregister {distro}
# {distro} 表示所导入WSL发行版名称 如 Ubuntu-24.04
恢复 WSL 的配置
对于直接导入的 WSL 发行版, 其默认用户会被重置为 root, 可以通过以下指令来修改默认用户
wsl --manage {distro} --set-default-user {username}
# {distro} 表示所导入WSL发行版名称 如 Ubuntu-24.04
# {username} 表示想设置的默认用户名
在 Windows Terminal 中配置
以下是我个人的一个 WSL 发行版在 Windows Terminal 中的配置 仅供参考
{
// 以下两项是外观配置 可根据个人喜好修改
"colorScheme": "Ubuntu",
"font":
{
"face": "Ubuntu Mono, Symbols Nerd Font Mono"
},
// 对于 无法识别的 WSL 发行版 可以手动指定 commandLine
"commandLine": "C:\\WINDOWS\\system32\\wsl.exe -d Ubuntu-22.04 --cd ~",
// 对于 可以识别的 WSL 发行版 可以省略 commandLine 而采用 source
"source": "Microsoft.WSL",
// guid 只要与其他配置项不同即可 可以随意填写 或是使用 "New-Guid" 在 Powershell 中生成
"guid": "{54f2f77f-3a2d-5205-a7be-6202238a704a}",
// 以下三项关于 WSL 发行版在 Windows Terminal 中的显示
"hidden": false, // 是否在终端列表中隐藏
"icon": "D:\\Virtual Machines\\ubuntu.ico", // 图标路径 用于替换默认图标
"name": "Ubuntu-22.04", // 终端显示的名称
}