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

相关推荐
Tokai_Teio_13 小时前
第四届黄河流域 misc
运维·服务器
hj2862514 小时前
Linux 网络服务综合笔记(概念 + 命令 + 实操案例)2
linux·运维·网络
what_20184 小时前
Linux 磁盘 (查看、划分、inode)
linux·运维·服务器
ManageEngine卓豪4 小时前
从性能故障到安全风险,现代企业数字化转型下的网络丢包运维管控指南
运维·网络安全·网络故障·网络丢包
2739920294 小时前
GDB调试(Linux)
linux
凡人叶枫5 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
不会C语言的男孩5 小时前
Linux 系统编程 · 第 4 章:文件属性与元数据
linux·c语言·开发语言
小生不才yz5 小时前
Shell脚本精读 · S02-03 | 词拆分、通配符与未加引号的变量
linux
2601_961845425 小时前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
A_humble_scholar5 小时前
Linux(七)调度器:从硬件矛盾到进程切换的底层逻辑
linux·服务器·网络