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

相关推荐
疯狂吧小飞牛14 小时前
GPG基础指令
linux·服务器·网络
C++ 老炮儿的技术栈14 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
todoitbo16 小时前
用虚拟局域网打通 Win/Mac/Linux 三端:跨设备协作的实用方案
linux·运维·macos
源远流长jerry16 小时前
RDMA 基本操作类型详解:从双端通信到单端直访
linux·网络·tcp/ip·ip
Sylvia-girl17 小时前
Linux下的基本指令1
linux·运维·服务器
wyt53142917 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
17(无规则自律)17 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
CDN36017 小时前
360CDN SDK 游戏盾:轻量化接入 + 强防护实测
运维·游戏·网络安全
Stewie1213817 小时前
Docker 面试题
运维·docker·容器
星纬智联技术18 小时前
GEO E2E 自动化验证测试文章
运维·自动化·geo