当前位置: 首页 > news >正文

Azure主机windows2008就地升级十步

Azure上云主机的windows2008系统需要进行就地升级。
按着微软的升级路径:win2008-->win2012-->win2016-->win2022

第一步:创建快照备份,防止升级失败
第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘,注意此过程是不可逆的。
第三步:创建升级介质磁盘
打开Portal上的cloud shell,结果是一片黑屏,没有任何命令行显示,切换到浏览器无痕模式重新登录,OK.

按微软提供的命令行,修改$sku = "server2012Upgrade",拷贝粘贴到了cloud shell中执行。
#
# Customer specific parameters

# Resource group of the source VM
$resourceGroup = "WindowsServerUpgrades"

# Location of the source VM
$location = "WestUS2"

# Zone of the source VM, if any
$zone = ""

# Disk name for the that will be created
$diskName = "WindowsServer2012UpgradeDisk"

# Target version for the upgrade - must be either server2022Upgrade, server2019Upgrade, server2016Upgrade or server2012Upgrade
$sku = "server2012Upgrade"

# Common parameters

$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "Standard_LRS"

#
# Get the latest version of the special (hidden) VM Image from the Azure Marketplace

$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version    }
$latestString = $versions[0].Version

# Get the special (hidden) VM Image from the Azure Marketplace by version - the image is used to create a disk to upgrade to the new version

$image = Get-AzVMImage -Location $location -PublisherName $publisher -Offer $offer -Skus $sku -Version $latestString

#
# Create Resource Group if it doesn't exist
#

if (-not (Get-AzResourceGroup -Name $resourceGroup -ErrorAction SilentlyContinue)) {
    New-AzResourceGroup -Name $resourceGroup -Location $location    
}

#
# Create Managed Disk from LUN 0
#

if ($zone){
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU -CreateOption FromImage -Zone $zone -Location $location
} else {
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU -CreateOption FromImage -Location $location
}

Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0

New-AzDisk -ResourceGroupName $resourceGroup -DiskName $diskName -Disk $diskConfig

成功创建介质
Name                         : WindowsServer2012UpgradeDisk

附加升级安装介质到VM,结果发现找不到这个盘,仔细比对发现,原来里面还有一个地方要修改和VM实际环境一致,$location = "WestUS",在资源中删除刚才生成的安装介质,重新运行命令创建介质。

第五步:升级windows2012
在VM中附加安装介质盘成功。
运行安装升级:
PS E:\Windows Server 2012> .\setup.exe

安装出现问题:
提示:
1.Active Directory on this domain controller does not contain Windows Server 2012 ADPREP /FORESTPREP updates
2.These devices might not work properly in Windows. We recommend updating the drivers for these devices before you continue. 
System devices: Microsoft Hyper-V S3 Cap 

在E:\Windows Server 2012\resource下面没有找到ADPREP,在E:\Windows Server 2012\support\adprep>adprep /forestprep中搜索找到
E:\Windows Server 2012\support\adprep>adprep /forestprep
执行结果:
Adprep failed to verify whether schema master has completed a replication cycle
after last reboot.
[Status/Consequence]
The schema is not upgraded.
[User Action]
Check the log file ADPrep.log in the C:\Windows\debug\adprep\logs\20241217071508 directory for possible cause of failure.

Adprep encountered an LDAP error.
Error code: 0xc. Server extended error code: 0x20ae, Server error message: 00002
0AE: SvcErr: DSID-032103B3, problem 5010 (UNAVAIL_EXTENSION), data 8610
[User Action]

Check the log file ADPrep.log in the C:\Windows\debug\adprep\logs\20241217071508 directory for possible cause of failure.
[2024/12/17:07:15:47.833]
Adprep encountered an LDAP error. 

Error code: 0xc. Server extended error code: 0x20ae, Server error message: 000020AE: SvcErr: DSID-032103B3, problem 5010 (UNAVAIL_EXTENSION), data 8610

