WSL 实用技巧:设置默认 Root 用户与系统快照备份

在 Windows 上使用 WSL (Windows Subsystem for Linux) 进行开发时,我们经常需要以 root 权限执行操作,也常常担心把环境改乱了无法恢复。本文将分享两个非常实用的 WSL 技巧:如何将默认登录用户设置为 root 以及 如何像虚拟机一样给 WSL 系统打快照(备份与还原),让你的开发环境更顺手、更安全。


一、设置 WSL 默认登录用户为 Root

默认情况下,安装完 WSL 发行版(如 Ubuntu)后,系统会要求你创建一个普通用户,并且每次登录都会自动进入该用户。如果你习惯使用 root 账户,可以通过以下两种方法更改默认登录用户。

🔧 方法一:通过 Windows 命令行设置(推荐)

  1. 查看已安装的 WSL 发行版名称

    在 PowerShell 或命令提示符中输入:

    powershell 复制代码
    wsl -l -v

    记下你想要修改的发行版名称,例如 Ubuntu-22.04Ubuntu

  2. 设置 root 为默认用户

    执行以下命令(将 Ubuntu-22.04 替换为你的实际发行版名称):

    powershell 复制代码
    Ubuntu-22.04 config --default-user root
  3. 重启 WSL 使配置生效

    在 PowerShell 中运行:

    powershell 复制代码
    wsl --shutdown

    然后重新打开 WSL 终端,你就会发现已经自动以 root 身份登录了。

📝 方法二:通过修改 Linux 内部配置文件

如果你更喜欢在 Linux 环境中操作,可以修改 WSL 的配置文件 /etc/wsl.conf

  1. 在 WSL 终端中编辑配置文件

    bash 复制代码
    sudo nano /etc/wsl.conf

    如果文件不存在,它会自动创建。

  2. 添加以下内容

    ini 复制代码
    [user]
    default=root

    保存并退出(Ctrl+OCtrl+X)。

  3. 重启 WSL

    在 Windows PowerShell 中执行:

    powershell 复制代码
    wsl --shutdown

    重新打开 WSL 终端,即可使用 root 登录。

⚠️ 注意事项

  • 以 root 身份操作具有最高权限,请谨慎执行命令,避免误删重要文件。
  • 如果想恢复为原来的普通用户,只需将上述命令或配置中的 root 替换成你的用户名即可。

二、WSL 快照功能:备份与还原整个系统

WSL 原生支持将整个发行版导出为一个 .tar 文件,你可以把它当作系统的"快照"保存起来。当环境被搞乱后,可以快速从快照还原,省去重新配置的麻烦。

📸 创建快照(备份)

  1. 确认发行版名称

    在 PowerShell 中运行:

    powershell 复制代码
    wsl -l -v
  2. 导出系统到 tar 文件

    假设发行版名为 Ubuntu-22.04,你想将快照保存到 D:\WSLBackups\ubuntu_clean_snapshot.tar

    powershell 复制代码
    wsl --export Ubuntu-22.04 D:\WSLBackups\ubuntu_clean_snapshot.tar

    等待命令执行完成,你会在指定目录得到一个完整的系统备份文件。

♻️ 从快照还原系统

当需要恢复环境时,有两种选择:覆盖现有系统创建一个全新的并行系统

选项 A:覆盖当前系统(先注销再导入)
  1. 注销并删除当前系统
    警告:此操作将永久删除当前 Ubuntu 系统的所有数据,请提前备份重要文件!

    powershell 复制代码
    wsl --unregister Ubuntu-22.04
  2. 从备份导入为新系统

    powershell 复制代码
    wsl --import Ubuntu-22.04 D:\WSL\Ubuntu22\ D:\WSLBackups\ubuntu_clean_snapshot.tar --version 2
    • D:\WSL\Ubuntu22\ 是系统文件存放的目录(可以自定义)。
    • --version 2 指定使用 WSL 2。
选项 B:创建一个并行的新系统(保留原系统)

如果你想同时拥有两个独立的 Ubuntu 环境,可以给新系统起一个不同的名字:

powershell 复制代码
wsl --import Ubuntu-22.04-clean D:\WSL\Ubuntu22-clean\ D:\WSLBackups\ubuntu_clean_snapshot.tar --version 2

之后可以通过 wsl -d Ubuntu-22.04-clean 来启动这个备份环境。

👤 还原后设置默认用户

从快照导入的系统,默认登录用户是 root。如果你想恢复原来的普通用户,可以按照以下步骤操作:

  1. 以 root 身份进入系统

    powershell 复制代码
    wsl -d Ubuntu-22.04
  2. 编辑 /etc/wsl.conf 文件

    bash 复制代码
    nano /etc/wsl.conf

    添加或修改以下内容(将 yourname 替换为你的用户名):

    ini 复制代码
    [user]
    default=yourname

    保存退出。

  3. 重启 WSL 使配置生效

    在 PowerShell 中执行:

    powershell 复制代码
    wsl --terminate Ubuntu-22.04

    再次启动 WSL,就会以你指定的普通用户登录了。

✨ 小技巧:仅备份用户数据

如果你只关心代码和配置文件,可以定期在 WSL 内部使用 tar 命令备份家目录:

bash 复制代码
tar -czf ~/backup_home_$(date +%Y%m%d).tar.gz /home/你的用户名

这样既节省空间,又能保护重要数据。


总结

通过以上两个技巧,你可以:

  • 随心切换 root 用户 ,避免每次输入 sudo 的繁琐。
  • 给 WSL 系统打快照,随时回滚到干净状态,再也不怕折腾坏了。

希望这些方法能帮助你更高效地使用 WSL!如果在操作中遇到问题,欢迎留言交流。


相关推荐
toooooop821 小时前
wsl系统无损迁移到ssd硬盘
linux·wsl
曦云沐3 天前
效率翻倍!Windows 11 启用 WSL 的最快姿势(附虚拟化开启教程)
windows·wsl
谢娘蓝桥4 天前
wsl2 windows 安装
wsl
sz4972385996 天前
WSL2+VSCode搭建ESP-IDF 开发环境
ide·vscode·编辑器·esp32·wsl
*星星之火*6 天前
【AI工具篇】Windows 安装 WSL 全攻略:wsl --install 一键部署 + VSCode 搭配使用好处详解
windows·vscode·wsl
吴烦恼的博客11 天前
WSL迁移指南
ubuntu·wsl·系统移植
Irene199115 天前
前端开发中,WSL和本地开发的区别(本地项目,PowerShell和Bash均可执行npm命令,推荐使用 PowerShell)
wsl·本地开发
cuckooman16 天前
如何升级wsl1到wsl2
wsl·wsl2
无巧不成书021817 天前
保姆级教程:解决DISM错误0x800f0915,成功开启虚拟机平台(2026年最新版)
wsl·windows11·系统修复·dism错误·虚拟机平台
Irene199117 天前
Cursor/VSCode 连接 WSL 频繁掉线问题完整排查记录(AI总结版)
编辑器·wsl