前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows云服务器就地升级注意事项

Windows云服务器就地升级注意事项

原创
作者头像
Windows技术交流
修改2024-06-07 10:12:33
1610
修改2024-06-07 10:12:33
举报
文章被收录于专栏:Windows技术交流Windows技术交流

就地升级的文件或者说ISO哪里来,参考我这篇文档https://cloud.tencent.com/developer/article/2419258

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

就地升级(维护)系统,版本要对,同版本的才支持,不同版本的不行,比如得是pc对pc、server对server、en对en、cn对cn、桌面版对桌面版、core纯命令行版对core纯命令行版,交叉的不行

一般选"保留数据和程序"来升级。

一、就地升级有一些限制条件,比如版本差距太大升不了,具体参考微软文档

https://learn.microsoft.com/zh-cn/windows-server/get-started/upgrade-overview

二、就地升级遇到的坑

1、winre.wim没有集成虚拟化驱动会影响recovery模式相关功能(winre.wim的位置你可以安装Everything全局搜一下)

就地升级报错0xC1900101 - 0x20017的问题,就是winre.wim没有集成虚拟化驱动使得recovery mode不识别硬盘导致的。

升级过程中需要在recovery mode增删改查文件,winre.wim没有硬盘驱动很尴尬,相关的一些功能比如:Windows系统自有的备份和还原功能、recovery 修复功能、旧补丁状态就地升级新补丁状态等凡是跟recovery模式相关的功能都会受影响。友商云一般也有同类问题,因为winre.wim很少用到,当前系统有驱动一般就够用了,但就怕正好赶上上述场景。

就地升级失败的微软官方资料:https://go.microsoft.com/fwlink/?LinkID=528892

如果有条件,2016直接就地升级到2022。举例:

同版本之间从老补丁状态升级到新补丁状态,比如2019原系统是2018年的ISO安装的,现在我有个2024年5月补丁状态的2019新ISO和一个2022 ISO,同版本就地升级是依赖当前系统正常才能增删改查替换文件完成"保留数据和程序"的方式升级,而低版本升级到高版本则是先把高版本系统安装成功,再在高版本系统内部增删改查替换文件完成"保留数据和程序"的方式升级。

这就是我遇到的特殊情况:在相同image部署的2019机器上,当 winre.wim(Safe OS)中没有集成虚拟化平台的驱动时,使用相同版本的2019(补丁版本不同)就地升级将报错0xC1900101, 0x20017,而此时直接使用windows server 2022 ISO可以成功升级。

当winre.wim缺少所需的驱动,如果在重启进入WinRE时检查磁盘状态,可以发现此时输入list disk机器将会显示“没有可以显示的固定磁盘”,这说明此时Safe OS里面没有对应的驱动。

2、就地升级后时间可能异常

①配置可靠的内外网校时

代码语言:txt
复制
以下代码另存为.bat即可设置可靠的校时

net stop w32time
net start w32time
w32tm /config /manualpeerlist:"time.windows.com,0x8 ntp.tencent.com,0xa ntpupdate.tencentyun.com,0xa time1.tencentyun.com,0xa" /syncfromflags:manual /reliable:yes /update
w32tm /query /configuration

w32tm /query /source
w32tm /query /peers
w32tm /resync /rediscover /nowait
w32tm /resync /rediscover /nowait
w32tm /resync /rediscover /nowait

上面命令里的0x8和0xa解释: 第一个主用0x8,剩下的备用0xa,备可以加多个,都是0xa,例如

代码语言:txt
复制
w32tm /config /manualpeerlist:"time.windows.com,0x8 ntp.tencent.com,0xa ntpupdate.tencentyun.com,0xa time1.tencentyun.com,0xa time2.tencentyun.com,0xa time3.tencentyun.com,0xa time4.tencentyun.com,0xa time5.tencentyun.com,0xa" /syncfromflags:manual /reliable:yes /update  

②检查时间服务是否开机自动启动,如否,设置之

代码语言:txt
复制
cmd:
sc.exe config w32time start= auto

powershell:
Set-Service -Name w32time -StartupType Automatic

注意:如果设置了开机自动启动,开机后w32time服务还是启动慢,看下是不是延迟启动,检查下延迟启动的全局配置。可参考https://cloud.tencent.com/developer/article/2284334

默认情况下延迟启动是120秒(实际执行下来是大于这个时间的),配置全局延迟启动后是4分钟。

③添加开机计划任务拉起Windows时间服务(这是对②的补充,万一有特殊情况,并没有在开机后及时启动w32time服务的话,开机计划任务就很有必要)

Administrator计划任务

