将Win10子系统(Ubuntu)从C盘迁移走

什么是Win10子系统?

  这个就高大上了。微软公司在Win10系统中做了一个Ubuntu子系统,几乎是一个完整的Linux。我觉得比cygwin。虽然这个系统在速度上还是非常的慢。但是对于我这种轻度Linux使用者是足够的。网上有很多教程开打来Win10的Ubuntu子系统。我这里简单的说一下:

第一步,将系统设置为开发者模式

第二步,启用Win10子系统功能

  然后你就成功的启用了Linux子系统。


为什么要移走它?

  虽然这个子系统还是比较好用的,可是他有个很大的问题。他默认是建立在当前用户->AppData->Local->lxss这个隐藏目录下。而且这个子系统要安装软件,管理权限什么的就必须在这个目录下进行。而且也不支持指定安装目录。这就很恶心了,难道用这个子系统就必须划一个大大的C盘吗?经过我的研究我们完全可以移走它。甚至其它数据也可以。


如何移动?

  我开始也上网查了大家移动这个目录的办法,但是大多数操作麻烦而且我觉得效果也不好。现在大家可以试试我的办法。

原理

  原理其实很简,单就是Windows的软连接,好像是从Win7开始支持的。类似于linux的ln命令,命令如下:

1
2
3
4
5
6
7
8
9
MKLINK [[/D] | [/H] | [/J]] Link Target

/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)

操作

  1、以管理员身份运行cmd终端。输入如下命令:

1
lxrun /uninstall /full
  完全卸载掉Linux子系统。后面再进行安装。如果你已经在子系统中装了很多软件,也可以跳过此步。将子系统一起转移。
  2、临时建一个管理员账号,并用这个管理员账号进行登录。(我用要用这个账号进行资料转移,转移完成后就可以删除掉。)
  3、在文件夹选项->查看选项卡中,取消掉“隐藏受保护的操作系统文件(推荐)”并选择“显示隐藏的文件、文件夹和驱动器”。
  4、在目标磁盘建立一个文件夹,用于存放转移过来的系统,例如:
1
D:\Users\czlz\AppData\
  你可以自选位置,反正我是放在这里。
  5、将C盘目标用户的Local文件夹拷贝至第四步建立的目录下。比如我要转移的用户是czlz的数据。那么我的数据目录就是:
1
C:\Users\czlz\AppData\Local
  6、转移完成后,将原来的Local目录删除或改名(PS:怕操作失败,目前测试是不会失败)。然后打开以管理员身份运行cmd终端。到当前目标用户数据目录下输如下命令:
1
2
mklink /j C:\Users\czlz\AppData\Local D:\Users\czlz\AppData\Local
为 C:\Users\czlz\AppData\Local <<===>> D:\Users\czlz\AppData\Local 创建的联接
这样就成功的创建了一个连接。
  7、现在注销当前的临时用户,用原来的用户登录。看看有没有报错什么。然后再用管理员身份运行cmd终端执行如下命令(PS:如果第一步没删除的话这步操作不需要做。):
1
lxrun /install

  恭喜你,你已经成功的将Linux子系统转移到了其它地方。
  8、最后可以删除掉临时建立的管理员用户和改命的Local目录(PS:如果第6步没有删除Local而只是改名)。

总结

  这个办法其实主要就是使用了软连接,这个做法在Linux下很常见,只是Windows下很少人用。这个办法还可以转移其它目录。或者你把整个User目录都转移走。只要你高兴。目前我已经稳定的运行了好几天,系统很稳定不受任何影响。


本文内容为博主原创。如需要转载请标明出处。