Azure
Hyper-V 에서 Azure 상의 Migrate 진행했으나 강제 제거후 오류
ravon
2025. 9. 23. 10:47
Azure 상에서 Migrate 진행했던 머신을 강제로 삭제 했다. 그러니 Hyper-V 에서 머신이 실행되지 않는다.
이걸 ChatGPT 에 물어보니 여러거지 방안에서 해결.
역시 AI 세상이구만.
# Hyper-V 상에서 진행할려니 버튼이 비활성화되어 있어서 PowerShell 로 진행.
# 아래 로그를 보면 알겠지만 뭐든 안먹히는 상태이다.
# chatgtp 에 물어보니 한방에 해결됬다.
$vmName = "WinServe2019"
# WMI 네임스페이스
$ns = "root\virtualization\v2"
# 대상 VM 객체
$vm = Get-CimInstance -Namespace $ns -ClassName Msvm_ComputerSystem -Filter "ElementName='$vmName'"
if (-not $vm) { throw "VM을 찾을 수 없습니다: $vmName" }
# ReplicationService 핸들
$repSvc = Get-CimInstance -Namespace $ns -ClassName Msvm_ReplicationService
# 해당 VM의 복제 관계(Primary/Provider 관계) 조회
$rels = Get-CimInstance -Namespace $ns -ClassName Msvm_ReplicationRelationship |
Where-Object { $_.SystemElement -eq $vm.__Path -or $_.SyncedElement -eq $vm.__Path }
if ($rels) {
foreach ($rel in $rels) {
# RemoveReplicationRelationshipEx가 있으면 우선 사용
$params = @{
ClassName = $repSvc.CimClass
MethodName = "RemoveReplicationRelationshipEx"
Arguments = @{
ComputerSystem = $vm
ReplicationRelationship= [string]$rel
}
Namespace = $ns
}
try {
Invoke-CimMethod @params -ErrorAction Stop | Out-Null
} catch {
# 구버전이면 기본 RemoveReplicationRelationship 시도
Invoke-CimMethod -InputObject $repSvc -MethodName "RemoveReplicationRelationship" `
-Arguments @{ ComputerSystem = $vm } -ErrorAction Stop | Out-Null
}
}
Write-Host "복제 관계 제거 완료"
} else {
Write-Host "복제 관계가 조회되지 않았습니다(이미 제거되었을 수 있음)."
}
# 이제 Hyper-V 측 상태 정리
Stop-VMReplication -VMName $vmName -ErrorAction SilentlyContinue
Start-VM -Name $vmName
- ChatGPT 의 답변.
위 스크립트는 Hyper-V의 WMI 클래스를 직접 호출해 ASR가 남겨둔 ‘복제 관계’ 를 제거합니다. 해당 기법은 커뮤니티/블로그에서도 동일 원리로 소개되어 있고, 증상(“prepared for failover 때문에 부팅 불가”)이 정확히 일치합니다.
- 참고 링크까지.
https://charbelnemnom.com/hyper-v-prevented-starting-virtual-machine-asr/?utm_source=chatgpt.com