[Share Experiences] 把wsl挂载到deepin下方便地迁移数据
Tofloor
poster avatar
orzorc
deepin
2021-12-12 07:58
Author

之前用的WSL进行开发的,所以很多数据都保存在了WSL里,现在做了个双系统,需要把这些数据弄到deepin里面来。

用U盘太麻烦,明明在同一个硬盘上,想着能不能直接cp过来呢?

一波搜索,发现了关键点,wsl里的文件其实是由一个虚拟磁盘来保存的,路径是 C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\ext4.vhdx,这里distro要全名,类似com.xx.yy这种,比如我的是Ubuntu,对应的是Canonical开头的。

挂载一个vhd对于linux系统来说应该不是什么难事,简单搜索一下就发现了方法:

# 安装一个工具
sudo apt-get install libguestfs-tools

# 上面这一步在安装的时候遇到一点问题,没有安装成功
# 按照网上的说法可以直接用下面的命令强制安装,有点担心,但是想着只要我迁移完数据就卸载掉好了,所以还是直接做了
# 后来一直到迁移完成也没有发生什么问题
sudo apt install -f

# 挂载wsl的vhdx文件
# ro是只读,不想搞坏wsl的数据还是加上吧
guestmount --add ext4.vhdx --inspector --ro /mnt/wsl

# 这里就可以看到之前在wsl里面的完整文件了
cd /mnt/wsl/

现在就可以随便迁移数据了

Reply Favorite View the author
All Replies
观摩
deepin
2021-12-12 17:21
#1

厉害厉害,思路不错yeah

Reply View the author
软糖酱八号机
deepin
2021-12-13 01:20
#2

我平时会做好数据整理, 比如要用的安装包, 要在商店里下载的软件清单, 个人项目,文档,资料等重要数据分类存在一个文件夹中, 隔一段时间云端或移动硬盘同步一次. 推荐大家养成数据整理的习惯.

之前写容器引擎的时候chroot后忘了umount, 直接rm -rf了原根...从此以后养成了整理备份的习惯

Reply View the author
orzorc
deepin
2021-12-13 05:24
#3
软糖酱八号机

我平时会做好数据整理, 比如要用的安装包, 要在商店里下载的软件清单, 个人项目,文档,资料等重要数据分类存在一个文件夹中, 隔一段时间云端或移动硬盘同步一次. 推荐大家养成数据整理的习惯.

之前写容器引擎的时候chroot后忘了umount, 直接rm -rf了原根...从此以后养成了整理备份的习惯

理论上这样确实很好。

但是WSL存在一个硬伤,用windows下的程序去打开挂载在wsl上的路径会有性能损失。

之前在win上做开发就只好直接存在WSL上。

Reply View the author