放C盘太占空间,所以迁移到D盘
在C盘的位置为:
csharp
C:\Users\lutia\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
首先管理员模式打开powershell,然后停止wsl
csharp
wsl --shutdown
查看ubuntu 版本
csharp
wsl -l -v
我的是Ubuntu-22.04
将ubuntu导出到D盘
csharp
wsl --export Ubuntu-22.04 D:\ubuntu.tar
注销老的ubuntu
csharp
wsl --unregister Ubuntu-22.04
导入新的ubuntu放到D盘自己定义的文件夹下
csharp
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\ubuntu.tar --version 2
现在进入D盘可以看到虚拟磁盘在D盘下面了
csharp
D:\WSL\Ubuntu2204\ext4.vhdx
迁移后进入ubuntu可能默认进入root用户,并且会从zsh变成bash
echo $SHELL
/usr/bin/zsh
which zsh
/usr/bin/zsh
如果没有输出,则需要重新安装:
sudo apt install zsh
第三步:切换默认 shell 到 zsh(恢复你以前的界面)
chsh -s /usr/bin/zsh
然后退出 WSL 再进入。
如果你用的是 Windows Terminal,关闭所有窗口再打开即可。
第四步:确认 Oh-My-Zsh 是否被保留
检查目录:
ls ~/.oh-my-zsh
如果在,则 oh-my-zsh 没有丢。
然后查看你的主题和插件是否还在 .zshrc:
nano ~/.zshrc
重点看:
ZSH_THEME="xxx"
plugins=(git z sudo history substring-search ...)
特别是你提到的"右箭头补全历史"是 zsh-history-substring-search 插件。
你在 .zshrc 中应有类似配置:
plugins=(
git
z
history
history-substring-search
)
如果没有,请加上。
然后:
source ~/.zshrc
自动补全和配色就回来了。
- 确认你以前使用的用户名
运行:
cat /etc/passwd | grep "/home"
一般是:
ubuntu❌1000:1000:Ubuntu:/home/ubuntu:/bin/bash
这个 "ubuntu" 或其他名字就是你原来的用户。
- 切换回原来的普通用户
例如你的原用户叫 ubuntu:
su - ubuntu
如果能进入到:
ubuntu@PC6463:~$
且颜色、美化恢复 → 说明问题完全解决。
- 如果希望 WSL 进入时自动用原来的用户
执行:
wsl -d Ubuntu-22.04 --user ubuntu
若正常工作,则设置默认用户:
wsl -d Ubuntu-22.04 --set-default-user ubuntu
- 确认 oh-my-zsh 是否在你的普通用户目录下
在 WSL 中切到普通用户后检查:
ls ~/.oh-my-zsh
如果有文件夹 → 正常。
- 如果你忘了用户密码或无法进入普通用户
我可以帮你:
重设密码
修复默认 shell
重装 oh-my-zsh 但不破坏原配置
只需要告诉我:
你之前的用户名字是什么(在 /home 目录里能看到)。
当你运行 su - 用户名 时出现什么输出。
如果你愿意,你可以把以下命令的输出贴过来,我帮你判断:
ls /home
cat /etc/wsl.conf
echo $SHELL
whoami