升级系统无限重启怎么办?
主要因为windows文件系统机制的设计缺陷。比如*nix在修改一个被使用的文件时,会使用一个新的inode,这样之后的程序打开的就是修改后的文件,而之前使用这个文件的程序并不受影响,而内核会在旧inode不再被需要后把它删掉。但是windows是不允许修改使用中的文件的。那怎么办呢?
先告诉系统你需要改这个文件,然后在重启后趁着文件还没被使用的时候抓紧改。所以说,通常来说windows升级的时候需要首先重启到那个特殊的你啥也不能干的环境,或者杀掉所有应用程序,来避免干扰。
次要是因为windows没有kexec,也没有关键daemon的reload机制这样如果有重要驱动程序修改,关键daemon修改,或者内核修改,重启是唯一实现reload的途径。
实际上这样做有一个优点是,原子性,这样就可以很简单得在失败后rollback,linux滚挂了修起来很麻烦的……有人不需要原子性,但是很多人是需要的,所以上面的设计缺陷就算是解决了,也大概率只会应用在server版本上。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有