第六步:清除域控DC的垃圾信息
最后发现adprep /forestprep失败的原因是此前有辅助域控离线后没有清理导致的。
ntdsutil:metadata cleanup删除了另外一台DC的残余信息

第七步:安装更新windows 2012
adprep /forestprep执行成功
再次执行win2012安装,又出现错误提示需要执行:ADPREP /DOMAINPREP
执行后通过,提示新错误:Windows Setup cannot locate a valid hard drive to store temporary installation files. To install Windows, create more free space on the hard drive or add a new hard drive.
原因是C盘的磁盘空间不够导致。删除没有的文件腾出了空间,进入到了更新界面,collecting files,settings, and applications 等待很久,直到成功更新。

第八步:制作windows2016安装盘,升级到windows2016
卸载windows2012的安装盘,执行第三步创建2016的安装介质,注意修改$sku = "server2016Upgrade"

VM中挂载的安装介质,执行更新:
PS G:\Windows Server 2016> .\setup.exe /auto upgrade /dynamicupdate disable /eula accept
发现磁盘空间不足,需要清理调windows.old
--安装磁盘清理工具
Import-Module ServerManager
Install-WindowsFeature Desktop-Experience
清理空间后再次执行安装更新。

第九步:升级window2022
重复第八步的动作升级到2022
PS G:\Windows Server 2022> .\setup.exe /auto upgrade /dynamicupdate disable /eula accept

第十步:转原来的Blob vhd磁盘到托管磁盘
原来主机挂载的数据盘是非托管的blob存储,现在主机转换成了托管磁盘后,原来的这些非托管磁盘无法挂载到主机了,托管的主机也不能回退到非托管主机,怎么办?
VM里面blob磁盘转托盘磁盘很简单,但是这些分离掉的blob存储盘转托管磁盘却找不到地方。
找了半天资料,最后终于找到了方案,那就是用blob的vhd创建一个托管磁盘:
所有服务--Disks--新建磁盘:资源组需要选和VM一致的,选择磁盘类型,源选择存储blob, OS选择windows,VM选择第一代,x64,创建成功。
在VM上附加磁盘就可以找到新创建的磁盘添加。

相关文章:

Azure主机windows2008就地升级十步

Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径:win2008-->win2012-->win2016-->win2022 第一步:创建快照备份,防止升级失败第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘…...

解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库

一、开篇:邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域,数据管理如同建筑的基石,而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说,面对琳琅满目的数据库选项,如何抉择常常令人头疼。今…...

7 分布式定时任务调度框架

先简单介绍下分布式定时任务调度框架的使用场景和功能和架构,然后再介绍世面上常见的产品 我们在大型的复杂的系统下,会有大量的跑批,定时任务的功能,如果在独立的子项目中单独去处理这些任务,随着业务的复杂度的提高…...

七星棋类游戏源码:两百玩法开源修复

这套七星棋类源码,覆盖六大省区(湖南双端、湖北、山西、江苏、贵州等),安卓与苹果端都能轻松适配,汇集 6 个端口与 200 多种子游戏玩法。此版本为二次开发修复版,功能完备且源码完全公开,包括乐…...

未来世界:科技引领的奇幻篇章

科技发展的这么快,未来的世界将会是什么样的呢? 在人类历史的长河中,科技始终是推动社会进步的核心力量。从古老的四大发明到如今的人工智能、基因编辑、量子计算等前沿技术,科技发展的速度日新月异。我们不禁会想,在…...

[python3]Uvicorn库

Uvicorn 是一个用于运行 ASGI(Asynchronous Server Gateway Interface)应用程序的轻量级服务器。ASGI 是 Python Web 应用程序接口的一种扩展,它不仅支持传统的同步 Web 请求处理,还支持异步请求处理、WebSockets 以及 HTTP/2。 h…...

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存,此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高,在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…...

Flutter:使用FVM安装多个Flutter SDK 版本和使用教程

一、FVM简介 FVM全称:Flutter Version Management FVM通过引用每个项目使用的Flutter SDK版本来帮助实现一致的应用程序构建。它还允许您安装多个Flutter版本,以快速验证和测试您的应用程序即将发布的Flutter版本,而无需每次等待Flutter安装。…...

