使用的早期的2019镜像,早期的2019镜像磁盘策略是微软默认的san policy不是onlineall,新的公共镜像已经优化微软默认设置为san policy onlineall
如果不是上面这样,例如:
这种如果挂多块盘就有可能重启掉盘
如果不是onlineall(全部联机)的话,继续在diskpart的命令行执行san policy=onlineall
建议做镜像之前检查是否san policy = onlineall,不是的话设置下
另外,制作镜像前以管理员身份打开cmd命令行执行这2句命令规避初始化时的其他问题
reg delete "HKLMSYSTEMCurrentControlSetControlTimeZoneInformation" /v "RealTimeIsUniversal" /f
reg delete "HKEY_LOCAL_MACHINESOFTWARECloudbase Solutions" /f 2>&1 > $null
请不要随便删除cloudbase-init的注册表,如果创建机器时传了userdata,而userdata代码里有写操作的代码,那你删除了cloudbase-init的注册表会导致初始化标记为0,下次开机的时候cloudbase-init会认为机器没有初始化过,是新机器,就会自动触发重新执行一遍userdata里的代码,严重点假设,假设代码里有格式化数据盘的操作,岂不是要凉凉
存量的机器需要用户手动执行下diskpart回车san policy=onlineall回车,并手动在磁盘管理器对脱机的磁盘联机,然后重启观察
存量的机器、自定义镜像都需要自己修一下
这里要特别提一下cloudbase-init,它是个开源初始化程序,不是云平台自产的,很多家云厂商都用它,它有个配置项san_policy=OnlineAll 可以在做镜像之前加到配置文件里试一下
配置文件路径:C:Program FilesCloudbase SolutionsCloudbase-Initconfcloudbase-init.conf
下图不是云平台官方的,也不是cloudbase-init官方的,是我自己查cloudbase-init资料调配的,cloudbase-init的特殊配置项是很多的,例如:
set_unique_boot_disk_id
display_idle_timeout
real_time_clock_utc
volumes_to_extend
san_policy
等等
参考cloudbase-init官方资料:
①https://readthedocs.org/projects/cloudbase-init/downloads/pdf/latest/
②https://cloudbase-init.readthedocs.io/en/latest/config.html