在 Windows 上使用 WSL (Windows Subsystem for Linux) 进行开发时,我们经常需要以 root 权限执行操作,也常常担心把环境改乱了无法恢复。本文将分享两个非常实用的 WSL 技巧:如何将默认登录用户设置为 root 以及 如何像虚拟机一样给 WSL 系统打快照(备份与还原),让你的开发环境更顺手、更安全。
一、设置 WSL 默认登录用户为 Root
默认情况下,安装完 WSL 发行版(如 Ubuntu)后,系统会要求你创建一个普通用户,并且每次登录都会自动进入该用户。如果你习惯使用 root 账户,可以通过以下两种方法更改默认登录用户。
🔧 方法一:通过 Windows 命令行设置(推荐)
-
查看已安装的 WSL 发行版名称
在 PowerShell 或命令提示符中输入:
powershellwsl -l -v记下你想要修改的发行版名称,例如
Ubuntu-22.04或Ubuntu。 -
设置 root 为默认用户
执行以下命令(将
Ubuntu-22.04替换为你的实际发行版名称):powershellUbuntu-22.04 config --default-user root -
重启 WSL 使配置生效
在 PowerShell 中运行:
powershellwsl --shutdown然后重新打开 WSL 终端,你就会发现已经自动以 root 身份登录了。
📝 方法二:通过修改 Linux 内部配置文件
如果你更喜欢在 Linux 环境中操作,可以修改 WSL 的配置文件 /etc/wsl.conf。
-
在 WSL 终端中编辑配置文件
bashsudo nano /etc/wsl.conf如果文件不存在,它会自动创建。
-
添加以下内容
ini[user] default=root保存并退出(
Ctrl+O,Ctrl+X)。 -
重启 WSL
在 Windows PowerShell 中执行:
powershellwsl --shutdown重新打开 WSL 终端,即可使用 root 登录。
⚠️ 注意事项
- 以 root 身份操作具有最高权限,请谨慎执行命令,避免误删重要文件。
- 如果想恢复为原来的普通用户,只需将上述命令或配置中的
root替换成你的用户名即可。
二、WSL 快照功能:备份与还原整个系统
WSL 原生支持将整个发行版导出为一个 .tar 文件,你可以把它当作系统的"快照"保存起来。当环境被搞乱后,可以快速从快照还原,省去重新配置的麻烦。
📸 创建快照(备份)
-
确认发行版名称
在 PowerShell 中运行:
powershellwsl -l -v -
导出系统到 tar 文件
假设发行版名为
Ubuntu-22.04,你想将快照保存到D:\WSLBackups\ubuntu_clean_snapshot.tar:powershellwsl --export Ubuntu-22.04 D:\WSLBackups\ubuntu_clean_snapshot.tar等待命令执行完成,你会在指定目录得到一个完整的系统备份文件。
♻️ 从快照还原系统
当需要恢复环境时,有两种选择:覆盖现有系统 或 创建一个全新的并行系统。
选项 A:覆盖当前系统(先注销再导入)
-
注销并删除当前系统
警告:此操作将永久删除当前 Ubuntu 系统的所有数据,请提前备份重要文件!powershellwsl --unregister Ubuntu-22.04 -
从备份导入为新系统
powershellwsl --import Ubuntu-22.04 D:\WSL\Ubuntu22\ D:\WSLBackups\ubuntu_clean_snapshot.tar --version 2D:\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。如果你想恢复原来的普通用户,可以按照以下步骤操作:
-
以 root 身份进入系统
powershellwsl -d Ubuntu-22.04 -
编辑
/etc/wsl.conf文件bashnano /etc/wsl.conf添加或修改以下内容(将
yourname替换为你的用户名):ini[user] default=yourname保存退出。
-
重启 WSL 使配置生效
在 PowerShell 中执行:
powershellwsl --terminate Ubuntu-22.04再次启动 WSL,就会以你指定的普通用户登录了。
✨ 小技巧:仅备份用户数据
如果你只关心代码和配置文件,可以定期在 WSL 内部使用 tar 命令备份家目录:
bash
tar -czf ~/backup_home_$(date +%Y%m%d).tar.gz /home/你的用户名
这样既节省空间,又能保护重要数据。
总结
通过以上两个技巧,你可以:
- 随心切换 root 用户 ,避免每次输入
sudo的繁琐。 - 给 WSL 系统打快照,随时回滚到干净状态,再也不怕折腾坏了。
希望这些方法能帮助你更高效地使用 WSL!如果在操作中遇到问题,欢迎留言交流。