关于物联网的基础知识(二)——物联网体系结构分层

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(二&a…...

[程序设计]—代理模式

[程序设计]—代理模式👳 本文章记录学习于——52.面向切面:AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事,在学习Spring的源码: 后面慢慢更新源码系列blog,希望多多关注🙏🙏 目前已经总结的b…...

26、【OS】【Nuttx】用cmake构建工程

背景 之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 都是用 make 构建,准备切换 cmake 进行构建,方便后续扩展开发 Nuttx cmake 适配 nuttx项目路径下输入 make distclean,清除之前工程配置 adminpcadminpc:~/nuttx_pdt/nuttx$ make …...

C#中序列化的选择:JSON、XML、二进制与Protobuf详解

C#中序列化的选择:JSON、XML、二进制与Protobuf详解 在C#开发中,序列化是将对象转换为可存储或传输的格式的过程,而反序列化则是将存储或传输的数据重新转换为对象的过程。选择合适的序列化方式对应用程序的性能、可维护性和兼容性至关重要。…...

单片机实现模式转换

[任务] 要求通过单片机实现以下功能: 1.单片机有三种工作模式(定义全局变量MM表示模式,MM1,2,3表示三种不同的模式) LED控制模式 风扇控制模式 蜂鸣器控制模式 2.可以在某一个模式下通过拓展板KEY1按键控制设备 (按…...

Shader -> SweepGradient扫描渐变着色器详解

XML文件 <com.example.myapplication.MyViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_gravity"center"android:layout_height"400dp"/>自定义View代码 c…...

鼠标过滤驱动

文章目录 概述代码参考资料 概述 其编写过程大体与键盘过滤驱动相似&#xff0c;只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息&#xff0c;于是通过在获取鼠标驱动&#xff0c;遍历其所有的设备进而附…...

【深度学习】数据操作入门

数据操作 为了能够完成各种数据操作&#xff0c;我们需要某种方法来存储和操作数据。 通常&#xff0c;我们需要做两件重要的事&#xff1a;&#xff08;1&#xff09;获取数据&#xff1b;&#xff08;2&#xff09;将数据读入计算机后对其进行处理。 如果没有某种方法来存储…...

WIFIAP项目 5G RX二次谐波超标案例分析

一、 问题的现象及描述 采用博通WIFI方案方案的两个项目在做CE高频杂散测试时发现5G RX出现10.359 GHz的高频杂散点&#xff0c;通过更换信道&#xff0c;该杂散点跟着改变&#xff0c;最终确认该频率是5G主信号的二倍频&#xff1b;如下图&#xff1a; 二、 问题分析  由于…...

HarmonyOS(ArkUI框架介绍)

ArkUI框架介绍 ArkUI简介 基本概念 UI&#xff1a; 即用户界面。开发者可以将应用的用户界面设计为多个功能页面&#xff0c;每个页面进行单独的文件管理&#xff0c;并通过页面路由API完成页面间的调度管理如跳转、回退等操作&#xff0c;以实现应用内的功能解耦。 组件&…...

在 Ubuntu 下通过 Docker 部署 MySQL 服务器

引言 Docker 是一个开源的容器化平台&#xff0c;允许开发者将应用及其依赖打包成一个标准化的单元。MySQL 是一个广泛使用的关系型数据库管理系统&#xff0c;因其高性能、可靠性和易用性&#xff0c;成为许多应用的首选数据库。结合 Docker 和 MySQL&#xff0c;可以轻松地创…...

MCU 和 PSK

在加密和认证领域&#xff0c;MCU 和 PSK 是两个不同的概念&#xff0c;分别涉及硬件和密钥管理。下面是它们的含义和相关解释&#xff1a; 1. MCU 全称&#xff1a;Microcontroller Unit&#xff08;微控制单元&#xff09; 用途&#xff1a; MCU 是一种集成了 CPU、内存&am…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...