代码语言:txt
复制
schtasks.exe /create /tn "\start_w32time" /ru Administrator /rp "Administrator用户密码" /rl highest /sc ONSTART /tr "c:\windows\system32\sc.exe start w32time" /f
schtasks /change /tn "\start_w32time" /ru Administrator /rp "Administrator用户密码" /st 00:00 /sd 1900/01/01
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal

SYSTEM计划任务

代码语言:txt
复制
schtasks.exe /create /tn "\start_w32time" /ru SYSTEM /rl highest /sc ONSTART /tr "c:\windows\system32\sc.exe start w32time" /f
schtasks /change /tn "\start_w32time" /ru SYSTEM /st 00:00 /sd 1900/01/01
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal

0x420 ERROR_SERVICE_ALREADY_RUNNING

代码语言:txt
复制
如果计划任务在开机后执行状态是0x420,忽略即可!
Windows计划任务执行的结果0x420是什么意思?
Windows计划任务执行结果的错误代码0x420实际上是十六进制的表示方式。将其转换为十进制,结果是1056。
在Windows系统中,错误代码1056表示一个已经存在的实例已在运行,即它调用的服务已经在运行,因此它返回代码0x420。 

就地升级后显示的时间不正确(不是文档对应的系统的话,忽略)

症状

  • 安装 64 位版本的 Windows Vista、Windows 7 或 Windows Server 2008 R2。
  • 将时区设置为“以色列标准时间”。 在 Windows Vista 中,这显示为 (GMT+02:00) 耶路撒冷。 在 Windows 7 和 Windows Server 2008 R2 上,这显示为 (UTC+02:00) 耶路撒冷。
  • 执行到 64 位版本的 Windows 7 或 Windows Server 2008 R2 的就地升级。 预期行为: 升级后,已正确配置时区设置,并且动态 DST 等功能将继续工作。 观察到的行为: 升级后, GetDynamicTimeZoneInformation () API 无法识别当前时区。 如果没有用户干预来更正此问题,动态 DST 会中断,并且计算机不会根据未来几年的正确日期调整 DST。 因此,受影响计算机上的显示时间与当前本地时间不匹配。 出现此问题时,用户不会收到有关错误的通知。

其他 Windows Server 2008 R2 问题

在 Windows Server 2008 R2 服务器上,无法更改时区设置,并且收到以下错误消息:

无法识别当前时区。 请选择有效的时区。

⑤NT10系统(2016/2019/2022/2025/win10/win11)通过注册表禁用STS,并设置不论时差多大(任何时间,只要不对)都能校时

代码语言:txt
复制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 4294967295 /f 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 4294967295 /f 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\W32Time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 4294967295 /f 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\W32Time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 4294967295 /f 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\W32Time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 4294967295 /f 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\W32Time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 4294967295 /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v UtilizeSslTimeData /t REG_DWORD /d 0 /f

NT10.0系统 1511版本开始引入默认启用Secure Time Seed of High Confidence (STSHC),简称STS,在某些情况下,可能会导致时间跳变很多天。

微软给的解决方案:通过注册表禁用STS

细节可详阅我这篇文档https://cloud.tencent.com/developer/article/2387795

三、关于迁移和系统升级

阿里云SMC(Server Migration Center,简称SMC):

https://www.aliyun.com/product/ecs/smc

https://help.aliyun.com/zh/smc/product-overview/operating-system-migration

阿里的功能其实就是微软的就地升级:

https://learn.microsoft.com/en-us/windows-server/get-started/upgrade-overview

https://learn.microsoft.com/zh-cn/windows-server/get-started/upgrade-overview

就地升级系统注意事项:下载跟当前系统一样语言版本的ISO,比如当前是英文版,得下载英文的ISO,只有这样,覆盖安装时才能选择保留应用和数据,否则只能100%完全覆盖原系统所有数据

腾讯云在线和离线迁移只是迁原系统数据过来,就地升级需要在源端事先做好(或者迁移过来后在目的端再做,所需的ISO需要客户自己上公网找,腾讯云不提供ISO)

在线迁移:

https://cloud.tencent.com/document/product/213/65711

离线迁移:

https://cloud.tencent.com/document/product/213/19233

导入自定义镜像有1T vsize限制(系统盘不能大于1T,大于1T小于2T的情况可以离线迁移)

就地升级可参考:

https://cloud.tencent.com/developer/article/2419259

https://cloud.tencent.com/developer/article/2400100

https://cloud.tencent.com/developer/article/2400772

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、就地升级有一些限制条件,比如版本差距太大升不了,具体参考微软文档
  • 二、就地升级遇到的坑
    • 症状
      • 其他 Windows Server 2008 R2 问题
  • 三、关于迁移和系统升级
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档