wsl系统无损迁移到ssd硬盘

第一步:准备工作(在Windows PowerShell中执行,以管理员身份运行)

  1. 创建必要的文件夹(在F盘):

    powershell 复制代码
    # 创建备份临时目录和WSL安装目录
    New-Item -ItemType Directory -Path "F:\WSL_Backup" -Force
    New-Item -ItemType Directory -Path "F:\WSL\CentOS7" -Force
  2. 确保所有WSL都已关闭

    powershell 复制代码
    wsl --shutdown

第二步:导出CentOS7备份(这一步最关键,防止数据丢失)

powershell 复制代码
# 导出CentOS7到F:\WSL_Backup\centos7_backup.tar
# 注意:文件较大,需要F盘有足够空间(至少10GB+,取决于你安装的东西多少)
wsl --export CentOS7 F:\WSL_Backup\centos7_backup.tar

等待完成,看到命令行回到提示符就说明备份成功了。


第三步:注销旧的CentOS7并导入到F盘

powershell 复制代码
# 1. 注销旧的CentOS7(这一步不会删除备份文件,放心操作)
wsl --unregister CentOS7

# 2. 将备份导入到F盘的SSD目录
wsl --import CentOS7 F:\WSL\CentOS7 F:\WSL_Backup\centos7_backup.tar --version 2

第四步:设置CentOS7的默认登录用户

导入后默认会用root登录,但为了保险,我们显式设置一下:

powershell 复制代码
# 进入CentOS7
wsl -d CentOS7

进入后你会看到命令行提示符,然后在CentOS7内部执行(如果已经是root用户可跳过):

bash 复制代码
# 如果你之前有普通用户,替换为你的用户名,没有的话保持root即可
# 这里假设你之前用的是root,直接退出
exit

第五步:验证迁移成功

  1. 检查WSL状态

    powershell 复制代码
    wsl --list --verbose

    你应该看到CentOS7状态是Stopped,版本是2

  2. 启动CentOS7并检查宝塔

    powershell 复制代码
    wsl -d CentOS7

    进入后执行:

    bash 复制代码
    # 检查宝塔是否正常
    bt default
    
    # 检查MySQL是否运行
    /etc/init.d/mysqld status
    
    # 检查磁盘路径(应该还是原来的/www目录,不需要改任何配置)
    ls -la /www
  3. 测试网站和数据库

    打开浏览器访问你的宝塔面板和网站,确认一切正常。


第六步:(可选)设置CentOS7为默认发行版

如果你想以后直接输入wsl就进入CentOS7,执行:

powershell 复制代码
wsl --set-default CentOS7

迁移成功后的清理(确认一切正常后再做)

  1. 删除旧的备份文件(保留一周没问题,确认没问题再删):

    powershell 复制代码
    # 删除F:\WSL_Backup\centos7_backup.tar
    Remove-Item F:\WSL_Backup\centos7_backup.tar
  2. (可选)删除原来机械硬盘上的WSL文件

    旧的ext4.vhdx文件通常在C:\Users\你的用户名\AppData\Local\Packages\...\LocalState\下,注销后会自动删除,不用手动找。


性能验证小技巧

迁移完成后,在CentOS7里执行这个命令测试磁盘速度:

bash 复制代码
# 测试4K随机写入(数据库最依赖的性能)
dd if=/dev/zero of=/www/test bs=4k count=10000 oflag=direct

# 测试完删除测试文件
rm -f /www/test
相关推荐
一池秋_5 小时前
etc/sudo.conf is owned by uid 10258, should be 0解决
linux·运维·服务器
dingdingfish5 小时前
TLPI 第19 章 练习:Monitoring File Events
linux·inotify·tlpi·exercise
Bert.Cai5 小时前
Linux basename命令详解
linux·运维·服务器
源远流长jerry5 小时前
Linux 本机网络通信机制深度解析:Loopback 设备原理
linux·运维·服务器·网络·tcp/ip·nginx·负载均衡
源远流长jerry6 小时前
Linux 网络性能优化:从应用到内核
linux·运维·服务器·网络·网络协议·性能优化
goyeer6 小时前
【ITIL】指导原则
linux·运维·服务器·数字化·itil
顶点多余6 小时前
自定义协议、序列化、反序列化实现
java·linux·开发语言·c++·tcp/ip
Bruce_kaizy7 小时前
c++ linux环境编程——从应用层到linux内核深入了解文件io的调用机制(爆肝)
linux·c++·c·嵌入式linux·文件io
浪客灿心7 小时前
Linux网络IP协议
linux·网络·tcp/ip
yuanpan7 小时前
Python + psutil 实战:开发一个简易系统监控工具
linux·运维·python