windows 迁移ubuntu wsl从C盘到D盘

放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

自动补全和配色就回来了。

  1. 确认你以前使用的用户名

运行:

cat /etc/passwd | grep "/home"

一般是:

ubuntu❌1000:1000:Ubuntu:/home/ubuntu:/bin/bash

这个 "ubuntu" 或其他名字就是你原来的用户。

  1. 切换回原来的普通用户

例如你的原用户叫 ubuntu:

su - ubuntu

如果能进入到:

ubuntu@PC6463:~$

且颜色、美化恢复 → 说明问题完全解决。

  1. 如果希望 WSL 进入时自动用原来的用户

执行:

wsl -d Ubuntu-22.04 --user ubuntu

若正常工作,则设置默认用户:

wsl -d Ubuntu-22.04 --set-default-user ubuntu

  1. 确认 oh-my-zsh 是否在你的普通用户目录下

在 WSL 中切到普通用户后检查:

ls ~/.oh-my-zsh

如果有文件夹 → 正常。

  1. 如果你忘了用户密码或无法进入普通用户

我可以帮你:

重设密码

修复默认 shell

重装 oh-my-zsh 但不破坏原配置

只需要告诉我:

你之前的用户名字是什么(在 /home 目录里能看到)。

当你运行 su - 用户名 时出现什么输出。

如果你愿意,你可以把以下命令的输出贴过来,我帮你判断:

ls /home

cat /etc/wsl.conf

echo $SHELL

whoami

相关推荐
律宏阔2 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔2 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴2 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千2 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei372 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei372 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei372 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh2 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW2 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
GeW2 小时前
工业场景中的Linux与数据库选型:高端化转型的技术底座
linux