回顾
概览
实际上,本章应作为第一节课来讲,但是因为我自己没经验,也没考虑到这点,所以,只能说我经历的坑发出来,
以避免你们也经历这个深坑。
我们在2. 玩转windows subsystem之对比虚拟机也说过,
和虚拟机对比,subsystem
的安全性是个问题,出故障了怎么办?又没有快照。当时由于我对此subsystem
了解有限,也没有好的办法,
实际上这是完全有办法避免的。
案例
一个真实的案例出现了—-我的subsystem
昨天崩溃了,可能是跟一个windows10的bug
有关,但不论如何,就是崩溃了。
据我分析,是因为subsystem
的系统文件缺失了。
这可怎么办?我制定了方案如下:
备份数据
实际上这步应该早点进行,假如我刚安装好的时候就备份个干净的系统,也就没后面那么多事了。重新安装
恢复数据
第1步很容易,可是第二步我进行不下去了。因为即使删掉了lxss
这个文件夹也不行,去系统功能里关闭
windows subsystem 也不行。事情陷入了僵局。
方案
我又想了另外一个办法,用另外一台电脑也更新到预览版,安装subsystem
后把系统文件给我复制出来。
6个小时过去了…
巨硬还是没有给我推送。
我想这干等不是一个办法,于是又在虚拟机里装了一个windows10,然后等推送…
12个小时过去了…
巨硬终于给我推送来了14379
版本,我真是热泪盈眶啊。覆盖系统文件之后,终于恢复了正常。
料想此案例中,如果当初安装好直接就备份,哪有这个问题?
延伸
实际上,为了做这个教程,我用IDA
分析了bash.exe
,发现实际上他是对lxrun
的一个封装。
而lxrun
是有参数的。
我们可以在命令行里看下:
Performs administrative operations on the LX subsystem
Usage:
/install - Installs the subsystem
Optional arguments:
/y - Do not prompt user to accept
/uninstall - Uninstalls the subsystem
Optional arguments:
/full - Perform a full uninstall
/y - Do not prompt user to accept
/setdefaultuser - Configures the subsystem user that bash will be launched as. If the user does not exist it will be created.
Optional arguments:
username - Supply the username
/y - If username is supplied, do not prompt to create a password
/update - Updates the subsystem's package index
看来这个lxrun
才是真正用来管理linux subsystem
的工具。通过这个工具我们可以:
安装
卸载(经测试普通卸载会留下家目录,/full选项则寸草不生)
设置默认启动用户.我们可以用/setdefaultuser root来默认用root用户启动。
升级。
结语
到了这里,基本上对subsystem
的探究已经非常明澈了吧。
探究未知之路总是布满荆棘,但我愿披荆斩棘,穿越刀山火海,送上我所探明的一切!