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!如果在操作中遇到问题,欢迎留言交流。


相关推荐
AI精钢2 小时前
WSL 磁盘清理实战:从缓存清理到 ext4.vhdx 压缩回收空间
运维·windows·缓存·docker·wsl·devops·磁盘清理
蜡台3 小时前
window11 安装WSL 和 Ubuntu-24.04, Vscode 中使用WSL
linux·vscode·ubuntu·wsl
njsgcs1 个月前
wsl 可以直接打开windows的应用 /mnt/d/blender/blender.exe
wsl
shimly1234561 个月前
windows11 WSL 安装 Ubuntu 24.04
wsl
fireworkseasycold1 个月前
windows与WSL 端口转发(保留 NAT,如果不切换到 Mirrored 网络模式(需要重启 WSL,可能改变子网行为))
wsl·代理
三雷科技1 个月前
WSL 命令大全(完全指南)
虚拟化·wsl·windows虚拟机
z.q.xiao1 个月前
【镜像模式】WSL如何访问windows内网服务
linux·网络·windows·gitlab·wsl·dns
njsgcs1 个月前
ModelScope下载模型+ vLLM调用+内存释放
windows·wsl·vllm
Android小码家2 个月前
WSL+llama+CPU本地模型部署
llama·wsl·模型